Можем ли мы наконец перейти на DVCS в области корпоративного программного обеспечения? SVN по-прежнему необходимо для развития? [закрыто]

31
задан VonC 9 September 2010 в 14:08
поделиться

9 ответов

С одной стороны, интеграция SVN (с IDE, фреймворками, вики, ...) очень зрелая, так же как и ее GUI и браузеры кода (даже несмотря на то, что DVCS, такие как Git и Mercurial, прогрессируют ежедневно).

С другой стороны, внедрение DVCS в корпоративную среду по-прежнему не является тривиальной задачей:


Просто для ясности: использование DVCS может быть очень правильным выбором:

  • для нового проекта, где разработчики не привязаны к устаревшим инструментам или процессам
  • , особенно когда разработчики географически не находятся в одном месте (часто в случае разработки с открытым исходным кодом, поэтому DVCS в основном используется там).

StackOverflow (не проект с открытым исходным кодом) использует Mercurial (см. HgInit, написанный Джоэлом Спольски).
Они перешли с SVN на DVCS:

  • отчасти потому, что их разработчики теперь разбросаны по всему миру(!)
  • , а также потому, что средства слияния DVCS гораздо более продвинуты, чем в SVN.
    (что им необходимо для поддержки множества параллельных слегка отличающихся версий своей кодовой базы между сайтами SO, сайтами StackExchange V1 и V2, Area 51, ...)
    См. « различия между DVCS и CVCS » или « Каковы преимущества Mercurial или git по сравнению с svn для ветвления/слияния? ».

  • Для корпоративной среды (где я нахожусь), любой переход любого рода не является тривиальным, потому что он должен быть:

    • финансируемым (деньги, даже если инструменты бесплатны)
    • поддерживается (это означает наличие нужных людей с нужными компетенциями)
    • интегрирована (с существующими устаревшими инструментами, графическими интерфейсами, IDE, такими как Visual Studio или многими другими, ...)
    • администрируется (с точки зрения общих серверов, даже для DVCS)
    • документируется (особенно для пользователей, использующих CVCS, например SVN)

Таким образом, DVCS также может быть очень полезен в корпоративная среда:
(См. « Уровень корпоративного внедрения Git? » или « Система управления версиями на основе Git на предприятии: предлагаемые инструменты и методы? ».)
Его (даже для новых проектов) просто не так легко внедрить, как в меньшей структуре или в среде с открытым исходным кодом.

101
ответ дан 27 November 2019 в 21:19
поделиться

Я не знаю никаких внутренних причин для предпочтения централизованных систем контроля версий, существует множество внешних факторов, таких как устаревшие системы, управленческая инерция, кривая обучения и т. д.

DVCS в значительной степени демонстрирует себя как «лучшую мышеловку».

9
ответ дан 27 November 2019 в 21:19
поделиться

Подрывная деятельность идеальна, когда идеальна централизованная парадигма.

Одна из таких ситуаций — работа с документами. Гораздо разумнее просто сохранить одну мастер-копию, из которой все будут извлекать данные. Мы не хотим создавать ветки или теги. Мы просто хотим отслеживать, кто вносит изменения, а затем распространять их на всех авторов.

6
ответ дан 27 November 2019 в 21:19
поделиться

Мы используем subversion в качестве хранилища для данных, слияние которых нетривиально (мы занимаемся разработкой аппаратного обеспечения, а файлы дизайна имеют недокументированный двоичный формат). Преимущество SVN заключается в том, что вы можете устанавливать блокировки файлов, поэтому только один разработчик может работать с файлом, а также вынужден проверять самый новый файл перед редактированием.

7
ответ дан 27 November 2019 в 21:19
поделиться

Вы можете использовать как Git, так и Hg в качестве клиентов SVN. Это означает, что вы можете получить лучшее из обоих миров.

Однако вы не можете использовать SVN в качестве клиента ни для Git, ни для Hg.

Во многих отношениях идеальным случаем является центральный репозиторий SVN, в котором пользователи используют в качестве клиента любую DVCS, которая им нравится.

SVN намного проще в освоении и использовании для многих людей, а ее инструменты гораздо более зрелые.

3
ответ дан 27 November 2019 в 21:19
поделиться

Я думаю, что Subversion по-прежнему работает лучше, чем Mercurial и Git, для больших файлов, таких как медиаресурсы, файлы Photoshop, композиции After Effects и т. д. Я помню, как Линус Торвальдс упоминал большие файлы как одну из очень немногих потенциальных проблем с Git в это Google Tech Talk. Mercurial имеет несколько расширений для хранения больших файлов вне репозитория. Таким образом, кажется, что они оба страдают от некоторого снижения производительности и/или других проблем в этом сценарии.

Subversion, с другой стороны, используется в текущем Blender Open Movie Project. Я не думаю, что они используют его для хранения отрендеренных кадров, так как это будет как минимум несколько гигабайт данных для каждого прохода рендеринга. Но, тем не менее, со всеми 3D-сценами, объектами, ригами, текстурами и скриптами это по-прежнему один большой репозиторий со множеством больших файлов.

12
ответ дан 27 November 2019 в 21:19
поделиться

Я вижу причины, по которым вы могли бы продолжать использовать SVN, если вы использовали его в течение длительного времени. Переход с SVN на git или Mercurial, особенно в небольшой компании или кружке программистов, когда вы, возможно, не используете какие-либо из их более мощных функций, может заставить вас отказаться от перехода. Как отметил Тило, крупная компания, использующая SVN, сочтет это изменение монументальным.

Кроме того, я думаю, что у SVN все еще есть место, особенно когда дело доходит до обучения контролю версий. Но это взято из моего личного опыта изучения SVN в университете, а не самообучения git, поэтому мое мнение не будет объективным.

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

или старые пользователи ;)

11
ответ дан 27 November 2019 в 21:19
поделиться

Настоящий вопрос заключается не в SVN и Git/Mercurial, а в распределённости или централизованности. Централизованный может быть лучше в некоторых ситуациях, таких как корпоративная среда, где вам нужен жесткий контроль и тщательное ведение журнала.

8
ответ дан 27 November 2019 в 21:19
поделиться

Subversion интегрирует очень хорошо с апачем!

3
ответ дан 27 November 2019 в 21:19
поделиться