代码之家  ›  专栏  ›  技术社区  ›  sven

如何配置Mercurial在cygwin下使用WinMerge进行合并?

  •  9
  • sven  · 技术社区  · 17 年前

    当Mercurial在cygwin的领导下运行时,弄清楚如何产卵有点棘手 WinMerge 解决合并冲突。我该怎么做?

    2 回复  |  直到 17 年前
        1
  •  16
  •   sven    17 年前

    以下是如何做到这一点:

    /usr/bin/winmerge 详情如下:

    #!/bin/sh
    "/cygdrive/c/Program Files/WinMerge/WinMergeU.EXE" /e /ub /dl other /dr local `cygpath -aw $1` `cygpath -aw $2` `cygpath -aw $3`
    

    注: cygpath 转换路径名。如果WinMerge不在默认位置,请在此处更改路径。

    (2) 使该文件可执行

     chmod +x /usr/bin/winmerge
    

    (3) 将以下内容添加到您的 ~/.hgrc

    [ui]
    merge = winmerge
    
    [merge-tools]
    winmergeu.executable=/usr/bin/winmerge
    winmergeu.args=$other $local $output
    winmergeu.fixeol=True
    winmergeu.checkchanged=True
    winmergeu.gui=False
    

    笔记您可能已经有一个[ui]分区,其中包含您的名字。请记住将我的更改与您的更改合并,不要只添加新的[ui]部分。例如,my.hgrc如下所示:

    [ui]
    username = Joel Spolsky <spolsky@example.com>
    merge = winmergeu
    
    [extensions]
    fetch =
    
    [merge-tools]
    winmergeu.executable=/usr/bin/winmerge
    winmergeu.args=$other $local $output
    winmergeu.fixeol=True
    winmergeu.checkchanged=True
    winmergeu.gui=False
    
        2
  •  0
  •   Bob    16 年前

    下面是用于Subversion/cygwin/WinMerge的shell脚本行。主要区别在于要使用哪些参数。

    /cygdrive/c/Program\ Files/WinMerge/WinMergeU.exe /e /ub /dl "$3" /dr "$5" "`cygpath -aw $6`" "`cygpath -aw $7`" &
    

    请注意,此示例还设置了描述字段并在后台启动比较,以便一次启动所有差异。如果不喜欢,请删除“&”。

    如果您不知道修订控制程序传递给您的是什么,请尝试将“echo$@”添加到shell脚本中。它将打印传递给脚本的参数。