Вы также можете найти этот вопрос актуальным.
Производительность
Основное различие в том, как долго отдельные операции выполняются в SVN и VSS, заключается в принципе SVN: время операции должно быть пропорционально размеру изменения, а не размеру проекта. Это лучше всего видно при использовании последней версии (VSS) и обновления (SVN). VSS «Получить последнюю версию» всегда перебирает все файлы в проекте, проверяя их состояние. Это занимает очень много времени. По сравнению с этим SVN проверяет историю проекта и манипулирует только теми файлами, которые были затронуты. В типичном сценарии это огромный выигрыш, так как чаще всего затрагиваются только несколько файлов. Даже при касании файла передача изменений в SVN происходит намного быстрее, чем в VSS, поскольку передаются только изменения по сравнению с целым файлом в VSS. То же самое верно для коммитов (Checkin), где снова SVN работает намного быстрее, когда вносит небольшие изменения в большие файлы. Это относится и к бинарным файлам, поскольку SVN также может различать их (используя XDelta в качестве ядра разностного ядра).
Самые важные инструменты
Для разработчика Visual Studio наиболее важными инструментами являются:
- TortoiseSVN - доступ к хранилищу через оболочку Windows
- АнхСВН - интеграция с Visual Studio
- некоторые также рекомендуют VisualSVN в качестве интеграции VS, но я думаю, что с AnkhSVN 2 интеграция уже достаточно хороша
Я даже дошел до того, что, имея TortoiseSVN и AnkhSVN, вам вообще не нужны "инструменты ядра Subversion". Основные инструменты командной строки чрезвычайно полезны, например, для автоматизации, но для обычной повседневной работы я никогда не использую их, и для работы TortoiseSVN или AnkhSVN их установка не требуется.
Интернет-доступ
Доступ через Интернет изначально поддерживается SVN и поддерживается очень хорошо. Для VSS вам нужны внешние приложения для этого, и, хотя они неплохие, они не равны 1: 1 по сравнению с исходной средой, а их скорость все еще не хватает.
Как конвертировать
VSS2SVN - это инструмент, который выполняет преобразование достаточно быстро и достаточно хорошо. Исходя из нашего опыта, я бы настоятельно рекомендовал не использовать «стабильную» сборку, вместо этого использовать ежедневный снимок - он способен обрабатывать многие элементы в истории, что приводит к полному отказу предыдущей сборки.
Мы успешно использовали недавнюю ежедневную сборку с огромной базой данных с длинной историей, и результат был очень хорошим.