Мы - распределенная команда из 5 разработчиков, работающая над довольно крупным интеграционным проектом. В настоящее время мы используем SourceSafe (да, я, знать, это отстой, но он работал до недавнего времени, а мы использовали его всегда). Нашей самой большой проблемой в последнее время стала производительность. Регистрация и выход проекта занимает вечность, и мы обнаруживаем, что тратим много времени, просто ожидая SourceSafe (да, мы отключили антивирусную проверку и все другие трикси для повышения производительности - это все еще медленно).
Сейчас мы изучаем возможность установки и переноса всего нашего материала в Subversion. Какова производительность SourceSafe через Интернет по сравнению с Subversion? Я полагаю, что историю не так важно перемещать (мы могли бы просто вернуться к базе данных VSS, если нам нужен старый файл), и фактическое перемещение файлов в Subversion должно быть проблемой, верно?
Я также хотел бы получить некоторые сведения об инструментах и надстройках, которые «должны быть» помимо собственно основных инструментов Subversion.
+1 «Просто работает, но очень медленно»: Полностью согласен!





С Subversion удаленный доступ намного проще.
Если вы не заботитесь о сохранении своей истории, переход от VSS к Subversion также прост. Вам просто нужно вручную удалить привязки системы управления версиями (файлы * .scc).
Что касается инструментов, вы, вероятно, захотите получить TortoiseSVN и, возможно, подключаемый модуль для использования с Visual Studio (если это то, что вы используете), например Ankh SVN (бесплатно).
Если вы действительно заботитесь о сохранении своей истории, тогда http://www.pumacode.org/projects/vss2svn преобразуется из одного репозитория в другой.
У меня был очень ограниченный успех, и это одна из причин, по которой мы до сих пор используем безопасный исходный код.
Я согласен с @relentless насчет подрывной деятельности, но предпочитаю использовать командную строку. Чтобы научиться, нужно немного времени, но как только вы научитесь, вы будете быстрее.
Кроме того, если производительность является важной проблемой, вы можете взглянуть на http://git.or.cz/, он считается действительно быстрым и надежным.
Если вы всего лишь группа из 5 разработчиков, переход на Git не должен быть слишком сложным.
Да ... Но мы работаем с большим количеством артефактов BizTalk, и я не уверен, как это будет работать
Судя по моему опыту, это будет намного быстрее.
Я не использовал один и тот же большой проект в VSS и SVN, но я делал разные проекты в каждом из них и переносил небольшой из VSS в SVN.
Некоторые вещи намного быстрее. В частности, при проверке / фиксации большого количества файлов появляется предупреждающее сообщение вроде «это займет много времени и может не сработать? Вы все равно хотите попробовать?» (Это не совсем то, что написано).
Фиксация большого количества изменений на самом деле невозможна в VSS - вам нужно сделать несколько небольших коммитов, оставив проект во временно неработающем состоянии (хотя у него все равно нет атомарных коммитов, так что это все равно произойдет в какой-то момент) .
Вы также можете найти этот вопрос релевантным.
Основное различие в продолжительности отдельных операций в SVN и VSS заключается в принципе SVN: время операции должно быть пропорционально размеру изменения, а не размеру проекта. Лучше всего это видно с помощью Get latest version (VSS) по сравнению с Update (SVN). VSS «Получить последнюю версию» всегда перебирает все файлы в проекте, проверяя их статус. Это займет очень много времени. По сравнению с этим, SVN проверяет историю проекта и манипулирует только файлами, которые были затронуты. В типичном сценарии это огромная победа, поскольку чаще всего затрагиваются только несколько файлов. Даже при касании файла передача изменений в SVN происходит намного быстрее, чем в VSS, потому что передаются только изменения по сравнению со всем файлом в VSS. То же самое верно и для коммитов (Checkin), где снова SVN намного быстрее при внесении небольших изменений в огромные файлы. Это также относится к двоичным файлам, поскольку SVN также может выполнять различие с ними (используя XDelta в качестве основного механизма сравнения).
Для разработчика Visual Studio наиболее важными инструментами являются:
Я даже дошел до того, что сказал, что имея TortoiseSVN и AnkhSVN, вам вообще не нужно устанавливать «Основные инструменты Subversion». Основные инструменты командной строки чрезвычайно полезны, например для автоматизации, но для повседневной работы я никогда не использую их, и для работы TortoiseSVN или AnkhSVN их установка не требуется.
Доступ через Интернет изначально поддерживается SVN и поддерживается очень хорошо. Для VSS вам нужны внешние приложения, и хотя они неплохие, они не работают 1: 1 по сравнению с исходной средой, и их скорость все еще несколько невысока.
VSS2SVN - это инструмент, который выполняет преобразование достаточно быстро и достаточно хорошо. Основываясь на нашем опыте, я настоятельно рекомендую не использовать «стабильную» сборку, а использовать вместо нее ежедневный снимок - он может обрабатывать многие элементы в истории, которые приводят к полному сбою предыдущей сборки.
Мы успешно использовали недавнюю ежедневную сборку с огромной базой данных с долгой историей, и результат был очень хорошим.
@suma: эй, сума, спасибо за внимание к AnkhSVN, я почти купил VisualSVN. Я просто пробую это сейчас, но знаете ли вы, достаточно ли гибки VisualSVN или AnkhSVN, чтобы репозиторий db был просто переносимым, поэтому иногда он будет в Интернете, а иногда, скажем, на моем iPod ... .? ваше здоровье
Что именно ты хочешь делать? Будет ли URL-адрес db всегда одинаковым? Имейте в виду, что с SVN вы можете выполнять некоторые базовые операции (включая «сравнение с базой») без необходимости связываться с db (и здесь нет проверки, поэтому вы определенно можете начать редактирование даже в автономном режиме).
регистрироваться VSS называется совершить в SVN. Эта операция выполняется во много раз быстрее, поскольку SVN будет передавать только изменения (также известные как «diff»), которые вы внесли в файлы, в то время как VSS отправит весь файл и изменит его на сервере.
проверить в SVN (получение начальной рабочей копии) несколько медленнее по сравнению с другими системами, если вы используете http (s) и имеете большой (> 100 МБ) общий размер файлов. В худшем случае SVN - это много файлов и каталогов, так как HTTP-передача будет намного медленнее, чем большие отдельные файлы.
Однако я сомневаюсь, что VSS будет быстрее SVN. Общая производительность SVN выше, надежнее (без повреждений базы данных) и проще для понимания, чем у VSS.
Хорошими инструментами являются TortoiseSVN (подключаемый модуль проводника), smartSVn (аналог VSS) и командная строка (гибкая). как Tigraine добавил в мои комментарии: AnkhSVN (интеграция с Visual Studio) и subversive / subclipse для eclipse IDE
Дело не в том, что он различает его на сервере. VSS - это не архитектура клиент / сервер. Клиент VSS просто использует общий доступ к файлам Windows для работы с файлами своей базы данных.
Visual SourceSafe построен на основе обмена файлами. Поэтому, когда вы бронируете в файле, все делается с использованием файловой системы. Таким образом, вместо того, чтобы просто отправлять текст файлов на сервер и все, что происходит удаленно, VSS обращается к физическим блокам с диска при доступе к серверу vss. Включая поиск файла в каталоге общих дисков и т. д. Это примерно в 10 раз медленнее, чем заказной протокол клиент-сервер.
Существует продукт под названием SourceOffSite, который добавляет более быстрый интерфейс к базе данных VSS, что позволяет использовать VSS по более медленным ссылкам.
Тони
Возможно, вы захотите немного переименовать свой вопрос, чтобы подчеркнуть производительность :)