17

ディレクトリと SVN 作業コピー内のすべてのサブディレクトリを元に戻したいので、それらはリポジトリと一致しますが、それらのディレクトリ内のファイルには触れたくありません

私の SVN アプリケーションの 1 つは、作業コピーのすべてのディレクトリに SVN プロパティを再帰的に設定しますが、それらの変更を元に戻し、それらを強調表示して SVN プロパティへの変更をコミットしようとするのをやめたいと思います。HEAD に合わせて変更するだけでは機能しません。

何か案は?さまざまな SVN リソースを読みましたが、このエッジ ケースを扱っているものはないようです。

4

4 に答える 4

104

すべてのプラットフォームで動作:

svn revert . --recursive

(これにより、ディレクトリだけでなく、すべてが元に戻されることに注意してください。)

于 2012-06-27T20:42:28.287 に答える
9

findと組み合わせて使用​​できますsvn revert

find . -type d | grep -v .svn | xargs svn revert

-Rオプション ( と同等)を使用しない限り、これはディレクトリ内のファイルには影響しません--depth=infinity

于 2011-01-27T16:02:04.637 に答える
2

まず、作業コピーのコピーを安全な場所に作成します。:)

次のようなコマンドを使用して、svn 作業コピーのプロパティを編集できます。

REM Delete all mergeinfo properties recursively
svn propdel svn:mergeinfo -R
于 2011-01-27T15:59:59.317 に答える
1

Windows では、コマンド ラインから次の操作を実行できます。

for /d /r %i in (*) do svn revert %i

バッチファイルから呼び出す場合は、%%i代わりに使用してください。 最初にバックアップしてください!

このコマンドはダーティであり、変更されていないディレクトリや下にないディレクトリであっても、すべてのディレクトリを通過しますsvn。この Ruby スクリプトのようなものを使用して、よりクリーンな方法で行うことができます。

`svn st`.split("\n").grep(/^ M\s+(.*)/) { $1 }.find_all { |i| File.directory? i }.each do |i|
  system "svn revert #{i}"
end
于 2011-01-27T16:28:38.123 に答える