tanaka's Programming Memo

プログラミングについてのメモ。

macでEclipseからp4mergeを使えるようにする

こちらを参考に、macの基本操作が色々分からないのでその辺を補足。
Gitのマージツールにp4mergeを使ってみた - wadahiroの日記

  1. p4mergeをインストール。これは解説のままに
  2. gitconfigの設定
    1. Finder▶︎アプリケーション▶︎ユーティリティ▶︎ターミナルを起動
    2. git config -e --global として、設定ファイルを開く
    3. [i]でinsertモードに移行してから、以下を追加(参考ページから抜粋)
[merge]
  tool = p4merge
[mergetool]
  keepBackup = false
[mergetool "p4merge"]
  path = p4merge
  keepTemporaries = false
  trustExitCode = false
    1. [esc]を押してから、[:][w][q]でviを保存終了
  1. シェルの作成
    1. ターミナルで以下を実行
    2. vi /usr/local/bin/p4merge
    3. [i]でinsertモードに切り替えて、以下を入力(参考ページから抜粋)
#!/bin/sh

P4MERGE=/Applications/p4merge.app/Contents/MacOS/p4merge

${P4MERGE} $*
    1. [esc]を押してから[:][w][q]で保存終了
    2. chmod 755 /usr/local/bin/p4merge

以上で設定完了。これで勝手にEclipseで差し代わるかと思ったが、そうはいかないらしい。

ターミナルからp4mergeを起動

ターミナルからgitコマンドを利用して競合を解消する手順。

  1. ターミナル起動
  2. gitのワーキングツリーに移動
cd /Users/<ユーザー名>/git/<リポジトリ名>
  1. git mergetoolと入力して、[Enter]

以上で競合ファイルをp4mergeで開いてくれる。

p4mergeの使い方

リモート、ヘッド、ローカルのそれぞれにアイコンが割り当てられている。画面下の結合用ウィンドウで、有効にしたいファイルの記号を選択する。複数のものを選択したい場合は、[Shift]を押しながら記号をクリックする。

変更が終わったら保存すれば、Eclipseも競合が解決したことを認識するので、Commitできる。

Eclipseからの起動

こちらを参考にして外部ツールとしてp4mergeを設定
Eclipse Community Forums: EGit » Egit + p4merge ?

外部ツールとして設定すると、EclipseのRunメニューから呼び出せるようになる。

  1. Eclipseを起動
  2. Eclipse▶︎環境設定
  3. ウィンドウ左からRun/Debug▶︎String Substitutionを選択
  4. ウィンドウ右で、[New...]を押して以下の2つの変数を追加
    • Name: git_exec / Value: /usr/bin/git
    • Name: git_work_tree / Value: /Users/<ユーザー名>/git/<リポジトリ名>
  5. [ok]でウィンドウを閉じる
  6. Run▶︎External Tools▶︎External Tools Configuration...を選択
  7. Programを選択してから"New Launch configuration"を選択
  8. Nameをp4mergeなどと設定
  9. Location valueに${git_exec}と入力
  10. Working Directoryに${git_work_tree}と入力
  11. Argumentsに mergetool と入力
  12. CommonタブのShare Fileラジオボタンを選択して、プロジェクトを選択。
  13. Display in favorites menuのExternal Toolsにチェックを入れる
  14. [Apply]をして反映して閉じる

以上で設定完了。

Run▶︎External Tools▶︎p4mergeで起動できるようになる。