Некоторое время назад встала задача запустить svnsync поверх существующей копии репозитория (проблема заключается в том, что svnsync init требует для настройки реплики пустой репозиторий).
В результате получился следующий алгорим решения этой задачи нужно:
- в свойствах ревизии номер 0 (файл db/revprops/0/0) прописать вручную параметры:
- svn:sync-from-url = <URL мастер-репозитория>
- svn:sync-from-uuid = <UUID мастер-репозитория> Узнать UUID репозитория можно командой svn info <URL мастер-репозитория>.
- svn:sync-last-merged-rev = <номер последней ревии в текущем репозитории>
Номер ревизии указан в файле db/current. - Лишние параметры svn:sync-* нужно удалить.
- удалить все блокировки из репозитория (svnadmin rmlocks …);
- добавить хук: hooks/pre-revprop-change;
- отключить pre-commit и post-commit хуки, если есть.
После этого можно запустить синхронизацию при помощи svnsync.
Формат параметров в db/revprops
Парамеры в файлах db/revprops имеют вид:
K <Длина имени параметра>
<Имя параметра>
V <Длина значения параметра>
<Значение параметра>
Например:
K 17
svn:sync-from-url
V 15
svn://host/repo