svnsync Я не могу синхронизировать репозиторий, потому что я получил ошибку: не удалось прочитать размер чанка
Я хочу синхронизировать только свою ветку в репо. branches/my_branch
поэтому я выполнил:
svnsync init http://localhost/svn/my_branch http://remote_svn/branches/my_branch
После этого я выполнил:
svnsync sync http://localhost/svn/my_branch
[...]
Copied properties for revision 53542.
Committed revision 53543.
Copied properties for revision 53543.
Committed revision 53544.
Copied properties for revision 53544.
Committed revision 53545.
Copied properties for revision 53545.
Committed revision 53546.
Copied properties for revision 53546.
Transmitting file data .........................................................
.................................................svnsync: E175002: REPORT of
'http://remote_svn/branches/my_branch': Could not read chunk size: connection
was closed by server (http://remote_svn)
(конечно, есть намного больше "точек")
Я знаю, что эта редакция ОГРОМНА, потому что она начальная.
Так есть ли способ сделать это по-другому? Может быть, оформить заказ (checkout работает нормально) в временном месте и вручную зафиксировать в целевой SVN, а затем возобновить его?
2 ответа
Похоже, ваша сеть или сервер закрыли соединение на вас. Вы можете попробовать еще раз, следя за использованием памяти в процессе синхронизации.
Чтобы сделать это вручную, вам нужно скопировать данные из каталога файлов, а затем тщательно отредактировать содержимое файла свойств 0. Там вы найдете подробности процесса синхронизации. После того, как вы скопировали первую дельту файла, просто измените свойство 0 так, чтобы оно читалось так, как будто оно уже синхронизировано с этим файлом. (т.е. добавьте 1 к соответствующим записям). Потратьте немного времени, чтобы понять каждую из записей в этом файле свойств. Если вы запутались, просто удалите каталог синхронизации и запустите снова (или скопируйте весь репозиторий синхронизации и восстановите его)
С новыми версиями svnsync вы можете сделать следующее.
На исходной машине
svnadmin dump repo > repo.dump
На машине, где вы хотите синхронизировать с
svnadmin create repo
svnadmin load repo < repo.dump
затем
svnsync init --allow-non-empty <dest> <source>
и он будет предполагать, что первые n ревизий, которые вы выбросили, одинаковы для dest и source.