Subscribed unsubscribe Subscribe Subscribe

ディレクトリごと間違って消してしまったときにsvnから復元するならcopyで

Subversion

svnで管理している、あるディレクトリを削除しようとしたときに

$ svn rm https://example.com/svn/branches/hoge/fuga/piyo -m 'delete piyo'

とやるべきところを、指定するディレクトリを間違えて

$ svn rm https://example.com/svn/branches/hoge -m 'delete piyo'

と、branchまるごと消してしまった。


復元するのに、

$ svn co https://example.com/svn/branches

と一度チェックアウトして(git-svn使っていたのでsvnのワーキングディレクトリは手元になかった)、消してしまうまえのリビジョン番号Mを調べて

$ svn merge -r HEAD:<M> .

と逆マージで復元させる、ということをしたのだけど、全ファイルを一つずついちいち復元することになり時間かかるしめんどくさい。


あとで気付いたのだけど、そういうときは

$ svn cp https://example.com/svn/branches/hoge@<M> https://example.com/svn/branches/ -m 'restore hoge'

のように消す前のリビジョンを指定してcopyしてしまえば早い。ですよね。たぶん。