我搜索了很多,发现有些人声称他们这样做了,但我无法让它发挥作用.
如何使用WinMerge,我最喜欢的Windows上的差异工具,与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' inwdiff = 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我已经太久路径,所以我把在路中间,使得命令文件,并把它在大巴扎的目录这已经是在路径.至少它可以工作,如果需要我可以轻松添加参数.
[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
例如,它由commit(不带-m选项)使用.
下一步:extmerge.仔细观察,似乎WinMerge在那里不可用,没有3路合并.我可能会使用Perforce的合并,它是免费的,我已经习惯了.
对于像我这样困惑的人来说只是一个注释:extmerge不是合并的GUI替代品.如果您运行它,它将报告没有冲突,即使合并报告它们.实际上,你必须首先运行merge,然后extmerge使用生成/更改的文件并完成工作...
如果你想使用WinMerge,也许要比较OTHER和THIS,你可以使用:
external_merge = "C:/Program Files/_Text/WinMerge/WinMergeU.exe %o %t %r"
我希望我的尝试/评论对其他人有用...... :-)
[更新]
Oookaaay!
所以我很困惑!Bazaar邮件列表中的一条消息启发了我可怜的灵魂:" 你知道bzr也提供了差异,对吗?你更喜欢difftools中的版本? " - Aaron Bentley,2009-04-03 in Re:difftools,' bzr diff - 使用footool'和'diffuse'
AARGH!不,我不知道.
我删除了difftools插件,编辑了我的行:
wdiff = diff --using "C:/Program Files/_Text/WinMerge/WinMergeU.exe"
开箱即用它完美无缺!我不确定为什么这个difftools插件没有标记为过时.
我把这个问题作为参考,以防其他像我这样的新手也感到困惑.我至少可以选出一个答案.谢谢!
bzr diff --using "C:/Program Files/WinMerge/WinMergeU.exe"
您可以将其添加到bazaar.conf中的别名中
或者,如果在PATH环境变量中有C:\ Program Files\WinMerge,则可以将其用作:
bzr diff --using WinMergeU.exe