SourceTreeからAraxis Mergeを起動するには
- 2019-12-09
- Araxis Merge / git / mac / SourceTree
macOSでの話。
わたしはマージツールにAraxis Mergeを使っていておおかた、いやとても満足しているのだけれど、困ったことが1つある。SourceTreeを使ってソースコードを共有していて競合が発生したとき、SourceTreeからAraxis Mergeを起動してマージ作業ができないのだ。一瞬起動した「フリ」だけして何もできない間に終了し、SourceTree側でも「マージが解決した」ことにされてしまうため、ソースが直せない。
いろいろ調べたところ、なんと……全然関係ない、画像処理をコマンドラインでおこなうImageMagickをインストールしているのが原因、ということが判明。
ImageMagickには「compare」というコマンドラインツールがあって、それと競合するのだ。Araxis Mergeにもcompareという同じ名前のコマンドラインツールがあり、その2つが競合する。SourceTreeはAraxis Mergeを起動するときに裏で(見えないところで)compareコマンドを使うようなのだが、ImageMagickのcompareコマンドが先に実行されてしまうため、マージができないのだ。
直し方はそこそこ簡単なのだが、「これでいいのかなあ」というもの。SourceTreeアプリケーション内にあるファイルを編集しないといけない。
Finderで、ApplicationフォルダにあるSourceTreeを選び、右クリック(control + クリック)して[パッケージの内容を表示]を選ぶ。
次にContentsフォルダ→Resourcesフォルダ→araxisgitmerge-w.shファイルを、テキストエディタで選ぶ。ファイルの場所をパスで書くとこのとおり。
/Applications/SourceTree.app/Contents/Resources/araxiscompare-w.sh
このファイルの中に「export」で始まる1行があって、「Applications/Araxis\ Merge.app/Contents/Utilities:」の部分を選択してカットし、その行にある「/usr/local/bin:」より前にペーストする。終わったらファイルを保存して、SourceTreeを再起動。次からマージのときにAraxis Mergeが起動するようになる。
「export」で始まるこの1行を……
export PATH=~/bin:/usr/local/bin:/Applications/Araxis\ Merge.app/Contents/Utilities:/usr/bin:/bin:$PATH
こんな感じで直す。
export PATH=~/bin:/Applications/Araxis\ Merge.app/Contents/Utilities:/usr/local/bin:/usr/bin:/bin:$PATH
ということで、わかる人にはわかるかもしれないが、解決策で何をやっているかを説明しておくと「ImageMagickのcompareコマンドよりもAraxis Mergeのcompareコマンドへのパスを先に通す」ということになる。Homebrew経由でImageMagickをインストールしている場合、ImageMagickのcompareコマンドは「/usr/local/bin」に保存される。直す前のSourceTreeのスクリプトでは「/usr/local/bin」へのパスが先に通ってしまうため、Araxis Mergeのcompareコマンドへのパスを先に通す、というわけ。
でもこれ、SouceTreeがアップデートされたり、インストールし直したりしたらやり直しだよね? そもそもアプリケーション内のファイルをいじるのはちょっと気持ち悪いし、わたしはまだCatalinaにしていないのでわからないけど、セキュリティが強化されたというCatalinaでも同じことができるのかどうか不明。マージのときはツールを変えるべきかな…… 高かったんだけどな。
SourceTreeから起動できない問題を調べるために検索したわけだけれども、日本語の記事はほとんど出てこなかったところをみると、Araxis Mergeは日本では使っている人が多くないのかな? 日本語化はされているし、高機能なので(SourceTreeの問題と値段が高いこと以外は)おススメなんだけど。
で、なぜそんなAraxis Mergeを使っているかといえば、わたしの仕事には相性がよいから。
本を書いていると、最後の校正作業のときに「ゲラ(紙面データになったPDFファイル)」とサンプルデータとして提供する生のソースコードを突き合わせて、間違いがないかどうかを確認し、訂正の赤字を入れていく作業が待っている。これがかなりの苦痛を伴う作業で、普通のマージ/差分ツールがあまり役に立たず、いままではほぼ目視で間違い探しをしていた。
これを自動化できないかと思っていろいろ探して、最後に見つけたのがAraxis Merge。PDFになったテキストと、もとのソースコードを比較するのに使える便利な機能がいろいろ搭載されているため、紙面とソースコードの比較が難なくできるようになった。自動化まではできていないし、それなりに事前の準備も必要なのだが、作業にかかる手数もだいぶ少なく抑えられるので、ずいぶんと楽になったことは間違いない。もうもとには戻れないというわけで、いまのわたしにはAraxis Mergeが手放せない。
このへんを参考にした。