svn:mergeinfo

svn サーバ、svn クライアントともにバージョン 1.5.4


たとえば、一ファイルの修正のみを merge したいとして、
branch で merge する。

$ svn merge -r 311:312 http://svn.sample.com/repos/project/trunk
--- r312 を '.' にマージしています:
U    config/config.ini
$ svn st


とすると、関係ないファイルがたくさん modified されている。

svn di

属性に変更があったパス: resources/test/test.php
___________________________________________________________________
削除: svn:mergeinfo


みたいにでる。
とりあえず検索して調べてみると、



25:01/07(水) 21:41 [sage]
>>21
サブフォルダのふぁるなんかにいつの間にかmergeinfoがふかされると、マージのたびに更新されてしまうね。
trunkからmergeinfoを再帰的に削除してしまえばその後は余計な属性の更新がおきなくなるから。

                                                                                                                                                              • -

26:21 01/08(木) 13:30 [sage]
過去に svn copy か svn move したファイルやフォルダに svn:mergeinfo が付きやすいようです。
必ずしもそうならず、はっきりしたルールは分かりません。

                                                                                                                                                              • -

27:01/08(木) 13:42 [sage]
>>26
そいつは Subversion 1.5.5 で付かないように修正された。

via:http://72.14.235.132/search?q=cache:Rvufk-Ms3c0J:c.2ch.net/test/-.YYl00/tech/1230488758/1-+svn+1.5+merge+%E3%81%8A%E3%81%8B%E3%81%97%E3%81%84&cd=18&hl=ja&ct=clnk&lr=lang_ja


とりあえず trunk で

$ svn propdel -R svn:mergeinfo . 


を実行してコミットしたけど、また svn:mergeinfo がでるのかもしれない。
どういう状況で起こるのかがよく分からなくて、うーんおとなしく、subversion を version up したほうがいいのかな。。


追記 20090413


1.5.6 に upgrade した。しばらくはこれで様子を見てみよう。


追記2 20090413


upgrade したら trac でエラーがでた。

Warning: リポジトリと同期できません (Unsupported version control system "svn": "/usr/lib64/libsvn_client-1.so.0: undefined symbol: svn_mergeinfo__filter_catalog_by_ranges" )。詳細は Trac のログを参照してください。 
Trac Error
リポジトリへのチェックイン event provider (ChangesetModule) failed:
TracError: Unsupported version control system "svn": "/usr/lib64/libsvn_client-1.so.0: undefined symbol: svn_mergeinfo__filter_catalog_by_ranges" 


適当にぐぐって、PYTHON の PATH を通したらうまくいった。。

SetEnv PYTHONPATH /usr/bin/python