2011年04月04日

subversionのリポジトリを一つ前のリビジョンに戻す

subversionのリポジトリに新しいディレクトリツリーをimportしたのだが、ディレクトリ操作を間違えてしまった。

src/hoge/{ファイルがいっぱい} の用にimportしたかったのだが、
ついsrc/{ファイルがいっぱい} としてしまい、src/以下がファイルだらけでとんでもないことになってしまった。

むむむ。ということで間違ってimportしてしまった状態を元に戻すことを考える。

今svnリポジトリのリビジョンは60になっている。これを一つ前のリビジョン59に戻すことで間違えてしまった操作を取り消してみよう。

ちなみに我が家のsvnリポジトリは玄箱上のDebian GNU/Linuxにある。
玄箱にログインし、リポジトリを確認する。今回のリポジトリは/var/lib/svnである。


$ ls -ld /var/lib/svn
drwxrwx--- 7 www-data www-data 4096 Apr 4 01:17 /var/lib/svn/


次にsvnadmin dumpコマンドでリポジトリをバックアップする。
この時、-rオプションを用いてリビジョンの1から59までを指定してバックアップするのがミソ。


$ sudo svnadmin dump /var/lib/svn -r 1:59 > hoge.dump
* Dumped revision 1.
(途中省略)
* Dumped revision 59.
$


念のため、今あるリポジトリの名前を変更しバックアップしておく。


$ sudo mv /var/lib/svn /var/lib/svn-old


新しいリポジトリを作成し、先ほどバックアップしたリビジョン1から59までのダンプを書き戻す。


$ sudo svnadmin create /var/lib/svn
$ sudo svnadmin load /var/lib/svn < hoge.dump


我が家のsvnリポジトリはownerがwww-data:www-dataなのでディレクトリ以下すべて変更しておく。


$ ls -ld /var/lib/svn
drwxr-xr-x 6 root root 4096 Apr 4 01:57 /var/lib/svn/
$ sudo chown -R www-data:www-data /var/lib/svn
$ ls -ld /var/lib/svn
drwxr-xr-x 6 www-data www-data 4096 Apr 4 01:57 /var/lib/svn/


これで一つ前のリビジョンに戻りました。めでたしめでたし。
posted by ひっそりぃ at 02:16| Comment(0) | TrackBack(0) | linux | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/194106656

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。