【Subversion】うっかり削除してしまったファイル、ディレクトリを復活する
問題
Subversionで、ファイルやディレクトリの削除は取り消せますか?
例)Subversionのリポジトリのあるブランチを消してしまった
例)あるファイルの削除をコミットしてしまった
答え
Subversionは削除したことも含めて履歴に残っている。
最新のリビジョンでは削除されているファイルも、ファイルが存在していた時のリビジョンを指定してチェックアウトすれば内容が取得できる。
過去のリビジョンをコピー元としてコピーしてくることもできる。
作業コピーを作らないでも作業可能な手っ取り早い方法としては、以下のようにコピー元もコピー先もURLにして、リビジョンを指定してリポジトリ側でコピーする方法がある。
svn copy -r 12345 svn://192.0.2.123/branches/hoge svn://192.0.2.123/branches/hoge -m 'ディレクトリ復活'
http://~ の場合、リビジョンの指定方法がちょっと違うみたい
svn copy http://192.0.2.123/repos/xxxdir@12345 http://192.0.2.123/repos/xxxdir -m '復活の呪文'
リビジョンの指定は、履歴を確認して、削除のコミットのひとつ前とか、ディレクトリに最後に変更があったリビジョンを指定する。
新規でファイルを作り直すと、履歴もそこからスタートになるが、svn copy コマンドを使うことで、コピー元の履歴が引き継がれるのがこの方法の良いところ。
コメント