P4Merge インストール
- Visual Merge and Diff Tools | Perforce からダウンロード
- [Select Features] では [Visual Merge Tool(P4Merge)] のみ選択し、他は [This feature will not be installed and will be uninstalled if already installed] を設定してインストールしないようにして進める。
Git 設定
mergetool.p4merge.cmd を設定するとき、文字列をシングルクォーテーション ‘ で囲んでいることがポイントですの。
git config --global merge.tool p4merge git config --global mergetool.p4merge.cmd '"C:¥Program Files¥Perforce¥p4merge.exe" "$BASE" "$LOCAL" "$REMOTE" "$MERGED"' git config --global mergetool.trustExitCode false
設定ファイル
git config コマンドを実行しますと、.gitconfig に次のように書き込まれます。
コマンドを打たずに直接書き込んでも大丈夫です。
[merge] tool = p4merge [mergetool "p4merge"] cmd = ¥"C:¥¥Program Files¥¥Perforce¥¥p4merge.exe¥" ¥"$BASE¥" ¥"$LOCAL¥" ¥"$REMOTE¥" ¥"$MERGED¥" trustExitCode = false
git config でのポイント
- git config コマンドでは、シングルクォーテーション ‘ を使って文字列を囲うと、内部の円マーク ¥ および ダブルクォーテーション ” は自動的にエスケープされて前に ¥ が付与される形で .gitconfig に記述される。
コマンド試行錯誤
設定ファイルを直接修正すれば良いのですけれども、コマンドでの設定が上手くいきませんでした><。
なかばムキになって、なんとかコマンドでも mergetool の cmd を設定した結果を残しておきますの♪
NG 1
git config --global mergetool.p4merge.cmd "¥"C:¥¥Program Files¥¥Perforce¥¥p4merge.exe¥" ¥"$BASE¥" ¥"$LOCAL¥" ¥"$REMOTE¥" ¥"$MERGED¥""
↓
[mergetool "p4merge"] cmd = ¥"C:¥¥Program Files¥¥Perforce¥¥p4merge.exe¥" ¥"¥" ¥"¥" ¥"¥" ¥"¥"
後半が設定されておりません><。原因不明ですわ。
NG 2
git config --global mergetool.p4merge.cmd '¥"C:¥¥Program Files¥¥Perforce¥¥p4merge.exe¥" ¥"$BASE¥" ¥"$LOCAL¥" ¥"$REMOTE¥" ¥"$MERGED¥"'
↓
[mergetool "p4merge"] cmd = ¥¥"C:¥¥¥¥Program Files¥¥¥¥Perforce¥¥¥¥p4merge.exe¥¥¥" ¥¥¥"$BASE¥¥¥" ¥¥¥"$LOCAL¥¥¥" ¥¥¥"$REMOTE¥¥¥" ¥¥¥"$MERGED¥¥¥"
¥ が多すぎですの><。シングルクォーテーションで囲むと、” と ¥ が ¥ を付与することでエスケープされるようですわ。
OK
git config --global mergetool.p4merge.cmd '"C:¥Program Files¥Perforce¥p4merge.exe" "$BASE" "$LOCAL" "$REMOTE" "$MERGED"'
↓
[mergetool "p4merge"] cmd = ¥"C:¥¥Program Files¥¥Perforce¥¥p4merge.exe¥" ¥"$BASE¥" ¥"$LOCAL¥" ¥"$REMOTE¥" ¥"$MERGED¥"
これで良いのです♪やったぜ!
おわりに
次のページが参考になりました。ありがとう存じます♪
Git の設定コマンドと、設定ファイルについて、少しづつわかってきましたわ♪
以上です。
「【Git】【Windows】P4Merge の導入、設定をノート」への1件の返信
[…] 【Git】【Windows】P4Merge の導入、設定をノート […]