へのコミットを分析するコードを書いてHg
おり、結果を と比較していますTortoiseHg
。TortoiseHg
マージの場合の の動作が理解できません。
でマージ変更セットを選択するとTortoiseHg
、ボタンを押さない限り、影響を受けるファイルのリストには競合があったファイルのみが表示され"Show All"
ます。Web から収集できる情報と、[すべて表示] ボタンを押すと、リストに表示されるファイルに二重矢印が表示されるという観察結果に基づいて、少なくともそれが意図しているように見えます。
変更セット内の各ファイルを両方の親と比較し、両方の親と異なる場合にのみ分析にファイルを含めることで、それをエミュレートしようとしています。しかし、TortoiseHg がマージの説明に表示するファイルに遭遇しましたが、それは 1 つの親としか異なりません。TortoiseHg
同様に、親 1 または 2 と比較すると変化が見られますが、もう一方の親には変化が見られません。
また、オプションを使用して比較を試みましたが、--git
それが欠落しているメタデータの変更ではないことを確認しましたが、結果はまったく変わりません。
使用している変更セットに関する情報を取得するには:
hg log -v -r <rev> --removed --style xml
マージチェンジセットの親をピックアップし、マージ内の各ファイルに対して、
hg diff -r <parent1> -r <rev> filename
hg diff -r <parent2> -r <rev< filename
TortoiseHg
そして、私が報告したマージの概要に、ファイルが競合なしでマージされたと表示されていることがわかりました。
誰でも不一致に光を当てることができますか?
更新: TortoiseHg 自体のソース コードでこれを再現できました。
https://hg01.codeplex.com/tortoisehgから 複製 tortoiseHg でリポジトリを開き、rev 12602 (58eb7c70) を選択します。これは、12599 (6c716caa) と 12601 (39c95a81) の親とのマージです。
TortoiseHg はファイル tortoisehg/hgqt/repowidget.py をマージで唯一の競合ファイルとして表示しますが、まだ
hg diff -r 12599 -r 12602 tortoisehg/hgqt/repowidget.py
何も返しませんが、
hg diff -r 12601 -r 12602 tortoisehg/hgqt/repowidget.py
は、2 つの行が変化していることを示しています。