Jan 20, 2009

[Subversion] Subversion で削除したファイルをリポジトリから復元する方法と・・・

Subversion で削除したファイルを復元する方法をメモ。 ついでに復元後に発生した "This client is too old" エラーの対応方法もメモ。

Subversion で削除したファイルを復元する方法

まず、削除したリビジョンを "svn log" で調べる。 下記の例では 10137 が removedfile を削除したリビジョンとなる。

$ svn log --verbose
------------------------------------------------------------------------
r10137 | me | 2009-01-06 10:25:35 +0900 (Thu, 06 Jan 2009) | 1 line
Changed paths:
   M /path/to/my/project/modifiedfile
   D /path/to/my/project/removedfile
   ...
$
10137 が削除したリビジョンであるということは、当然その一つ前の 10136 には removedfile は存在しているということ。 "svn cp" でリビジョン 10136 の removedfile を取得する。
$ svn cp -r 10136 ./removedfile ./removedfile2
A    removedfile2
$

"This client is too old to work with working copy"エラーの対処方法

Eclipse (+ subclipse) で使用しているワーキングコピーに対して上記の作業を行ったら、subclipse で下記のエラーが発生する様になった。

svn: This client is too old to work with working copy '/path/to/my/project'; please get a newer Subversion client
調べてみたら、yummy-yummyさんの「TortoiseSVNでコミットしたあとにSubclipseで同期とるとエラーになるのですが」というエントリに対応方法があった。感謝!
$ wget http://svn.collab.net/repos/svn/trunk/tools/client-side/change-svn-wc-format.py
$ chmod 755 ./change-svn-wc-format.py
$ ./change-svn-wc-format.py . 1.4
Converted WC at '.' into format 8 for Subversion 1.4
$

Posted in Subversion | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |