Объедините неимеющую версию структуру каталогов в репозиторий SVN

Я фиксировал сторонний проект в свой собственный репозиторий SVN. Теперь, я получил новую версию того проекта, и я хотел бы заменить им в своем репозитории.

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

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

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

Однако я освобождаю историю для всего. Кроме того, svn сервер не сможет использовать сжатие дельты (Да, место на сервере действительно имеет значение).

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

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

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

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

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

5
задан Meinersbur 16 March 2010 в 20:41
поделиться