Объединить неверсионную структуру каталогов в SVN-репозиторий - PullRequest
5 голосов
/ 16 марта 2010

Я добавил сторонний проект в свой собственный svn-репозиторий. Теперь у меня есть новая версия этого проекта, и я хотел бы заменить ее в своем хранилище.

Проект довольно большой (1,2 ГБ), и в новой версии появились новые файлы / каталоги, а также удаленные файлы / каталоги.

Тривиальное решение

svn rm project
mv /path/to/new/project .
svn add project
svn ci

Однако я теряю историю для всего. Кроме того, сервер SVN не сможет использовать дельта-сжатие (да, пространство на сервере имеет значение).

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

Каковы другие возможности для фиксации новой версии? Это необычный вариант использования, поэтому для него нет встроенной поддержки? (С Tortoise SVN я бы возился с папками .svn, Tortoise предлагает удалить отсутствующие файлы / папки в диалоге фиксации, но версия командной строки отказывается от фиксации, если обнаруживает файлы / папки, не удаленные с помощью svn rm)

Extra 1 : Как избежать переопределения изменений в моем хранилище? (Там только несколько, поэтому повторное применение в настоящее время приемлемо)

Extra 2 : я заменил все символические ссылки на копии места назначения (чтобы избавиться от ошибок special status changed). Как этого избежать?

Extra 3 : Как справиться с переименованными файлами / каталогами? Поскольку я просто получаю новую версию без истории изменений, определить ее автоматически невозможно. svn mv до совершения?

Ответы [ 2 ]

5 голосов
/ 02 ноября 2010

Инструмент fs2svn, входящий в svn2svn , выполняет основы того, что вы ищете. Начните с этого поста .

1 голос
/ 22 сентября 2011

Вы можете попробовать метод, который рекомендует subverion для слияния в коде поставщика через ветвь вендора, а затем транкинг слияния. У них также есть инструмент svn_load_dirs.pl, который поможет с добавлением, удалением и перемещением в вышестоящей версии.

Подробности можно найти по адресу: http://svnbook.red -bean.com / о / 1,6 / svn.advanced.vendorbr.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...