SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【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

関連するメモ

コメント