Я хочу выбрать систему контроля версий для своей компании. До сих пор я знаю, что у меня есть Git, Subversion и Mercurial.
Сейчас я вижу, что Git используется чаще всего, поэтому мне остается только задуматься: есть ли какая-то конкретная причина для того, чтобы по-прежнему использовать Subversion, или мне следует перейти непосредственно к Git?
version-control
git
svn
user1179459
источник
источник
Ответы:
SVN совсем не мертв. Он по-прежнему широко используется и никуда не денется в ближайшее время. SVN намного проще в использовании, чем распределенный контроль версий, особенно если вы на самом деле не запускаете распределенный проект, который требует распределенного контроля версий.
Если у вас есть только один центральный репозиторий (который необходим вашей компании, если он еще достаточно мал, чтобы обойтись без контроля исходного кода), гораздо проще использовать SVN для взаимодействия с ним. Например, с помощью SVN вы можете извлечь изменения из репозитория или зафиксировать в нем свои локальные изменения с помощью одной операции, тогда как HG и Git требуют двух или трех шагов для выполнения эквивалентной работы.
А с недавними изменениями SVN исправил множество проблем с производительностью, из-за которых люди предпочитали HG и Git. Сейчас это значительно быстрее, чем пару лет назад, и на данный момент, на самом деле, нет веских оснований смотреть на HG или Git для вашего проекта, если вам действительно не нужны расширенные функции распределенного контроля версий.
источник
Инструменты клиента еще не упоминались. Конечно, вы можете делать все с помощью сценария командной строки, но интеграция с графическим интерфейсом может значительно повысить производительность.
Мы работаем в основном с Visual Studio; интеграция в IDE определенно лучше с SVN, чем с Git прямо сейчас. Это может измениться в будущем, но я бы определенно учел это в вашем решении так же, как функции контроля версий.
Как и все остальное, система управления версиями - не самоцель, а инструмент, помогающий вам двигаться в нужном направлении. Выберите тот, который поможет вам быстрее всего в зависимости от вашей ситуации.
источник
Я фанат Git. Недавно мне пришлось признать, что одним из недостатков Git является то, что он идентифицирует версии с хэшами как номера выпуска svn. Номер релиза легче передать по телефону или что-то в этом роде.
И это единственный профессионал, которого я могу себе представить. Если вы действительно хотите положиться на эту функцию, вы можете использовать ее в распределенном и / или централизованном VCS Bazaar . В Git есть теги, которые могут служить цели.
Во всяком случае, я просто не мог представить разработку без быстрого переключения веток и накопления. Эти две функции побеждают SVN, где, насколько я помню, одна и та же задача требовала создания и проверки целого дерева в отдельных каталогах для достижения одной и той же цели.
Эти так называемые «расширенные возможности распределенного контроля версий» приходят со временем, и вам не нужно изучать их в самом начале. Не бойся их. Они здесь, чтобы помочь вам, а не мешать. И нет проблем с настройкой центрального хранилища для DVCS.
источник
С помощью SVN вы можете легко извлекать части хранилища вплоть до уровня папки, тогда как с помощью git вы получаете весь хранилище, включая всю историю.
В зависимости от ситуации это может иметь некоторые преимущества для SVN
(это также имеет некоторые большие недостатки, такие как скрытый мусор ".svn" на всем пути вверх по дереву папок).
источник
«Если у вас есть задача, которую можно выполнить за шесть часов, лучше написать инструмент, который выполняет ее за 20 минут, даже если создание инструмента занимает шесть часов?»
Распределенный контроль версий - это другой зверь, с которым нужно бороться. Это требует существенного обучения для каждого разработчика. Если у вас есть буфер для размещения процесса обучения для каждого разработчика, вам следует перейти к хорошей распределенной системе контроля версий. После завершения фазы обучения распределенный контроль версий становится намного лучше, чем централизованный контроль версий.
Распределенное управление версиями, кажется, возможно. Это здесь, чтобы остаться на очень долгое время, лучше, чтобы мы адаптировались к нему раньше, чем позже. Я помню то же самое обсуждение, когда SVN был новым, и люди привыкли к CVS, было дано много аргументов за то, что они не использовали SVN, но в итоге SVN стала самой популярной системой контроля версий.
Если компания хорошо зарекомендовала себя с большим количеством исходного кода в существующей системе контроля версий, переход на новую систему является большой задачей, но если компания небольшая или только начинает работу, переход на новый контроль версий очень прост. Но если вы будете придерживаться более старой версии управления (в новой настройке), вы попадете в узкое место где-то в будущем, где вам все равно придется планировать миграцию системы контроля версий.
Я видел много профессиональных комментариев SVN, но все они имеют тенденцию быть "SVN не плох", а не "SVN лучше". Поэтому я настоятельно рекомендую вам выбрать распределенный контроль версий (например, Git) для вашего проекта.
РЕДАКТИРОВАТЬ Преимущества GIT над SVN
Выделенный сервер не требуетсяНа самом деле, оба могут быть использованы без сервера.Кто-то упомянул инструментарий (для visual studio) как причину придерживаться SVN. http://gitscc.codeplex.com/ обеспечивает поддержку GIT для Visual Studio.
источник
Once the learning phase is over Distributed Version Control is much better than Centralized Version Control.
Я полностью не согласен с этим. Это может иметь некоторые ощутимые преимущества в некоторых обстоятельствах, но такая простая вещь, как номер версии в svn, читаемый человеком, является огромным преимуществом во многих организациях.Помимо поддержки инструментов в IDE (которые я не использую) - не совсем, нет. Конечно, SVN может быть более знакомым, но это единственная причина, и я обнаружил, что Hg и Git очень легко (и очень быстро) учиться.
Да, есть все эти сложные руководства, которые описывают, как Git тривиален, когда вы понимаете, что ветви - это просто гомеоморфные эндофункторы, отображающие подмногообразия гильбертова пространства. 1
Я этого не понимаю Но вы знаете, что? Это не важно Вам не нужно знать что-либо из этого, чтобы использовать Git.
По большей части, Git и Hg просты в использовании и имеют явные преимущества перед SVN. Слон в комнате, конечно, разветвляется: ветки просто работают в Git и Hg. Напротив, в SVN они болезненны в лучшем случае и сломаны в худшем (слияние нескольких голов).
Конечно, вы все еще можете использовать SVN. Вы также можете использовать Windows XP. Тем не менее, большинство пользователей, которые пробовали оба, соглашаются, что одна из альтернатив значительно превосходит их.
+1 Да понял, что это шутка. Я думаю.
источник