7

破損したmergeinfoがあると思いますが、よくわかりません。誰かが私がどのように決定を下すか、そして問題を解決するのを助けるためにそこにどんなリソースがあるか知っていますか?

これが問題です。私のチームは最近アジャイルに移行し、異なるチームが同じソースで同時に作業する機能ブランチ(実際にはストーリーブランチ)を使用しています。ストーリーが高い準備状態を達成すると、チームはトランクにマージされます。変更の欠落、予期しない変更、および競合のため、マージには数日または数週間かかります。私たちは5〜10人のチームについて話していて、努力/解約はかなり高いようです。

人々はこのマージパターンを使用しますa)PULL-トランクからブランチへのマージ、解決、テスト、コミットb)PUSH-ブランチからトランクへのマージ、解決、テスト、コミットc)ブランチの再作成(または通常は新しいストーリーブランチの作成とそれが終わったので古いものを落としてください)

この終わりまでに、ブランチとトランクは整列しているはずです。

私たちが見ている問題:

  1. トランクからブランチへのマージ中に報告されなかった変更は、後続のブランチからトランクに表示されます
  2. マージ中のsvn:mergeinfoプロパティの競合
  3. ファイルがありませんが、新しいファイルのローカル編集がブランチに追加され、トランクにプッシュされました
  4. 着信+ローカル削除(トランクおよびブランチで削除されたファイルは競合として表示されます)

(1)起こってはならない。ブランチからトランクへのプルは、すでにトランクにあるすべての変更に対して2つを同期させる必要があります。ブランチからトランクへのマージの変更は、トランクで発生した変更です。したがって、最初のマージでは、ブランチに伝播する必要がありましたが、伝播しませんでした。これは、トランクの変更を「隠す」mergeinfoデータの破損を示しています。

(2)起こってはならない。SVNは、マージ追跡の変更を管理する必要があります。これは、mergeinfoデータの破損も示しています

(3)起こってはならない。これは、ブランチに追加された新しいファイルの場合です。トランクに追加された新しいファイルとして表示されます。これは、マージ情報データの破損も示しています。

(4)これはSVNのバグであり、修正できないと思います。それでも、これが私たちの唯一の問題であるなら、私は幸せになるでしょう

現在、接続にsvn1.6.xとsvn+sshを使用しているクライアントを備えたsvn1.5.xサーバーを使用しています。いくつかの修正が問題に影響を与える可能性があるため、最新かつ最高のSVNに移行する予定です。

それでも、mergeinfoデータが間違っているように見えます。

  • すべての変更を報告しないマージ
  • mergeinfoプロパティのマージでの競合

私が探し始めるのに良い場所はありますか?

4

2 に答える 2

3

同様の状況により同様の問題が発生し、大部分は解決しました。

主なものはこれです:

ブランチの作成後にトランクからブランチにマージする場合は、ブランチコミットでトランクにフラグを立てる必要があります(svn merge --record-onlyを使用)。そうでない場合、トランクに再統合しようとすると、トランクに戻ってブランチにトランクします。

これは明らかに、後のトランク->ブランチコミット後に行われたトランクへの変更を元に戻すことになり、大規模な競合(特にトランクに新しいファイルまたはディレクトリを作成した場合のツリーの競合)などを引き起こす傾向があります。

したがって、私たちのプロセスは、トランクが作成された後は決してブランチに同期しないか(短期間のブランチでは正常に機能します)、または次のようにします。

  • トランクからのブランチb
  • トランクとブランチにコミットします
  • トランクをブランチに再統合してコミットします(競合を解決しますが、それ以外の場合はコンパイルしても変更を加えません)
  • トランクからブランチへのコミットリビジョンのsvnmerge--record-onlyをすぐに実行します
  • ブランチに関するその他の問題を修正し、開発を継続します
  • 完了したら、ブランチからトランクに再統合します。

http://www.collab.net/community/subversion/articles/merge-info.htmlは、私たちが間違っていることを理解するのに役立ちました。

于 2011-08-31T21:09:59.400 に答える
2

SVNの分岐/マージでいくつかの実験を行いましたが、マージが機能しない場合があることがわかりました。たとえば、トランクからの変更が上書きされます。したがって、機能ブランチにSVNを使い続けると、苦痛の世界に陥ります。

gitで同様の実験を行いましたが、誤ったマージを取得する方法が見つかりませんでした。チーム/管理者がgitへの移行を受け入れる可能性がある場合は、それを使用することを強くお勧めします。

于 2010-05-07T18:18:35.850 に答える