まずは、svnsync の場合。
svnsync は、別の PC に Subversion のリポジトリを作成し、複製するというもの。
- 複製用リポジトリ作成
C:\> mkdir C:\subversion
C:\> cd C:\subversion
C:\subversion> svnadmin create backup
- pre-revprop-change.bat 作成
C:\subversion\backup\hooks\pre-revprop-change.bat を新規に作成し、
exit /b 0 の1行のみを記述。
これを実施しないと、svnsync sync 実行時に以下のエラーが出力される。
svnsync: リポジトリが、リビジョン属性を変更できるようにはなっていません。
管理者に pre-revprop-change フックを作成するよう頼んでください
- 同期を実施
C:\subversion> svnsync init file:///subversion/backup https://www.xxx.yyy.zzz:8080/svn/svn_project
リビジョン 0 の属性をコピーしました。
C:\subversion> svnsync sync file:///subversion/backup
リビジョン 1 をコミットしました。
リビジョン 1 の属性をコピーしました。
リビジョン 2 をコミットしました。
リビジョン 2 の属性をコピーしました。
リビジョン 3 をコミットしました。
(中略)
ファイルのデータを送信しています ..
リビジョン 113 をコミットしました。
リビジョン 113 の属性をコピーしました。
C:\subversion>
ちなみに proxy 経由で、複製元(http(s)://~)に接続する場合は、
servers ファイル(*1)に proxy 設定の記述が必要。
(*1) Windows XP の場合。
C:\Documents and Settings\<ユーザー名>\Application Data\Subversion\servers
ん~。
ちなみに複製元(http(s)://~)には、Basic 認証でユーザー名/パスワードを入力する必要があるのですが、
svnsync init 及び sync ともに、ユーザー名/パスワードを指定していません。
何で指定しなくても処理できるのか、薄気味悪かったのですが、
調べてみると、以下のフォルダにあるファイルにて、ユーザー名/パスワードを記録しているようです。
C:\Documents and Settings\<ユーザー名>\Application Data\Subversion\auth\svn.simple
確かに、上記フォルダを見ると、
16進数(0~9, a~f)で構成された 30 文字くらいのファイルがあり、
そのファイルの中身を見ると、パスワードは暗号化されているようで分かりませんでしたが、
(当たり前と言えば当たり前)、ユーザー名が記述されていました。