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