簡體   English   中英

使用mercurial和超越比較3(bc3)作為差異工具?

[英]Using mercurial and beyond compare 3(bc3) as the diff tool?

,etc. 在Windows中,我可以使用winmerge作為hg的外部差異工具,使用等。
使用你可以在網上找到的一些選項開關(我認為這是一個日本網站)無論如何,這里舉例如下:

hg winmerge -r1 -r2

將在winmerge中列出rev1和rev2之間的文件更改。 我可以點擊哪個文件來區分

但對於bc3:

hg bcomp -r1 -r2

將使bc3打開一個對話框,表明無法找到臨時目錄。

我能用bc3和hg做的最多的是

hg bcomp -r1 -r2 myfile.cpp

這將打開myfile.cpp的rev1和rev2之間的差異

因此,似乎hg + bc3無法成功確認所有文件在修訂之間發生變化。 一次只能傳播1個文件。
誰能更好地使用bc3 + hg?

編輯:問題解決了!

從http://www.scootersoftware.com/support.php?zz=kb_vcs.php>scooter支持頁面獲得解決方案。 instead of Here's a snippet of my mercurial.ini 我必須使用而不是這里是我的mercurial.ini的片段

[extensions]
hgext.win32text =

;mhd adds
hgext.extdiff = 

;mhd adds for bc
[extdiff]
cmd.bc3 = bcompare
opts.bc3 = /ro

;mhd adds for winmerge
;[extdiff]
;cmd.winmerge = WinMergeU
;opts.winmerge = /r /e /x /ub

Beyond-Compare-3是一個了不起的工具。 我建議對設置進行一些調整:

[extensions]
extdiff =

[extdiff]
cmd.bcomp = C:\Program Files\Beyond Compare 3\BCompare.exe
opts.bcomp = /leftreadonly

[merge-tools]
bcomp.executable = C:\Program Files\Beyond Compare 3\BComp
bcomp.args = /leftreadonly /centerreadonly $local $other $base $output
bcomp.priority = 1

[ui]
merge = bcomp

[tortoisehg]
authorcolor = True
vdiff = bcomp

我個人發現最好的Beyond Compare配置可以在Mercurial mergetools.rc file找到:

[merge-tools]
....
; Windows version of Beyond Compare
beyondcompare3.args=$local $other $base $output /ro /lefttitle=local /centertitle=base /righttitle=other /automerge /reviewconflicts /solo
beyondcompare3.regkey=Software\Scooter Software\Beyond Compare 3
beyondcompare3.regname=ExePath
beyondcompare3.gui=True
beyondcompare3.priority=-2
beyondcompare3.diffargs=/lro /lefttitle='$plabel1' /righttitle='$clabel' /solo /expandall $parent $child

我還發現, 包括超越比較重要的是extdiff部分,因此它會使用beyondcompare3merge-toolsdiffargs參數。 (我已經beyondcompare3在同時指定ui.mergetortoisehg.vdiff

如果你不斷從BC獲得這個“文件夾不可用”錯誤(我做了,當我同時打開幾個BC實例時),嘗試在命令行中添加選項/solo ,即:

[extdiff]
cmd.bcomp = C:\Program Files\Beyond Compare 3\BCompare.exe
opts.bcomp = /leftreadonly /solo

資料來源: Scooter Software支持論壇

從Scooter軟件支持頁面查看此頁面 - 它還包括大多數版本控制系統的設置 - 一個用於我的書簽列表!

片段:

要配置Mercurial,您需要編輯文件%USERPROFILE%\\ Mercurial.ini或$ HOME / .hgrc。 使用現有的INI部分添加以下行(如果它們已存在):

DIFF

[extensions] extdiff =

[extdiff] 
cmd.bcomp = C:\Program Files\Beyond Compare 3\BCompare.exe
opts.bcomp = /ro

[tortoisehg] vdiff = bcomp 

設置完成后,您可以使用命令行比較修訂版本

hg bcomp -r <rev1> [-r <rev2>] [<filename>]

3合並(v3 Pro)

[merge-tools] 
bcomp.executable = C:\Program Files\Beyond Compare 3\BComp 
bcomp.args = $local $other
$base $output bcomp.priority = 1
bcomp.premerge = True bcomp.gui = True

[ui] merge = bcomp

我必須添加以下內容才能使其在我的機器上運行:

[extensions]
extdiff =

[extdiff]
cmd.bc3 = C:\Program Files\Beyond Compare 3\BCompare.exe
opts.bc3 = /ro

我嘗試了當時給出的建議但沒有成功。

我找到了以下作品:

  1. 添加超出比較安裝目錄到yor系統path
  2. 打開全局設置並將diff工具設置為bcompare

現在嘗試差異 - 超越比較!

到目前為止給出的所有答案都適用於Windows。 這是我使用Linux的配置。

DIFF

[extensions]
extdiff =

[extdiff]
cmd.bcomp = bcompare
opts.bcomp = -ro1

4路合並(v3 Pro)

[merge-tools]
bcomp.executable = bcompare
bcomp.args = -title1='First Parent' -title2='Second Parent' -title3='Common Ancestor' -title4='Output' -ro1 -ro2 -ro3 $local $other $base $output
bcomp.premerge = True
bcomp.gui = True

-ro# :禁用指定端的編輯

-title#=<title> :在路徑編輯中顯示描述而不是文件名

#字符:1 =左,2 =右,3 =中心,4 =輸出

有關bcompare更多選項,只需在控制台中執行bcompare -help即可。

如果您使用的是TortoiseHg,可以通過選擇File - > Settings將合並工具設置為Beyond Compare,然后在TortoiseHg選項中選擇Visual Diff Tool和Three-way Merge Tool。 此設置也會影響通過命令行設置的合並。

如果您無法正確解析配置,請注意任何變量或部分名稱的任何空格都將導致配置錯誤地解析。 我一直在復制和粘貼不同的配置,並繼續出錯。 它剛剛結束,在許多變量之前添加了空格,導致它不解析。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM