我搜查了很多,发现有些人声称他们这样做了,但我无法让它工作。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插件没有被标记为过时。
我留下这个问题作为参考,以防像我这样的其他新手也感到困惑。我至少可以选择一个答案。谢谢!
要使用WinMerge解决冲突,您需要将其调用为: winmergeu文件 其中file - 您的文件与冲突。 WinMerge解析冲突并在2个面板中显示您的文件,您可以在其中选择最终变体。 – bialix 2009-02-28 13:32:16
关于此错误: #错误: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
@bialix:好的,我做到了。 https://bugs.launchpad.net/bzr/+bug/336228 – PhiLho 2009-03-01 14:42:46