Google Code Project Hosting でリポジトリと更新履歴を完全にリセットする

バージョン管理上のリポジトリ上から一旦コードを削除してしまえばリセットされるのかと思いきや、更新履歴等は消えずに残っているようだ。

以下の手順でリセットできることが分かったのでメモ

プロジェクトの[Source]タブの下のほうに

「You can reset this repository so that svnsync can be used to upload existing code history.」とあるのでリンク先のページで、以下のようにリセットのオプションから、"svnsync"を使うオプションを選択して、[Reset Repository]のボタンを押下してリセットを実施する。(リポジトリ上からソースコードは見えなくなる)

  • svnsync initの実行

svnsyncコマンドを使って他のリポジトリの情報によって強制的にリポジトリを同期する(初期化する)。(Subversionがインストールされていない場合は予めインストールしておく)このコマンドの文法は

svnsync initialize DEST_URL SOURCE_URL

と初期化するためにはその元になるリポジトリ、この場合はまっ更な(rev 0)のリポジトリが必要だが、これはローカルにあるリポジトリを使っても良いみたいなので、以下のように空のリポジトリをローカルのファイルシステムに作ってしまうのが簡単で良い。

svnadmin create f:\repo\dummy

この空のリポジトリの情報を使ってリモートのリポジトリを初期化する。

svnsync init --username Kazzz --password ****** https://project.googlecode.com/svn file://f:/repo/dummy

コマンドの実行にはユーザ名とプロジェクトと紐づけて生成されたパスワードが必要だ。
初期化が成功した場合は、

Copied properties for revision 0.

と表示されてリポジトリは完全にリセットされる。

[Peoject Home]の"Updates"で過去のリビジョンの履歴は見えているが実際にはそのrevは存在していないため、エラーになる。

多少格好が悪いがこれで(過去の無効な履歴を表示しない)目的は果たせたわけだ。


このような面倒な操作をしないと更新履歴も含めて初期化できないのはバグとはいわないが、仕様上の不備だと思う。