2009-02-27 76 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之間進行選擇。