12

次のような構造のプロジェクトがあります

^/project/trunk
^/project/branches/mybranch

ここで、現在のHEADはリビジョン1048です。ブランチはr523のトランクからコピーされました。トランクはmybranchにマージされ、結果はr1048になります。上のmergeinfo^/project/branches/mybranch

/project/trunk:523-1047

トランクのmergeinfoには、から何も言及していないレコードがあり^/project/branches/mybranchます。実際には、トランクとブランチの両方がブランチからのmergeinfoを並列に保持しますmybranchが、これらのmergeinfoは両方の出力で完全に同一であるように見えます。

今、私はトランクの作業コピーに入り、発行しようとします

svn merge --reintegrate ^/project/branches/myproject

次のようなエラーメッセージが表示されます。

svn: Reintegrate can only be used if revisions 523 through 1048 were previously merged from file:///home/svn/project/trunk to the reintegrate source, but this is not the case:
  project/branches/mybranch/src
    Missing ranges: /project/trunk/src:523-1047

私のブランチフォルダのmergeinfoは、523-1047がトランクからブランチに正しくマージされたことを示しているので、これは奇妙です。そのサブフォルダーとの取引は何ですか?srcトランクとブランチの両方に明らかに存在するディレクトリです。

それは何かが怪しいところだと思います。mybranch / srcのmergeinfoを調べてsvn pg svn:mergeinfo ^/project/branches/mybranch/src@HEADも、何も得られません。ただし、trunk / srcを見ると(svn pg svn:mergeinfo ^/project/trunk/src@HEAD

/project/branches/mybranch/src:784

だから、誰かがそこの枝から幹までチェリーピックをしたようです。ただし、これはトランクフォルダ自体には表示されません。

そこに問題がありますか?そして最も重要なのは、どうすればそれを治すことができるかということです。

4

2 に答える 2

14

そこに問題がありますか?

はい、正確に-後でサブツリーをマージすると、常に再統合が混乱します

そして最も重要なのは、どうすればそれを治すことができるかということです。

/ project / trunk/srcからmergeinfoを削除します

于 2013-02-20T21:32:27.010 に答える
4

これはあなたが見てみたいと思うかもしれない非常によく似たトピックです:

再統合は、リビジョンが以前にURLをマージしてソースを再統合した場合にのみ使用できます

特に、 Paul Whippからのこの回答は、同じ問題が発生し、mergeinfoを削除したくない場合に非常に役立ちました。これは、「実際の」修正ではなく、回避策のように聞こえたためです。

要するに:その特定のファイル/フォルダーの不足している情報を手動でマージしてみてください(svnが示唆しているように)。私にとって魅力のように働いた。

対応するコード例などについては、Paulsの回答を参照してください。

于 2013-11-25T15:21:37.627 に答える