140

SVN作業コピーからディレクトリを削除したが、まだコミットしていない場合、それを元に戻す方法は明らかではありません。Googleは、「svn undo d」と入力するときに、一般的なクエリとして「svn undo delete before commit」を提案していますが、検索結果は役に立ちません。

編集:subversion1.4.4で機能するソリューションが欲しいのですが

4

7 に答える 7

158

1)します

svn revert . --recursive

2)次のようなエラーの出力を解析します

"Failed to revert 'dir1/dir2' -- try updating instead."

3)エラーディレクトリごとにsvnを呼び出します。

svn up dir1/dir2
于 2010-09-15T12:43:59.357 に答える
147

svn revert deletedDirectory

svn revertコマンドのドキュメントは次のとおりです。


編集

を使用して削除されたのではなく、をdeletedDirectory使用して削除された場合は、rmdirsvn rm

svn update deletedDirectory

代わりは。

于 2009-11-24T14:04:53.450 に答える
32

私のために働いたのは

svn revert --depth infinity deletedDir
于 2014-03-12T18:54:47.623 に答える
4

削除したディレクトリの上のレベルから(再帰的な)復帰操作を実行します。

于 2009-11-23T23:08:31.697 に答える
4

ワンライナーにするために、次のようなことを試すことができます。

svn status | cut -d ' ' -f 8 | xargs svn revert
于 2013-07-25T15:56:53.797 に答える
1

私が見つけた最も簡単な解決策は、作業コピーから親ディレクトリを削除し(svndeleteではなくrm-rfを使用)、祖父母でsvnupdateを実行することでした。たとえば、a / b / c、rm -rf a / b、cd a、svnupを削除した場合。それはすべてを取り戻します。もちろん、これは、保持したい親ディレクトリにコミットされていない変更が他にない場合にのみ適切な解決策です。

次回この質問をグーグルで検索したときに、このページが結果の上部に表示されることを願っています。もちろん、誰かがよりクリーンな方法を提案したほうがよいでしょう。

于 2009-11-23T23:08:08.233 に答える
0

コミットする前に、フォルダを削除して親ディレクトリを更新できます。

rm -r some_dir

svn update some_dir_parent

于 2017-07-12T13:33:45.493 に答える