4

リポジトリでMercurialQueuesを使用していて、それらのパッチをパッチリポジトリに配置しました。別の寄稿者が私のパッチキューのクローンを作成し、独自の変更を加えました。ここで、ローカルパッチリポジトリでそれらの変更をマージしたいと思います。

このマージを実行するための適切なワークフローを見つけようとしています。

  • パッチリポジトリの履歴に寄稿者の変更セットを反映します
  • 競合が発生した場合にユーザーのマージツールを呼び出します

最初は、パッチを直接マージしようとしました。これは非常に単純なケースでは問題ありませんが、パッチは行番号のコンテキストに依存しているため、多くのことが変更された場合はうまく機能しません。全体として、パッチの3方向の差分を調べるのは複雑すぎると思います。

もっと良い方法はありますか?

4

2 に答える 2

1

これを処理するための優れた方法はありません。私がおそらくやることになるのは、2つのクローンを作成qfinishし、一方にパッチを作成し、もう一方に寄稿者パッチを作成することです。その時点で、個別のパッチの正味の効果が適用されたリポジトリが作成されます。次にhg pull、それらのクローンの1つを他のクローンにhg merge作成し、グラフィカルツールを使用してパッチの結果をマージできるようにします。唯一の違いは、パッチの違いだけです。この時点で、理想的にはqimportチェンジセットをマージできますが、それはできません。そのため、「hg diff -r tip-1 -r tip」を実行して、の違いである新しい差分を取得する必要があります。すべてが開始される前と2つの結果がマージされた後。あなたはそれから'

明らかに最適ではありませんが、私が思いつくことができる最高のものです。より良い解決策を聞きたいです。

于 2011-01-11T21:25:52.897 に答える
0

パッチをマージする自動化された方法がないのではないかと思います。

ただし、使用できる「トリック」の1つは、既存のパッチを修正する必要があるときに編集/更新する代わりに、新しいパッチを作成することです。正しいやり方に全員が同意したらhg qfold、パッチを適用します。

そうすれば、新しいパッチを作成するので、お互いのつま先を踏むことはありません。

于 2011-01-13T13:49:02.617 に答える