SVN vs VSS vs CVS Сравнение HELP - PullRequest
5 голосов
/ 09 июля 2009

В настоящее время мы определяем, следует ли переносить проекты CVS и VSS на один сервер SVN.

Я давно использую SVN, но вынужден использовать CVS и VSS для работы.

Не могли бы вы помочь мне объяснить, почему переход на SVN был бы лучше, чем покупка VSS 2005? А также каковы будут преимущества перехода от CVS к SVN?

У нас есть проекты на C # .NET / Java / Perl / Visual Basic.

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

И есть ли способ сохранить истории VSS и CVS при переходе в SVN?

Ответы [ 7 ]

10 голосов
/ 09 июля 2009

Это один из тех вопросов, который требует много деталей, но он будет сводиться к "Почему вам нравится использовать SVN?"и то, что вы можете использовать из списка «как», чтобы представить своему боссу.

Я использовал все три.Я могу говорить только за свой собственный опыт и предвзятость.Моя история использования VSS -> CVS -> SVN

CVS

Плюсы:

  • Может использоваться через Интернет
  • Очень стабильно

Минусы:

  • Переименовать вещи очень сложно.Это причиняет много боли.

Моя главная проблема - клиентское программное обеспечение.Я обнаружил, что все клиентское программное обеспечение является непоследовательным и несвязным.Я совершенно ненавидел его.

VSS

Плюсы:

  • Совместное использование проектов очень просто.
  • Хорошо интегрируетсяс Microsoft IDE

Минусы:

  • Используется механизм хранения Microsoft Jet, который склонен к повреждению любого доступа.
  • Может 'не может использоваться вне вашей локальной сети, если вы не купите что-то вроде SourceOffsite.
  • Файлы check-lock и файлы checkin-unlock могут снизить производительность в больших группах.Многие разработчики новичков оставляют файлы проверенными, и остальная часть команды должна ждать их, чтобы сделать любую регистрацию.
  • Microsoft больше не разрабатывает это.Microsoft даже не использует это для своих дойных коровьих приложений, таких как Office и Windows.Они фактически используют пользовательскую версию Perforce.

Subversion

Плюсы:

  • Цикл редактирования файла Checkout-edit-mergeочень удобен для команды
  • Создание веток очень дешево и не копирует физические файлы
  • Он постоянно разрабатывается
  • Есть несколько пакетов Subversion на выбор
  • Многие сторонние поставщики интегрируются с Subversion.У него богатая экология приложений.
  • Одним из основных преимуществ является то, что теперь вы можете интегрировать Subversion с безопасностью в дерево Active Directory.

Минусы:

  • Слияние конфликтов все еще может быть основной болью в шее, но это то же самое, что и в большинстве других систем контроля версий.
  • Безопасность может быть немного сложнее использовать в зависимости от того, какой сервер (svnserve.exe или Apache /)WebDAV) вы выбираете запускать свои репозитории.

Я предполагаю, что, так как ваши боссы хотят купить VSS2005, это будет работать на Windows.Я рекомендую вам использовать один из этих 3 дистрибутивов / пакетов Subversion

Общий установочный пакет Subversion: CollabNet Subersion - http://www.open.collab.net/downloads/subversion/ Это позволит установить как svnserver.exe (пользовательский сервер), так и Apache / WebDAVили вы можете выбрать, какой из них установить во время установки.Вы сможете обслуживать свои репозитории, используя протоколы http: // и svn: //.

Subversion плюс консоль администрирования: VisualSVN Server - http://visualsvn.com/server/ Они осуществляют свое собственное распространение Subversion.Этот пакет имеет оснастку консоли управления (MMC) для управления сервером.Это поможет вам настроить разрешение для вашего дерева Active Directory.Это в основном предназначено для http: // protocol.

Консоль администрирования Subversion: PainlessSVN - http://www.painlesssvn.com Этот будет работать только с svnserve.exe (пользовательский сервер).Это оснастка консоли управления (MMC), которая будет управлять настройками и пользователями.Это в основном ориентировано на протокол svn: //.

Том Риттер дал несколько очень хороших ссылок на инструменты, которые будут импортировать историю и код из CVS / VSS в Subversion.

4 голосов
/ 09 июля 2009

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

Одна проблема, которую я знаю, это проблема с перемещением и переименованием файлов внутри хранилища. Это большая проблема, если вы склонны много реорганизовывать свою кодовую базу.

Подробнее можно найти здесь: Ограничения CVS в Википедии.
И здесь: Критика на VSS в Википедии
И для сравнения: Ограничения SVN в Википедии

4 голосов
/ 09 июля 2009

Существуют инструменты для преобразования истории CVS в SVN и другие инструменты для миграции истории VSS - так что вы можете использовать их в случае перехода на более совершенную систему.

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

1 голос
/ 27 мая 2011

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

Два великих - Mercurial и Git.

1 голос
/ 09 июля 2009

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

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

0 голосов
/ 09 июля 2009

Две мои любимые вещи о SVN:

  • То, как делаются ветки, просто и красиво. Я никогда не мог полностью сосредоточиться на ветвлении CVS.

  • Скрытые локальные копии означают, что такие команды, как "svn diff" и "svn log", не должны связываться с сервером. Это значительно упрощает работу с извлеченным репозиторием на неподключенном ноутбуке.

0 голосов
/ 09 июля 2009

Есть много причин, чтобы перейти на SVN из CVS. Мы использовали CVS в качестве источника контроля с 2002 по 2007 год. Я скажу, что за это время у нас никогда не было проблем с CVS. Настоящая проблема заключается в том, что CVS не продвигался вперед с 1998 года в плане разработки функций.

Самым большим преимуществом SVN над CVS должны быть настоящие автономные коммиты. Мы использовали инструмент с открытым исходным кодом cvs2svn, чтобы перенести все наши CVS-проекты в SVN. У нас не было ни одной проблемы, и мы сохранили всю историю.

VSS: Это действительно один из худших продуктов Microsoft, когда-либо созданных. Повреждение файлов, потеря истории и серьезные проблемы со слиянием являются основными причинами, по которым стоит держаться подальше. На данный момент я почти уверен, что Microsoft отказывается от VSS в пользу Team Tools, встроенных в Visual Studio Team Edition.

...