SVN против VSS против CVS Сравнение HELP

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

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

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

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

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

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


person Neoryder    schedule 09.07.2009    source источник
comment
Возможный дубликат: stackoverflow.com/questions/17524 /   -  person Greg Hewgill    schedule 09.07.2009


Ответы (7)


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

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

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

person Janusz    schedule 09.07.2009

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

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

CVS

Плюсы:

  • Его можно использовать в Интернете
  • Очень стабильный

Минусы:

  • Переименовать вещи очень сложно. Это вызывает сильную боль.

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

VSS

Плюсы:

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

Минусы:

  • Он использует механизм хранения Microsoft Jet, который может повредить все, к чему обращается.
  • Его нельзя использовать за пределами вашей локальной сети, если вы не купите что-то вроде SourceOffsite.
  • Файлы checkout-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 plus Консоль администрирования: VisualSVN Server - http://visualsvn.com/server/ Они создают собственный дистрибутив Subversion . В этом пакете есть оснастка консоли управления Microsoft (MMC) для управления сервером. Это поможет вам настроить разрешение для вашего дерева Active Directory. Это в основном ориентировано на протокол http: //.

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

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

person Hector Sosa Jr    schedule 09.07.2009
comment
Один из клиентов CVS, который мне понравился, был CrossVC. - person Robert S. Barnes; 16.11.2009

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

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

person Tom Ritter    schedule 09.07.2009

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

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

person Chris Doggett    schedule 09.07.2009
comment
К счастью, я не использовал VSS в течение многих лет, поэтому у меня все еще есть волосы на голове. Но когда я был ... ах, даже инструмент VSS Analyze не исправлял некоторых причудливых проблем с базой данных. Иногда мы перемещали текущий репозиторий в качестве резервной копии и снимали текущий код в новый, чтобы избежать ошибок. - person devstuff; 09.07.2009
comment
SourceGear Vault и Fortress бесплатны для лицензии на одного человека. - person Magnus Johansson; 09.07.2009

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

Два отличных из них - Mercurial и Git.

person JD Isaacks    schedule 27.05.2011

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

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

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

person Community    schedule 09.07.2009

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

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

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

person caf    schedule 09.07.2009
comment
Если они вам нравятся, вам действительно стоит попробовать Git. Реальная поддержка ветвления и полная местная история могут просто поразить вас. - person toholio; 23.07.2009