先日のエントリの実験をしてみた。結果としては、やり方は間違ってない気がするよ、ということ。
リポジトリsvntestを作る。そしてファイルa,bを作り、以下のような流れでコミットしてみる。ファイルBがなかったことにしたいファイル。間違えて登録してしまい、慌てて削除したがデータベースにはしっかり残っているので何とかして欲しい、という当初のシチュエーションを再現したつもり。括弧内はそのときファイルaに対して書き込んだ数字。
- 1: ファイル aを登録 (1)
- 2: ファイル aを編集 (2)
- 3: ファイル bを追加
- 4: ファイル aを編集 (3)
- 5: ファイル bを削除
- 6: ファイル aを編集 (4)
ファイルbを無かったことにするには、リビジョン3,5を削除すればいい。そのためにdumpで以下のようにデータを取り出して
% svnadmin dump ./svntest --revision 0:2> dumpfile1 * Dumped revision 0. * Dumped revision 1. * Dumped revision 2. % svnadmin dump ./svntest --revision 4:4 --incremental > dumpfile2 * Dumped revision 4. % svnadmin dump ./svntest --revision 6:HEAD --incremental > dumpfile3 * Dumped revision 6.
新しいリポジトリを作ってこれらをloadする。
% svnadmin create svntest2 % svnadmin load svntest2 < dumpfile1 <<< Started new transaction, based on original revision 1 * adding path : a ... done. ------- Committed revision 1 >>> <<< Started new transaction, based on original revision 2 * editing path : a ... done. ------- Committed revision 2 >>> % svnadmin load svntest2 < dumpfile2 <<< Started new transaction, based on original revision 4 * editing path : a ... done. ------- Committed new rev 3 (loaded from original rev 4) >>> % svnadmin load svntest2 < dumpfile3 <<< Started new transaction, based on original revision 6 * editing path : a ... done. ------- Committed new rev 4 (loaded from original rev 6) >>>
これをチェックアウトしてログを見ると・・・
% svn co file:///Users/nunocky/tmp/SVNTest/svntest2 A svntest2/a Checked out revision 4. % cd svntest2/ % ls a % svn log ------------------------------------------------------------------------ r4 | nunocky | 2009-12-06 16:59:39 +0900 (日, 06 12 2009) | 1 line modified file 'a' ------------------------------------------------------------------------ r3 | nunocky | 2009-12-06 16:59:18 +0900 (日, 06 12 2009) | 1 line modified file 'a' ------------------------------------------------------------------------ r2 | nunocky | 2009-12-06 16:57:52 +0900 (日, 06 12 2009) | 1 line modified file 'a' ------------------------------------------------------------------------ r1 | nunocky | 2009-12-06 16:57:26 +0900 (日, 06 12 2009) | 1 line added file 'a' ------------------------------------------------------------------------ % cat a 4
・・・ちゃんと思った通りになっているな・・