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
|

|