Ответ 1
URL-адрес синхронизации сохраняется как revprop в зеркальном репо. Если на машине с зеркальным репозиторием (моя ситуация), используйте инструмент svnlook и svnadmin:
[email protected][~]$ svnlook pg --revprop -r0 /path/to/mirror/repo svn:sync-from-url
svn+ssh://svn.abc.com:1234/svn/[email protected][~]$
Вы увидите URL-адрес репо, к которому в настоящее время синхронизируется ваше зеркало. В приведенном выше примере основной URL-адрес репо заканчивается... /foo. У него может не быть новой строки в конце, поэтому может появиться приглашение вашей оболочки. Теперь вам нужно получить это в файл, так как svnadmin использует файл для ввода для изменения revprops.
[email protected][~]$ svnlook pg --revprop -r0 /path/to/mirror/repo svn:sync-from-url > t.txt
[email protected][~]$
Теперь отредактируйте t.txt, чтобы изменить URL-адрес основного репо. Это может привести к появлению новой строки в конце t.txt и приведет к появлению неясных/бессмысленных сообщений об ошибках из svnsync. Так что избавитесь от него:
[email protected][~]$ cat t.txt | tr -d '\n' > t2.txt
Обратите внимание, что теперь мы имеем t2.txt, который является дезинфицированным файлом. Затем используйте svnadmin, чтобы изменить revprop на содержимое только что отредактированного и дезинфицированного файла:
[email protected][~]$ svnadmin setrevprop /path/to/mirror/repo -r0 svn:sync-from-url t2.txt
[email protected][~]$
Обратите внимание, что t2.txt используется не t.txt. Наконец, проверьте свои изменения:
[email protected][~]$ svnlook pg --revprop -r0 /path/to/mirror/repo svn:sync-from-url
svn+ssh://svn.def.com:5678/svn/[email protected][~]$
Вы должны увидеть свой новый URL-адрес репо сразу же после приглашения оболочки без новой строки. В приведенном выше примере URL-адрес заканчивается на foo и сразу же следует приглашение оболочки [email protected] [~] $.