2008-09-04 30 views

回答

-1

我猜是有一個CLI工具p4merge(我一無所知)。

我寫了一篇博客文章使用Changes.app,和一些其他的GUI工具與水銀:Using Mercurial with GUI Tools.

基本上,你需要知道的是加載了比較工具的CLI工具的調用期望。 IE,如何使它從一個特定的文件加載數據,以及如何讓它等待退出。在帖子上應該有足夠的信息給你一些想法。

0

我使用Python的以下位推出p4merge和使用git使用它:

#!/usr/bin/python 
import sys 
import os 

os.system('/Applications/p4merge.app/Contents/MacOS/p4merge "%s" "%s"' % (sys.argv[2], sys.argv[5])) 

我不知道長相如何善變到雖然啓動外部比較工具?希望這很簡單,就像在上面的行中調整2 & 5一樣,作爲「簽入」和「當前工作副本」參數的索引。

39

將這個到您的~/.hgrc(或可選,您Mercurial.ini在Windows上):

[merge-tools] 
p4.priority = 100 
p4.premerge = True # change this to False if you're don't trust hg's internal merge 
p4.executable = /Applications/p4merge.app/Contents/MacOS/p4merge 
p4.gui = True 
p4.args = $base $local $other $output 

需要的Mercurial 1.0或更高版本。很明顯,您需要更新該可執行文件的路徑以反映安裝p4merge的位置。

+3

您應該使用可執行文件「launchp4merge」而不是「p4merge」。這樣,如果您同時對多個文件對進行比較,它們都會出現在一個p4merge進程中,而不是單獨的進程中。 – 2009-02-14 06:05:38

+1

如果您希望使用Adam的建議(適用於我),請使用此行代替上面的p4.executable行: p4.executable = /Applications/p4merge.app/Contents/Resources/launchp4merge – warrenm 2010-03-17 23:00:24

+0

這不適用於`hg diff`。任何關於如何使p4merge成爲默認diff編輯器的建議? – Tobber 2015-02-18 14:59:30

15

我發現Ry4an's answer是一個很好的解決方案,除了一個小問題,它使p4merge(在mac os下)混合了命令輸入。 不要在his answer涉及的所有內容,並添加在[合併工具]以下行部分

p4.args=$base $local $other $output 

這行告訴善變的次序p4merge接受它的參數。

3

也許是因爲我在Windows上工作,但建議的解決方案並不適合我。相反,下面的工作。

在你~/.hgrc//Mercurial.ini,我申請了以下變化:

啓用 「ExtDiff」 擴展名:

[extensions] 
hgext.extdiff = 

新增P4 extdiff命令:

[extdiff] 
cmd.p4diff = p4merge 

配置爲默認視覺比較工具:

[tortoisehg] 
vdiff = p4diff 
13

我使用的是TortoiseHg 1.0.1版本,p4merge開箱即用。

剛去全局設置 - > TortoiseHg並選擇以下選項:

  • 三方合併工具:p4merge
  • 可視化差異工具:p4merge

Screenshot