可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
in windows I am able to use winmerge as the external diff tool for hg using mercurial.ini,etc.
Using some options switch that you can find in web(I think it's a japanese website)
Anyway, here
for example:
hg winmerge -r1 -r2
will list file(s) change(s) between rev1 and rev2 in winmerge. I can just click which file to diff
but for bc3:
hg bcomp -r1 -r2
will make bc3 open a dialog which stated that a temp dir can't be found.
The most I can do using bc3 and hg is
hg bcomp -r1 -r2 myfile.cpp
which will open diff between rev1 and rev2 of myfile.cpp
So,it seems that hg+bc3 can't successfully acknowledge of all files change between revision.
Only able to diff 1 file at a time.
Anyone can use bc3 + hg better ?
edit: Problem Solved !
Got the solution from http://www.scootersoftware.com/support.php?zz=kb_vcs.php>scooter support page.
I have to use bcompare instead of bcomp
Here's a snippet of my 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
回答1:
Beyond-Compare-3 is an amazing tool.
I recommend a few tweaks to the setup:
[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
回答2:
Personally I found that the best Beyond Compare config can be found in the Mercurial mergetools.rc file
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
I also found that it is important to NOT include Beyond Compare in extdiff
section so it will use beyondcompare3
from the merge-tools
section with diffargs
arguments. (I have beyondcompare3
specified in both ui.merge
and tortoisehg.vdiff
)
回答3:
I had to add the following to make it work on my machine:
[extensions]
extdiff =
[extdiff]
cmd.bc3 = C:\Program Files\Beyond Compare 3\BCompare.exe
opts.bc3 = /ro
回答4:
If you keep getting this "Folder Not Available" error from BC (I did, when I had several instances of BC open simultaneously), try adding option /solo
to the command line, i.e.:
[extdiff]
cmd.bcomp = C:\Program Files\Beyond Compare 3\BCompare.exe
opts.bcomp = /leftreadonly /solo
Source: Scooter Software support forum
回答5:
Checkout this page from the Scooter Software support page - it also includes settings for most version control systems - one for my bookmarks list!
Snippet:
To configure Mercurial you need to edit the file %USERPROFILE%\Mercurial.ini or $HOME/.hgrc. Add the following lines, using existing INI sections if they already exist:
Diff
[extensions] extdiff =
[extdiff]
cmd.bcomp = C:\Program Files\Beyond Compare 3\BCompare.exe
opts.bcomp = /ro
[tortoisehg] vdiff = bcomp
Once set up you can compare revisions from the command line using
hg bcomp -r <rev1> [-r <rev2>] [<filename>]
3-Way Merge (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
回答6:
I tried the suggestions given at the time but none worked.
I found the following works:
- Add beyond compare install directory to the yor system
path
- Open the global settings and set the diff tools to
bcompare
Now try a diff - Beyond Compare!
回答7:
All the answers given so far are for Windows. Here is my configuration for those using Linux.
Diff
[extensions]
extdiff =
[extdiff]
cmd.bcomp = bcompare
opts.bcomp = -ro1
4-Way Merge (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#
: Disables editing on specified side
-title#=<title>
: Shows description instead of filename in path edit
#
character: 1=Left, 2=Right, 3=Center, 4=Output
For more options of bcompare
, simply execute bcompare -help
in console.
回答8:
If you are having trouble getting your configuration to parse correctly please note that any space for any variable or section name will cause the configuration to parse incorrectly. I kept copying and pasting different configures and continued to get errors. It just ended up that spaces were added before many of the variables and it caused it not to parse.
回答9:
If you are using TortoiseHg, you can set the merge tool to Beyond Compare by choosing File -> Settings, and then on the TortoiseHg choice, select Visual Diff Tool and Three-way Merge Tool. This setting affects merges which are set through the command line as well.