2012-05-11 17 views
3

コミット後にファイルのsvnプロパティを編集する必要があります。そのため、私はポストコミットスクリプトを使用したいと思います。非対話型スクリプトのsvn propedit

例:

私は私が持っている成功したコミットポストフックを、いくつかのスマートなことを行い、その(それはdoesnのコミット私の後example.ex と呼ばれるファイルをコミットする際testに設定された値を持つexportというプロパティを持っています私の質問には関係ありません)、終了後にプロパティexportsucceededのような新しい値に変更(または削除)する必要があります。

コマンドラインで私はこれを使用します。

svn propedit "export" file:///svn/repositoryName/path/to/file/in/repository/example.ex 

これは私のシステムエディタviを開き、私は価値testが表示されます。私は私が好きに変更し、:wq

Subversionはこの

"svn-prop.tmp" 1L, 10C written 
Set new value for property 'export' on file:///svn/repositoryName/path/to/file/in/repository/example.ex' 
Committed revision 67. 

あまりにも多いので、細かいようなメッセージが戻っていますようにviのコマンドでファイルを保存して終了することができます。しかし、私が言ったように、私はviを制御できないポストコミットスクリプトでそれが必要です(または間違っていますか?)。

したがって、Subversionは私にコマンドをpropeditに追加する可能性を与えます。ファイルには新しい値succeededが含まれています。

新しいコマンドは次のようになります。

svn propedit "export" file:///svn/repositoryName/path/to/file/in/repository/example.ex --file /path/to/propertyValueFile/propValue.file 

そして、ここが問題だ:最後のコマンドは動作しません。再びviが開き、手動で値を変更する必要があります。どうして?私は間違って何をしていますか?

+0

大丈夫ですが、--fileはこのファイルの内容をログメッセージとして使用します。それにもかかわらず、同じ問題:私はスクリプトでそれを必要とします。 – derroman

答えて

2

解決策が見つかりました。

svn propedit "export" file:///svn/repositoryName/path/to/file/in/repository/example.ex --file /data/svn/intranet/hooks/fileWithLogMessage --editor-cmd "echo succeeded >" 

--editor-cmdは別のエディタを与え、私はecho newValueForPropとpropeditの裏をかくことができます。

これは魅力のように機能します。

-

0

svn propeditではなくsvn propsetを試してみてください。 propeditを使用すると常にが外部エディタを開きます。

+0

いいえ解決策ではありません。プロパティがすでに設定されている場合は、svn propsetも機能しないためです。しかし、私は自分で解決策を見つけました。とにかくありがとう。 – derroman

関連する問題