1

マージにgitでmeldを使用していますが、vimdiffを試してみたいと思っています。git を使用して 3 方向マージを構成し、次に独自の diff コマンドを使用します。

[merge]
    tool = vimdiff3
    conflictstyle = diff3
[mergetool "vimdiff3"]
    cmd = gvim -f -d \"$LOCAL\" \"$BASE\" \"$REMOTE\" \"$MERGED\"

しかし、mergetool を実行しようとするたびに、git は「[file] は変更されていないようです」とすばやく応答し、マージをスキップします。

その上で、実際の 3 方向マージ (4 つのファイル) を取得し、ウィンドウを下部にマージしたいと考えています。

    cmd = gvim -f -d -c \"wincmd J\" \"$MERGED\" \"$LOCAL\" \"$BASE\" \"$REMOTE\"
4

1 に答える 1

1

mergetools/vimdiff3今後の設定 (git 2.0.x Q3 2014 用) が機能するかどうかを確認できます。

コミット 3a9dae7 (2014 年 6 月)で最近マージされたFelipe Contreras ( )によるコミット 7c147b7を参照してください。felipec

mergetoolsvimdiff3:モード追加

他のウィンドウが非表示になっていることを除いて、デフォルトに似ています。
これにより、削除/追加された色がメインのマージ ウィンドウで引き続き表示されますが、他のウィンドウは表示されません。

特にmerge.conflictstyle=diff3で役に立ちます。

gvimdiff3|vimdiff3)
  if $base_present
  then
    "$merge_tool_path" -f -d -c 'hid | hid | hid' \
      "$LOCAL" "$REMOTE" "$BASE" "$MERGED"
  else
    "$merge_tool_path" -f -d -c 'hid | hid' \
      "$LOCAL" "$REMOTE" "$MERGED"
  fi
;;

新しいファイルmergetools/vimdiff3が追加されました。つまり、必要なことは次のとおりです。

git mergetool --tool=vimdiff3

(構成する必要なしmergetool.vimdiff3.cmd)

于 2014-07-12T19:42:01.240 に答える