VSS или SVN для a.Net проект? [закрытый]

на работе один из руководителей попросил меня изучить преимущества изменения текущего сервера управления версиями (Visual Source Safe) моего проекта на SVN.

Я действительно ничего не имею против SVN, на самом деле я вроде как копаю его, но, по моему скромному мнению, изменение на SVN не принесет никаких существенных преимуществ проекту и заставит нас использовать некоторые сторонние инструменты для управления исходным кодом из Visual Studio (мы разрабатываем, используя в основном Только средств Microsoft).

Итак, в качестве первого шага в моем исследовании я спрашиваю вас: каковы могут быть преимущества переключения с VSS на SVN?

16 ответов


SVN более популярно чем VSS и имеет серии преимуществ. VSS старый и устаревший.

многие разработчики в настоящее время переходят от VSS к SVN. Если вы ищите "SVN" и " VSS " в Google, он покажет вам много статей, связанных с VSS для миграции SVN.

  • модель блокировки-модификации-разблокировки VSS делает сотрудничество с быстро меняющимися файлами серьезной головной болью. Плюс накладные расходы, связанные с необходимостью администратора для разблокировки файлов, которые кто-то проверил, пока они в отпуске.
  • С VSS, это не вопрос, если вы потеряете данные-это когда. Ваш исходный репозиторий должен быть rock-Если разработчик рабочая станция падает, вы должны были только потерять его изменения. Вы не должны терять случайные файлы и данные из репозитория
  • VSS не поддерживается MS более 6 лет. Вы можете даже получить поддержку для него больше?
  • В зависимости от ваших инструментов резервного копирования, вы не сможете получить полную резервную копию вашего репозитория VSS, если у вас остался только один человек, вошедший в систему на сервере (это означает, что они оставили свои инструменты разработки открытыми или оставили клиент VSS запущенным).
  • VSS требует, чтобы все пользователи имели почти полный контроль на уровне файловой системы (разрешения NTFS) над файлами, составляющими репозиторий.
  • нет хорошего, удобного, легко доступного опубликованного API для VSS, а сторонние инструменты по большей части слабы.
  • слияние отстой в VSS.
  • VSS: если у вас есть разработчики, разбросанные по нескольким часовым поясам, сам акт их проверки может повредить базу данных, если они проверяют слишком близко друг к другу, в неправильном порядок.

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


Если вы выберете SVN. Вот список инструментов, которые могут вам понадобиться:

  • AnkhSVN является поставщиком Subversion SourceControl для Visual Студия.
  • и rapidsvn является кросс-платформенным клиентом Subversion.
  • TortoiseSVN является простым в использовании программное обеспечение SCM / source control для Microsoft Windows и, возможно, лучший автономный клиент Subversion есть.
  • VisualSVN - это плагин Visual Studio, который интегрирует Subversion и TortoiseSVN с Visual Студия.
  • Сервер VisualSVN - это пакет, содержащий все необходимое для установки, настройки и управления Subversion server для вашей команды на платформе Windows. Он включает Subversion, Apache и консоль управления.

вот отличная книга на эту тему: контроль версий с Subversion by C Pilato

контроль версий с Subversion http://ecx.images-amazon.com/images/I/51iwjNGkQdL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU01_.jpg


еще одна хорошая альтернатива VSS и SVN -Крепость SourceGear который имеет систему отслеживания проблем в дополнение к управлению версиями-все в одном. Или Хранилище SourceGear только для управления исходным кодом. Также есть SourceAnyWhere решение. Если вам нужно решение Microsoft, чем идти с TFS вместо ВСС.


Microsoft призналась, что никогда не использует VSS ни в одном из своих внутренних проектов (не может найти ссылку прямо сейчас :/). Я использовал его в течение двух лет, и это было глупо и плохо. База данных была повреждена не реже одного раза в неделю.

кроме того, одна из моих любимых вещей, чтобы процитировать пользователям VSS, - это первая цитата на Эрик сайту wadworth это!--5--> страница, как сообщается, от кого-то в Microsoft:

"Visual SourceSafe?  It would be safer to print out all your code,
run it through a shredder, and set it on fire."

определенно пойти с SVN. VSS похож на кошмары 1000 демонов.


рассмотрим более современный инструмент, как Git, ртутный или помощью darcs. Есть много преимуществ, я оставлю googling в качестве упражнения для читателя.


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

Мне так нравится SVN, что я написал обзор того, что я считаю самыми ценными клиентами (некоторые из них не являются) и дополнительными инструментами. Это новая статья, поэтому она очень своевременна: http://codertools.wordpress.com/2009/03/24/svn-subversion-clients-and-other-tools/

Я бы не колеблясь рекомендовал SVN никому - git следующий в моем списке, чтобы посмотреть.. Надеюсь, это поможет.


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

Не нужно беспокоиться о том, у кого есть файл, проверенный другой.


Я нахожу объединение файлов с VSS очень громоздким, но это здорово с SVN. Кроме того, и у меня нет никаких доказательств этого, но SVN, кажется, быстрее.


VSS старый и устаревший. База данных слишком часто повреждается. Есть причина, по которой MS также построила TFS.

SVN очень популярен (что означает много поддержки сообщества, что означает бесплатную поддержку), есть много инструментов, которые подключаются к нему (например, CruiseControl для непрерывной интеграции), и он довольно прост в использовании.

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

мы изменились с VSS на SVN 4 года назад, и с тех пор мы не оглядывались назад.


просто в стороне, мы используем Sourcegear Vault в течение нескольких лет довольно счастливо. Наличие репозиториев и Центральной базы данных SQL Server вместе с отличным доступом через интернет сделало его слэм-данком для нашей организации.

Я думаю, что это по разумной цене и, по крайней мере, стоит посмотреть.


AnkhSVN 2.0 действительно очень хороший.

Если бы у вас была интеграция Visual Studio в качестве требования, я бы предупредил против SVN еще год назад, но это сильно изменилось. Это все еще не так хорошо, как, скажем, vs Team System, но это намного лучше, чем старая интеграция MSSCCI на основе VSS. Нет причин не использовать SVN .Сеть.


еще один голос" определенно SVN " здесь. Я был частью миграционной команды на предыдущей работе. Не могу передать, как приятно было избавиться от ВСС.

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

Я мог бы продолжать, но воспоминания о кандалах ВСС слишком болезненны. Просто скажи "нет".


SourceGear Vault является отличной заменой для ВСС. Сначала это были "функции VSS, но с использованием реальной базы данных", и вырос оттуда.


почти определенно SVN. SVN использует другой способ работы (копирование-изменение-слияние вместо блокировки-изменение-разблокировка). Это немного кривая обучения, но так было в течение нескольких лет, поэтому большинству разработчиков все равно придется ее изучить. Lock-Modify-Unlock-это слишком большая боль, и есть серьезные проблемы с сотрудничеством, которым она на самом деле способствует, что я был бы рад объяснить, если вам интересно.

поддержка комментариев о насколько плох VSS. Вот различные ссылки, которые охватывают эту тему:

http://www.codinghorror.com/blog/archives/000660.html

http://www.developsense.com/testing/VSSDefects.html

http://wadhome.org/svn_vs_vss.html

Edit: см. также: управление версиями-блокировка против слияния?


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

с VSS коррупция случалась не реже одного раза в месяц. С SVN (то же оборудование и ОС) - не один раз в течение двух лет.

О, и возможности ветвления / слияния сладки!


определенно, пойдите с SVN, по всем изложенным выше причинам. Вы могли бы попробовать ankhsvn который является плагином svn для visual studio. Таким образом, вы получаете лучшее из обоих миров: использование SVN и вся работа по-прежнему выполняется в visual studio.


просто дополнение к ответу Коисты Навин.

Он сказал: Вот отличная книга на эту тему: контроль версий с Subversion by C Pilato

существует бесплатная онлайн-версия:

http://svnbook.red-bean.com/


Team Foundation Server является оптимальным выбором для разработки в мире .NET. Однако это не бесплатно и для текущей версии 2008 это может быть довольно дорого. Если у вас есть пакет более высокого уровня для Visual Studio, вы получаете TFS workgroup edition бесплатно, что позволяет 5 пользователям получить доступ без дополнительных затрат.

есть некоторые основные предостережения к рабочей группе edition вы должны использовать один из 5 слотов для учетной записи службы TFS, если вы не настроили его для запуска под учетной записью пользователей это будет включено в список членов TFS. Другой, как только вы нажмете ограничение пользователя 5, переход к пользователям 6-довольно ошеломляющая стоимость, поскольку текущие требования к лицензии включают необходимость покупки сервера (несколько тысяч долларов) и CALs для каждого члена команды. Это довольно непомерная стоимость, чтобы добавить еще одного члена в команду.

тем не менее, Microsoft пришла к пониманию этого и меняет это для 2010. Вам больше не нужно будет покупать сам сервер и нужно будет только приобрести CALs. лицензирование сервера TFS 2010: включено в подписки MSDN