当前位置:  开发笔记 > 开发工具 > 正文

如何在Windows ClearCase中使用ediff(emacs diff)作为差异/合并工具?

如何解决《如何在WindowsClearCase中使用ediff(emacsdiff)作为差异/合并工具?》经验,为你挑选了1个好方法。

我不得不在工作中使用ClearCase(Windows版本),我想使用emacs ediff作为差异和合并工具.ClearCase映射文件的问题是它需要.exe文件 - 我试图指定一个批处理文件调用ediff,但它不起作用.

我不想编写一个C/C++程序(自从我用C编译Win32中的任何东西已经超过10年了),它将调用ediff适当的参数.有更简单的方法吗?

也可以看看:

有什么方法可以使用带有cleartool/clearcase的自定义diff工具吗?



1> VonC..:

正如在这个SO问题中提到的,地图文件允许您调用外部差异工具.

对于Windows,您应首先尝试以ediff模式调用emacs:

   emacs --eval "(ediff-files \"file_1\" \"file_2\")" 

要么

   xemacs -eval "(ediff-files \"file_1\" \"file_2\")" 

(应该调用XEmacs ediff 的新实例)

如果这样可行,您可以编写.bat由映射文件调用的文件,并构建相应的" emacs ediff"命令行.

东西沿线的:

@echo off
set local
if !%XEMACS_PATH%!==!! SET
XEMACS_PATH=C:\\i586-pc-win32
set FILE1=%~1
set FILE2=%~2
REM * Bad habit - working on administrative shares.. Why is $->$$ not needed?
REM SET FILE1=%FILE1:$=$$%
REM SET FILE2=%FILE2:$=$$%
REM * Escaping backslash..
SET FILE1=%FILE1:\=\\%
SET FILE2=%FILE2:\=\\%

"%XEMACS_PATH:"=%\gnudoit.exe" "(ediff \"%FILE1%\" \"%FILE2%\")" 

如果地图文件是不放心与调用.bat文件,简单地生成一个.exe从你的.bat.


我做了一些测试,事实证明:

"与之前的版本相比"实际上是:

cleartool diff -graphical -pred myFile

通过cmd.exe调用调用.bat不起作用

c:\Program Files\Rational\ClearCase\lib\mgrs\map

text_file_delta xcompare "c:\WINDOWS\system32\cmd.exe /c c:\cc\test.bat"

cleartool: Error: Operation "xcompare" unavailable for manager "text_file_delta" (Operation pathname was: "C:\Program Files\Rational\ClearCase\lib\mgrs\"c:\WINDOWS\system32\cmd.exe /c c:\cc\test.bat"")

转换.exe中的.bat确实有效

arg2(%2)和arg4(%4)正是您要找的,arg5(%5)是为先前版本的内容创建的临时文件的名称(对于无法访问扩展路径名的快照视图)

所以下面的bat(在exe中转换)只能从命令行运行(而不是从ClearCase Explorer:DrWatson):

"C:\Program Files\WinMerge\WinMergeU.exe" %4 %5

您应该能够将其调整为Xemacs,但Alex的建议(使用Emacs的Clearcase)可能是另一个更实用的解决方案.

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有