Вопрос

Мой обычный рабочий процесс по созданию нового репозитория с Subversion - это создание новых репозиториев, проверка корня репозитория, создание тегов веток и папок стволов и размещение в стволе моих исходных файлов. Затем я делаю коммит этого «первоначального импорта», удаляю извлеченные репозитории с моего жесткого диска и проверяю ствол. Тогда я могу начать работать.

Однако, когда речь идет о крупном импорте, подумайте о сотнях мегабайт и о хостинге с управлением версиями вне сайта (на основе http), чтобы этот первоначальный импорт мог занять много времени. Что еще хуже, после совершения сделки мне нужно снова проверять этот массивный багажник.

Есть ли способ с использованием subversion использовать локальную копию транка без повторного извлечения данных, которые уже есть?

Это было полезно?

Решение

Существует - он называется "импорт на месте", и он описан в FAQ по Subversion здесь:

http://subversion.tigris.org/faq.html#in -местная-импорт

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

Другие советы

Я согласен на "импорт на месте" процедуры, а также с помощью сценария для TTB-структуры (проголосовали оба).

Просто небольшая подсказка:

Не следует импортировать огромное (десять тысяч) файлов в одном коммите, если вы используете http (s), поскольку время для отображения истории версий масштабируется по количество добавленных записей . Причиной такого поведения является то, что apache должен аутентифицировать все добавленные пути против файла svnaccess (конечно, только если вы включили авторизацию на основе пути). Это может сделать ваш репозиторий непригодным для использования, так как все файлы должны будут ждать в журнале SVN для этой большой версии.

Вы должны разделить огромный импорт по уровням каталогов

Я обычно использую " svn mkdir " создавать ствол / теги / ветви непосредственно на сервере сразу после создания хранилища. Затем я могу проверить пустой ствол, переместить мои исходные файлы в этот каталог, добавить и зафиксировать их и начать работать.

svn checkout --force позволяет вам оформить рабочую копию «поверх» существующего пути. Он сохраняет ваши старые файлы и добавляет файлы, которые есть только в вашем хранилище.

Для создания вашего хранилища: вы можете выполнить несколько команд mkdir для хранилища за один коммит, используя команду 'svnmucc', доступную в большинстве дистрибутивов Subversion (например, SlikSVN ).

Введите svnmucc без аргументов для некоторой помощи.

Если вы извлекли одну папку, скопировали в нее свои файлы, запустите svn add и svn commit ; Вам не нужно удалять файлы и повторно оформлять заказ.

Используйте файлы на месте: после того, как они были зафиксированы, как вы описали, они готовы к работе.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top