2009-02-27 89 views
1

我搜查了很多,发现有些人声称他们这样做了,但我无法让它工作。WinMerge与Bazaar的使用

如何在Windows上使用WinMerge,我最喜爱的diff工具,Bazaar?

我知道difftools插件(与Bazaar一起发售)可以处理这个,但是controller.py文件没有列出它,并且我无法看到指定路径的位置。看起来像它在PATH变量中搜索,并报告bzr:错误:找不到'winmerge'在(长路径列表)。 我试图把.cmd文件,然后在Bazaar的目录中WinMergeU.exe的快捷方式,相应地重命名(winmerge.cmd,winmerge.lnk)register_diff_tool参数。没有更多的错误,但没有推出...

那么,有人使用WinMerge(或者其他一些Windows工具)与Bazaar有任何成功吗?

我很想与extmerge插件也使用它...


编辑前两个答案后,我尝试了一些变种,我在这里列出以供参考。无工作:

# As suggested: 
# Bad: bzr: ERROR: [Errno 22] Invalid argument: 'c:\\docume~1\\philho\\locals~1\\temp\\bzr_C:/Program Files/_Text/WinMerge/WinMergeU.exeh7angm.log' 
wdiff = diff --using "C:/Program Files/_Text/WinMerge/WinMergeU.exe" 
# Bad: bzr: ERROR: Cannot find 'C:Progra~1_TextWinMergeWinMergeU.exe' in <PATH> 
wdiff = diff --using C:\Progra~1\_Text\WinMerge\WinMergeU.exe 

# Variants: 
# Bad: bzr: ERROR: [Errno 22] Invalid argument: 'c:\\docume~1\\philho\\locals~1\\temp\\bzr_C:/Progra~1/_Text/WinMerge/WinMergeU.exejuttft.log' 
wdiff = diff --using C:/Progra~1/_Text/WinMerge/WinMergeU.exe 
# Bad: bzr: ERROR: [Errno 22] Invalid argument: 'c:\\docume~1\\philho\\locals~1\\temp\\bzr_C:\\Program Files\\_Text\\WinMerge\\WinMergeU.exehpabjl.log' 
wdiff = diff --using "C:\\Program Files\\_Text\\WinMerge\\WinMergeU.exe" 
# Bad: bzr: ERROR: [Errno 22] Invalid argument: 'c:\\docume~1\\philho\\locals~1\\temp\\bzr_C:\\Progra~1\\_Text\\WinMerge\\WinMergeU.exe4gi5or.log' 
wdiff = diff --using C:\\Progra~1\\_Text\\WinMerge\\WinMergeU.exe 

使用:

Bazaar (bzr) 1.11 
    Python interpreter: C:\Program Files\_Dev\Bazaar\python25.dll 2.5.2 

其实,可怕的(和尴尬)的事实是,似乎我的较早尝试的一个工作,但我什么也没看到...因为我是测试一个承诺的文件!我想我是在期待那个默认情况下它比较了最后两个版本或者其他东西。

无论如何,正如我在评论中写的,我不想把WinMerge目录放在我已经太长的路径中,所以我走在中间道路上,制作一个命令文件并将其放入已经存在的Bazaar目录中路径。 至少它可以工作,并且我可以根据需要轻松添加参数。

[ALIASES] 
wdiff = diff --using winmerge.cmd 

# winmerge.cmd contains: 
"C:\Program Files\_Text\WinMerge\WinMergeU.exe" %1 %2 

也许我应该把它作为线程中的解决方案,虽然它缺乏优雅。

为了记录在案,同时我们对外部工具的话题,我也加入到bazaar.conf中:

editor = C:/Program Files/_Text/SciTE/SciTE.exe 

使用它提交(不-m选项),例如。

下一步:extmerge。仔细一看,似乎并没有WinMerge可用,没有3路合并。我可能会使用Perforce的合并,它是免费的,我已经习惯了。
对于那些和我一样困惑的人来说,extmerge并不是合并的GUI替代品。如果您运行它,即使合并报告它也不会报告冲突。其实,你必须运行合并,然后再extmerge。如果你想使用的WinMerge,也许是为了比较其他与本使用生成/更改的文件和做的工作...
,你可以使用:

external_merge = "C:/Program Files/_Text/WinMerge/WinMergeU.exe %o %t %r" 

我希望我在这里的尝试/评论对其他人有用......:-)

[UPDATE]
Oookaaay!
所以我很困惑! Bazaar邮件列表中的一则消息启迪了我可怜的灵魂: “你知道bzr也提供diff --using,对吗?你喜欢difftools的版本?” - Aaron Bentley,2009-04-03在Re :difftools,'bzr diff --using footool'和'diffuse'

唉!不,我不知道。
我删除difftools插件,编辑我行:

wdiff = diff --using "C:/Program Files/_Text/WinMerge/WinMergeU.exe" 

和它的工作完全正常,开箱即用!我不确定为什么这个difftools插件没有被标记为过时。

我留下这个问题作为参考,以防像我这样的其他新手也感到困惑。我至少可以选择一个答案。谢谢!

+0

要使用WinMerge解决冲突,您需要将其调用为: winmergeu文件 其中file - 您的文件与冲突。 WinMerge解析冲突并在2个面板中显示您的文件,您可以在其中选择最终变体。 – bialix 2009-02-28 13:32:16

+0

关于此错误: #错误:bzr:错误:[Errno 22]无效参数:'c:\\ docume〜1 \\ philho \\ locals〜1 \\ temp \\ bzr_C:/ Program Files/_Text/WinMerge /WinMergeU.exeh7angm.log' 请在这里提交bug https://launchpad.net/bzr/+filebug – bialix 2009-02-28 13:33:23

+0

@bialix:好的,我做到了。 https://bugs.launchpad.net/bzr/+bug/336228 – PhiLho 2009-03-01 14:42:46

回答

5
bzr diff --using "C:/Program Files/WinMerge/WinMergeU.exe" 

可以在bazaar.conf中

添加此别名或者,如果您有C:\ Program Files文件\的WinMerge在PATH环境变量,你可以使用它作为:

bzr diff --using WinMergeU.exe 
+0

谢谢。它不起作用(请参阅更新),我不想添加到已经很长的路径。 :-)仍然积极寻求帮助。 – PhiLho 2009-02-28 09:59:15

2

您是否阅读过difftools插件附带的README文件?它解释了--using选项。

另外,通过安装在我的windows机器上的bazaar,你的配置文件会在C:\ Documents and Settings \ 用户名 \ Application Data \ bazaar \ 2.0中找到\ bazaar.conf中

添加下[ALIASES]段以下(并称部分,如果它不存在的话):

[ALIASES] 
gdiff = diff --using C:\Progra~1\WinMerge\WinMergeU.exe 

更改,以适应您的安装路径。然后你可以去

bazaar gdiff 

代替

bazaar diff 
2

这似乎为我工作:

bzr diff --using "C:\\program files\\winmerge\\winmergeu.exe" 

顺便说一句,如果你不能得到它的工作,我会建议使用q * UI工具,如:

bzr qdiff 
bzr qlog 
bzr qcommit 

..etc

1

乌龟市集 - >设置 - >一般市集选项 - >区别 - >添加不适合我。我尝试使用上面的答案,但不幸的是他们不工作。但是我用一个基地的答案,我找到了一个解决方案。我编辑的

C:\Documents and Settings\*username*\Application Data\bazaar\2.0\qbazaar.conf (not bazaar.conf) 

,并添加行

[EXTDIFF] 
WinMerge = "C:/Program Files/TC UP/PLUGINS/Media/WinMerge/WinMergeU.exe" 

它工作正常,我可以内置的DIFF和的WinMerge之间进行选择。