LINUX.ORG.RU

Используемые системы контроля версий

 ,


1

2

В связи с недавней новостью (Bitbucket прекращает поддержку mercurial) стало интересно, какими системами контроля версий пользуются пользователи LOR. Скорее всего первое место по популярности займёт git, но это не снижает ценности других систем в зависимости от потребностей в рамках работы над каким-либо проектом.

Постарался внести в список наиболее часто упоминаемые, как мне кажется, VCS. Доступен мультивыбор.

p.s.
Вариант «храню архивы, не пользуюсь VCS» включает в себя и просто создание копий директорий и/или файлов без архивирования.

  1. Git 739 (87%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. Subversion (SVN) 115 (14%)

    *************************************************

  3. Mercurial (Hg) 80 (9%)

    **********************************

  4. храню архивы, не пользуюсь VCS 62 (7%)

    **************************

  5. не храню промежуточные состояния проекта 40 (5%)

    *****************

  6. CVS 24 (3%)

    **********

  7. Perforce 17 (2%)

    *******

  8. Fossil 16 (2%)

    ******

  9. другая VCS (в комментариях) 16 (2%)

    ******

  10. Azure DevOps (Team Foundation) Server 10 (1%)

    ****

  11. Darcs 9 (1%)

    ***

  12. Bazaar 8 (1%)

    ***

  13. Dat 1 (0%)

  14. Monotone 1 (0%)

Всего голосов: 1138, всего проголосовавших: 850

★★★★★

Проверено: cetjs2 ()
Последнее исправление: cetjs2 (всего исправлений: 3)

Я думаю в корпоративной среде, для замкнутого круга разработчиков, легче использовать что то вроде subversion.

splinter ★★★★★
()
Ответ на: комментарий от samy_volosaty

маловато. надо ещё git push, хотя бы на другой диск, а то грохнешь проект случайно…

Для чего-то более серьёзного только вручную. Это у меня используется для списков или заметок.

проект

А проекты, помимо удалённых реп вручную, по крону пушатся на соседний диск.

mord0d ★★★★★
()
Ответ на: комментарий от amidos

Старые проекты в SVN.

В комплекте с Git’ом был какой-то скрипт, который конвертировал SVN-репозиторий в Git-репозиторий с максимальной точностью. Есть смысл попробовать, я пару проектов им перетянул на Git.

EXL ★★★★★
()
Ответ на: комментарий от splinter

Сегодня корпоративный стандарт это Git, судя по IT-гигантам вроде MS (Исходники Windows под Git) или Google (Android и Chrome под Git).

EXL ★★★★★
()
Ответ на: комментарий от hobbit

У svn есть киллер-фича, которая меня здорово выручала на слабом интернете, когда мне нужно было скачать из огромного репозитория только одну директорию с кодом, вместо того, чтобы загружать всё.

Это кстати до сих пор работает даже с GitHub’а:

svn export https://github.com/EXL/Gish/trunk/images

Вроде в Git тоже недавно появился git clone --filter позволяющий проворачивать подобное, но так делать теперь и не требуется.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от fornlr

p.s. Вариант «храню архивы, не пользуюсь VCS» включает в себя и просто создание копий директорий и/или файлов без архивирования.

grem ★★★★★
() автор топика
Ответ на: комментарий от EXL

Я на смартфон выкачивал для правки пулреквеста каталог дерева portage с историей в 1 уровень. Только .git всё равно мб 60 занимал. Но это лучше чем пару сотен мегабайт качать. Кажется, делал так:

mkdir <repo> 
cd <repo> 
git init

git config --local core.sparseCheckout true 
echo "path/to/dir1" >> .git/info/sparse-checkout 
echo "path/to/dir2" >> .git/info/sparse-checkout

git remote add origin remote_URL 
git checkout -b required_branch 
git pull --depth=1 origin required_branch
grem ★★★★★
() автор топика
Последнее исправление: grem (всего исправлений: 1)

На работе 3 репы в svn с 2001 года, 1 git создана в этом году. Для хобби — только гит, так как других несколько лет уже не видел.

question4 ★★★★★
()

Сейчас git и svn. А за жизнь чего только не было, cvs, Perforce, TFS, ClrarCase, Mercurial... Даже базаром что-то вытаскивал из интернета, уже не помню чего.

gns ★★★★★
()

Для себя: либо Git, либо Mercurial. Зависит от настроения. Очень жаль, что Bitbucket слили поддержку Mercurial. Поэтому, в последнее время, только Git.
На работе — SVN. Пытаемся переехать на Git.
Из того, с чем доводилось работать, самое мерзкое — RTC.

baldman88
()
Ответ на: комментарий от ilinsky

Это как проводить опрос на наиболее популярную DE. Всегда очень захватывающе. Никогда не знаешь, с каким процентом первое место займёт KDE (все версии в сумме): будут ли это 35%, 30%, или позорные 28%?

grem ★★★★★
() автор топика

Subversion — 15%

С чем связано? Утиная болезнь?

У мен, конечно, тоже первое время неприятие было, но никаких причин юзать свн при наличии Git попросту нет.

WitcherGeralt ★★
()

У меня слишком простые скрипты, чтобы их версионировать.

Для документов — один раз в жизни пришлось добавить номера к имени файла. Всё складывал в один каталог.

Bagrov ★★★★★
()

Вроде же было же уже недавно где то то уже, иль нет?

Лучше бы б мой подтвердили, плак…

LINUX-ORG-RU ★★★★★
()

На работе вынужденно git, но пользуюсь hg-git для синхронизации, и по итогу большая часть работы всё равно в hg. В своём опенсорсном проекте - hg.

unC0Rr ★★★★★
()

Архивы, их маму.

Deleted
()
Ответ на: pijul от Camel

Пихуля в списке нет. Я им пока не пользуюсь, но внимательно слежу.

Использую для одного небольшого проектика, там, возможно, внутри всё замечательно, но с точки зрения user-experience всё плохо. Думаю валить на гит, т.к. судя по отсутствию активности в репозитории и ишшуй-трекере, он скорее мёртв, чем жив. Жалко птичку…

Laz ★★★★★
()
Ответ на: комментарий от Laz

Ох

Ну блин. Мне нужно чтобы пихуль был скорее жив, чем мёртв. Неужели придётся самому поднимать упавшее знамя 8-[ Вес явно не мой, но если не попробовать, то и не узнать наверняка.

Camel ★★★★★
()
Ответ на: Ох от Camel

Из какой-то новости о нём складывалось впечатление, что они его затеяли ради платной площадки-сервиса. Но похоже, не взлетело и пока его развитие отложили. Приводимый в статьях о нём пример трёхстороннего слияния крайне спорный, так как нельзя однозначно сказать, какое решение верное.

grem ★★★★★
() автор топика

Git. До этого юзал Bazaar, еще до этого - Subversion. Жалко Bazaar, кстати, user experience у него был получше гита ИМХО.

t184256 ★★★★★
()
Ответ на: Ох от Camel

Лично мне не хватает относительно простых вещей вроде сокращённого вывода лога или менее интерактивного выбора чанков для записи (нафига было клонировать интерфейс darcs - непонятно), и я было полез в его кишки. Но с растом подход «тыр-пыр и в продакшон» не работает, а изучать его на должном уровне у меня нет ни желания, ни времени. И, судя по постам в интернетах, проблема эта не только у меня. Но морально поддержать всегда готов :D

Laz ★★★★★
()
Ответ на: комментарий от EXL

К сожалению, не все :-( у меня на работе, что у самого работодателя, что у заказчика — svn.

h4tr3d ★★★★★
()
Ответ на: комментарий от EXL

CC — ужас летящий на крыльях ночи... Сталкивался, когда работали с мотороллой. Врагу не пожелаешь. А ещё, если не ошибаюсь, это стандарт в авионике.

h4tr3d ★★★★★
()
Ответ на: комментарий от EXL

Для таких целей, в данный момент, я бы рекомендовал попробовать subgit, чисто для конвертации он бесплатен.

h4tr3d ★★★★★
()
Ответ на: комментарий от h4tr3d

Сталкивался, когда работали с мотороллой.

Ага, у меня так же. До сих пор помню что там в корне диска был какой-то /vobs/<проекты>.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Ну... Когда трафика осталось мало или связь паршивая (как в районе Академгородка), может оказаться нужным.

Hertz ★★★★★
()
Ответ на: комментарий от WitcherGeralt

Человеческий интерфейс, как в терминале, так и в tortoisehg. В последнем удобно делать частичные коммиты (да, я знаю, как это делается в гите в консоли, но тем не менее), ковыряться в истории (на работе много легаси проектов, часто нужно). А в гите вымораживает полный бардак в командах. Создать бранч - checkout, ревертнуть файл - checkout.

unC0Rr ★★★★★
()
Последнее исправление: unC0Rr (всего исправлений: 1)
Ответ на: комментарий от unC0Rr

Создать бранч - checkout

Ты хотел сказать «переключиться»

checkout -b - создать и переключиться.

Какой-то смысл в одной команде есть - «переключение» в состояние. Но уж слишком она, действительно, всеобъемлющая получилась. В новых версиях добавили команды разделяющие её возможности.

Некоторых расстраивает, что коммитов гит не содержит имени ветки. Не знаю, насколько полезна эта информация, учитывая, что ветку можно переименовывать. Может в mercurial нельзя? А если можно, то тогда при переименовании хэши меняться должны у всех коммитов ветки?

grem ★★★★★
() автор топика
Последнее исправление: grem (всего исправлений: 1)
Ответ на: комментарий от unC0Rr

Все современные IDE умеют базовые операции с гитом, а удобный доступ к истории предоставляют все полноценные морды типа Git{Hu,La}b и Gitea.

Звучит как вкусовщина и просто отсутствие привычки. Я-то думал, что ты там какие-то концептуальные преимущества видишь.

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

Все современные IDE умеют базовые операции с гитом

Не всем нужен idd при работе с cvs. Не в том смысле, что именно ide не нужно, а в том, что задача вообще не подразумевает использование ide.

Я могу править ebuild в vscode, но зачем?

grem ★★★★★
() автор топика
Ответ на: комментарий от WitcherGeralt

Ты написал про базовые операции гит в ide. Вот и спрашиваю, зачем мне использовать что-то похожее на ide там, где ide излишне.

А насколько базовые операции обычно поддерживаются? Rebase (включая интерактивный) обычно есть?

grem ★★★★★
() автор топика
Ответ на: комментарий от grem

Я же это сказал не просто так, а в контексте. Человек, которому на кой-то чёрт нужен гуй для манипуляций с vcs, вряд ли без IDE обходится.

А насколько базовые операции обычно поддерживаются?

От IDE зависит, но плюс-минус это статус, диффы, коммиты, пулы-пуши и переключение между бранчами, стэши, иногда ещё история и мерджи. Т.е. совсем базовое, но больше и не нужно, ибо консоль никто не запрещал. В том VSCode, кстати, в command palette, по-моему, вообще всё есть, но не факт, я кроме стейджинга и коммита всё в консоли делаю.

WitcherGeralt ★★
()
Ответ на: комментарий от egorcod

Мне кажется, что тут почти абсолютное большинство пользуется гитом, поэтому вопрос не очень нужен

А еще бывает жуткий легаси который с SVN`а переносить никто не собирается. Просто по-тому что «и так сойдет», «это куча геммороя», «это че-то там надо делать», «это простой» и т.п.

RiseOfDeath ★★★★
()
Ответ на: комментарий от grem

Бранчи в hg не переименовать, аналогом гитовских бранчей будут скорее букмарки, с ними можно что хочешь делать.

unC0Rr ★★★★★
()
Ответ на: комментарий от WitcherGeralt

Звучит как вкусовщина и просто отсутствие привычки. Я-то думал, что ты там какие-то концептуальные преимущества видишь.

Да не, концептуально меня не устраивает только неочевидность интерфейса. И да, это скорее дело привычки. Доступом к VCS из IDE я не пользуюсь, считаю неудобным, как и веб-морды.

unC0Rr ★★★★★
()
Ответ на: комментарий от Deleted

Tortoisegit давненько видел, в то время он точно не дотягивал.

unC0Rr ★★★★★
()
Ответ на: комментарий от deep-purple

Так, на любом устройстве, что бы я ни делал, всегда синхронизировано состояние проекта. И это реально удобно.

плюсую. бонусом можно не переживать что сдохнет винт вместе с работой. с кем не бывало?

pihter ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.