0

だから私は次のレポを持っています: n1 -> n2 -> n3 -> master and n2 -> n4

gitを使用してn4をマスターにマージしたいので、AFIAK:

BASE = n2、LOCAL = n3、REMOTE = n4、MERGED = マスター

マージを視覚化するためにp4mergeを使用していますが、今問題が....

n2 と n4 は、マスターでゆっくりとコメント解除されているコードのセクションをコメントアウトしました...しかし、視覚的なマージは完全に台無しです...コメント行は他のコメント行と一致するようです...あらゆる種類のコメント化された関数が他のコードの途中で一致している不一致。例えば

ローカル:

def foo
  impl foo
end

def bar
  impl bar
end

ベース/リモート:

# def foo
#   impl foo
# end 
#
# def bar
# end

合併:

def foo
  impl foo
  # def bar
  # end
end

言うまでもなく、コードをそのようにマージしたくありません。

git のカスタム マージ ドライバーについて読んだことがありますが、それらを設定する方法がわかりません... diff ツールがコメント文字を一時的に無視できれば、より良い差分分析が得られる可能性があるという考えです (diffing 中)。 )そして、適切に並べます。p4merge でそれを行うための設定を見つけようとしましたが、うまくいきませんでした。kdiff3 にも方法があるかもしれませんが、まずマージ ドライバでそれを行う方法を見つけようと思いました。

この問題を解決するためのセットアップまたはその他の方法についてのアドバイスをいただければ幸いです。ありがとう!

4

1 に答える 1

1

役立つかもしれないことの 1 つは、マージ戦略オプションpatienceです。コードをごちゃまぜにしないという点で優れた仕事をし、報告されるマージの競合が少なくなり、重大度も低くなります。「git merge --strategy-option=patience」とともに使用されます。

git diffコンテキスト内のオプションについて議論する別の質問はこちらです。「git diff --patience」とは何ですか? .

そしてもちろん、オプションはマージのマニュアルページ、git merge マニュアルページで説明されています。

于 2013-01-08T22:55:11.857 に答える