2010-01-19 5 views
3

На работе у нас есть очень большой проект (около 30 000 файлов), управляемый системой управления исходным кодом Borland StarTeam. Мы хотели бы перейти на SVN, но есть несколько препятствий на пути. Наиболее важным является проблема получения репозитория на всех виртуальных машинах разработчиков.Как создать версию SVN поверх существующего проекта?

Существует два основных способа настройки новой папки с версией SVN на вашем жестком диске. (В Windows, используя TortoiseSVN.) Вы можете либо проверить проект SVN из репозитория, либо взять существующий код и загрузить его в (предположительно пустой) репозиторий, и после любой из этих операций вы получите дерево папок с SVN папки метаданных. Но у нас есть несколько десятков разработчиков, у которых уже есть целая копия проекта. Нам бы очень хотелось сделать это, загрузив его один раз, а затем запустите «Связать эту существующую папку с хранилищем в [везде] и синхронизировать их».

Поддерживает ли SVN это? Если да, то как, и можно ли это сделать в TortoiseSVN, или ему нужны другие инструменты?

ответ

10

Что нужно сделать, это сделать щелчок правой кнопкой мыши «SVN checkout ...» в существующей папке на вашем жестком диске, содержимое которой идентично репозиторию, который вы собираетесь проверить. Каждый файл Tortoise находит локально, он будет сначала сопоставляться с версией в репозитории, а если контрольные суммы совпадают (я предполагаю, что он делает какое-то сравнение контрольной суммы), не загружайте его, а отмечайте его как «с версией» в протоколе проверки и перейдите к следующему файлу.

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

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

+0

Простенько ли это? Это было какое-то время, но я, похоже, помню, как пытался это сделать и не работал. Может быть, это было исправлено с тех пор? –

+1

+1 Я просто проверил это, выполнив SVN-экспорт существующего каталога в SVN, так что в нем не было метаданных .svn. Затем в этот недавно экспортированный каталог я сделал SVN Checkout того же каталога из SVN. Каждая запись была указана как «Versioned ...» вместо обычного «Добавлено ...» Если это имеет значение, я использую TortoiseSVN 1.6.6.17943. – JMD

+0

Спасибо! Я проверю это на нашем проекте, и если это сработает, я приму этот ответ. –

Смежные вопросы