Я фиксировал сторонний проект в свой собственный репозиторий 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
перед фиксацией?