Google Code -> Project Hosting の repository と svnsync する

無事、Trac が動いてくれたことは前回報告しました。で、心配事は Google Code のリポジトリとの Sync だったんですが、これも無事に成功しましたので手順をご報告しておきます。

ま、以下に示すヘルプトピックを読めばなんてこと無いんですが、

英語が苦手なあなたの為に。ええ、私も思いっきり苦手ですから。

Google 側のリポジトリをリセットする

svnsync を使用するには、 Sync される側のリポジトリは Revision 0、つまり一度もチェックインされていない状態である必要があります。しかし、Google Code の Project Hosting では、プロジェクトの作成と同時に trunk というディレクトリがチェックインされ、Revision が 1 になっています。これでは Sync できないので、リポジトリをリセットします。

プロジェクトの「Source」タブをクリックすると、右サイドに「New project? You can reset your repository so that you can use svnsync to upload existing code history.」と書かれているブロックがあります。この「reset your repository」がリンクになっているので、クリックします。

「Reset Repository」ボタンを押下します。

これで準備完了です。

リポジトリをイニシャライズ(初期化)する

以下のコマンドを実行します。もちろんパスは適宜書き換えてください。

$ svnsync init https://myproject.googlecode.com/svn \
>file:///path/to/localrepos

Sync 元はローカルのリポジトリであることを想定しています。スラッシュが3つあるのは typo じゃないですよ。

初めてのアクセスだとユーザ名とパスワードを聞かれます。ユーザ名は Gmail アドレスの @ より左、パスワードは GoogleCode.com Password です。GoogleCode.com Password は、My Profile -> Setting タブで確認できます。プロジェクトの「Source」タブからも辿ることができます(googlecode.com password. というリンクがあります)。

以下が表示されればイニシャライズ成功です。

Copied properties for revision 0.

Sync する

以下のコマンドを実行します。もちろんパスは適宜書き換えてください。

$ svnsync sync https://myproject.googlecode.com/svn

以下のように、Revision 毎に Sync していきます。

Committed revision xx.
Copied properties for revision xx.
:
:

以上。

今回の Sync 先は、以下になります。

ここから今回設置した Trac も辿ることができますが、まだ準備中です。中身は空っぽです。なのであまりいぢめないでくださいね。