sync-from URL 作为 revprop 存储在镜像仓库中。如果在有镜像仓库的机器上(我的情况),使用svnlook工具查看,使用svnadmin进行更改:
user@q.r[~]$ svnlook pg --revprop -r0 /path/to/mirror/repo svn:sync-from-url
svn+ssh://svn.abc.com:1234/svn/foo
您将看到您的镜像当前正在同步到的存储库的 URL。在上面的示例中,主存储库 URL 以 ... /foo结尾。它的末尾可能没有换行符,因此您的 shell 提示符可能会跟随。现在你需要把它放到一个文件中,因为 svnadmin 使用一个文件作为输入来改变 revprops。
user@q.r[~]$ svnlook pg --revprop -r0 /path/to/mirror/repo svn:sync-from-url > t.txt
现在编辑t.txt以将 URL 更改为主存储库。这可能导致换行符出现在t.txt的末尾,并导致来自 svnsync 的模糊/无意义的错误消息。所以摆脱它:
user@q.r[~]$ cat t.txt | tr -d '\n' > t2.txt
请注意,我们现在有t2.txt,它是经过清理的文件。然后使用svnadmin将 revprop 更改为刚刚编辑和清理过的文件的内容:
user@q.r[~]$ svnadmin setrevprop /path/to/mirror/repo -r0 svn:sync-from-url t2.txt
请注意,使用 t2.txt 而不是 t.txt。最后,检查您的更改:
user@q.r[~]$ svnlook pg --revprop -r0 /path/to/mirror/repo svn:sync-from-url
svn+ssh://svn.def.com:5678/svn/foo
您应该会立即看到新的 repo URL,然后是 shell 提示符,没有换行符。在上面的例子中,URL 以 foo 结尾,紧接着是 shell 提示符 user@qr[~]$。