web-dev-qa-db-ja.com

SVNはコミット前に削除を元に戻します

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

編集:Subversion 1.4.4で動作するソリューションが欲しい

131
LaC

svn revert deletedDirectory

ドキュメントはこちらsvn revertコマンドの場合。


編集

deletedDirectorysvn rmではなくrmdirを使用して削除された場合は、行う必要があります

svn update deletedDirectory

代わりに。

140
Michael Hackner

1)する

svn revert . --recursive

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

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

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

svn up dir1/dir2
155
Denis Barmenkov

私のために働いたのは

svn revert --depth infinity deletedDir
31
Jason

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

4
Greg Hewgill

ワンライナーにするには、次のようなものを試すことができます:

svn status | cut -d ' ' -f 8 | xargs svn revert
3
Earle

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

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

1
LaC

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

rm -r some_dir

svn update some_dir_parent

0
xinthose