it-swarm-ja.com

svnはディレクトリの単一のプロパティを元に戻しますか?

Svnコマンドラインからディレクトリのいくつかのプロパティの1つを元に戻すにはどうすればよいですか?

私のsvnトランクには、外部リポジトリをインポートするためのプロパティsvn:externalsがあります。

/trunk
  svn:external = /external/trunk

新しいブランチfooを設定すると、外部もブランチを指すように変更されます。

/branches/foo
  svn:external = /external/branches/foo

ブランチをトランクにマージして戻すと、そのプロパティがコピーされて、次のようになることがあります。

/trunk
  svn:external = /external/branches/foo

通常、svn revert . --depth=emptyを実行してプロパティのマージを元に戻すことができますが、ディレクトリには他のプロパティ、具体的にはsvn:mergeinfoも元に戻されます。 GUIクライアントから、個々のプロパティを非常に簡単に元に戻すことができますが、常にそうすることを覚えているわけではありません。 svn cmd行から直接同じことを行う方法はありますか、それとも差分を取得して元に戻すためにsvn propgetのクレイジーラッパーを作成する必要がありますか?

6
Maelstrom

svn propset svn:externals "$(svn propget svn:externals . -r HEAD)" .

これにより、プロパティがHEAD値に設定されます。revertallプロパティにのみ適用でき、存在しないため、これは有効な回避策です。 個人プロパティの場合。

9
David

あなたよりも私の将来の参考のために、おそらくあなたが答えを持っているのを見て...

svn propget PROPNAMETOREVERT `svn info | Perl -ne 'print if s/URL: (.*)/\1/'` | Perl -ne 'chomp; print' | svn propset PROPNAMETOREVERT  -F - .

私のために働いた(1行のプロパティでは、複数行のプロパティの変更が必要になる場合があります)。

これは明らかにスクリプトであることと関係があります:-)

0
George Lund