【Subversion】svnsync init で起きていること
問題
svnsyncは svnsync init コピー先 コピー元
してから svnsync sync コピー先
しますが、コピー元などの情報はどこかで管理してるのですか。
答え
コピー先リポジトリに登録されている。
リビジョン 0 のプロパティに登録されている。
確認する。
$ svn proplist --revprop -r 0 https://example.com/project1 Unversioned properties on revision 0: svn:date svn:sync-currently-copying svn:sync-from-url svn:sync-from-uuid svn:sync-last-merged-rev svn:sync-lock
属性値はチェックアウトした作業コピー側で確認するか、
$ svn propget --revprop -r 0 svn:sync-from-url file:///home/svn/repos
リポジトリがあるホスト側で svnlook コマンドで確認できる。
$ svnlook propget --revprop /var/svn/project1 -r 0 svn:sync-from-url file:///home/svn/repos
上の例だと、設定されている svn:sync-from-url は、svnsync のコピー元のサーバーのローカルのパス。svnsync init した環境で svnsync sync すればうまくいくと思うが、それ以外の環境で svnsync sync すると失敗したりおかしなことになりそう。
逆に、この属性をうまくつじつまを合わせて他の値に変えれば、コピー元を変えたりできる はず らしい(未検証)。
$ svnadmin setrevprop /var/svn/project1 -r 0 svn:sync-from-url
コメント