SVN作業コピーからディレクトリを削除したが、まだコミットしていない場合、それを取得する方法は明らかではありません。 Googleでは、「svn undo d」と入力すると、「svn undo delete before commit」を一般的なクエリとして提案していますが、検索結果は役に立ちません。
編集:Subversion 1.4.4で動作するソリューションが欲しい
svn revert deletedDirectory
ドキュメントはこちらsvn revert
コマンドの場合。
deletedDirectory
がsvn rm
ではなくrmdir
を使用して削除された場合は、行う必要があります
svn update deletedDirectory
代わりに。
1)する
svn revert . --recursive
2)次のようなエラーの出力を解析します
"Failed to revert 'dir1/dir2' -- try updating instead."
3)エラーディレクトリごとにsvnを呼び出します。
svn up dir1/dir2
私のために働いたのは
svn revert --depth infinity deletedDir
削除したディレクトリの上のレベルから(再帰的な)復帰操作を実行します。
ワンライナーにするには、次のようなものを試すことができます:
svn status | cut -d ' ' -f 8 | xargs svn revert
最も簡単な解決策は、作業コピーから親ディレクトリを削除し(svn deleteではなくrm -rfを使用)、祖父母でsvn updateを実行することでした。たとえば、a/b/c、rm -rf a/b、cd a、svn upを削除した場合。それはすべてを取り戻します。もちろん、これは、保持する親ディレクトリに他のコミットされていない変更がない場合にのみ、良い解決策です。
次回この質問をグーグルで検索すると、このページが結果の一番上に表示されることを願っています。もちろん、誰かがよりクリーンな方法を提案すればさらに良いでしょう。
コミットする前にフォルダを削除して親ディレクトリを更新できます。
rm -r some_dir
svn update some_dir_parent