<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://www.mywiki.cn/Hovercool/index.php?action=history&amp;feed=atom&amp;title=%E7%94%A8meld%E4%BB%A3%E6%9B%BFsvn%E9%BB%98%E8%AE%A4%E7%9A%84diff%E5%B7%A5%E5%85%B7</id>
	<title>用meld代替svn默认的diff工具 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://www.mywiki.cn/Hovercool/index.php?action=history&amp;feed=atom&amp;title=%E7%94%A8meld%E4%BB%A3%E6%9B%BFsvn%E9%BB%98%E8%AE%A4%E7%9A%84diff%E5%B7%A5%E5%85%B7"/>
	<link rel="alternate" type="text/html" href="https://www.mywiki.cn/Hovercool/index.php?title=%E7%94%A8meld%E4%BB%A3%E6%9B%BFsvn%E9%BB%98%E8%AE%A4%E7%9A%84diff%E5%B7%A5%E5%85%B7&amp;action=history"/>
	<updated>2026-09-01T06:15:24Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://www.mywiki.cn/Hovercool/index.php?title=%E7%94%A8meld%E4%BB%A3%E6%9B%BFsvn%E9%BB%98%E8%AE%A4%E7%9A%84diff%E5%B7%A5%E5%85%B7&amp;diff=770&amp;oldid=prev</id>
		<title>2015年5月6日 (三) 08:03 Hovercool</title>
		<link rel="alternate" type="text/html" href="https://www.mywiki.cn/Hovercool/index.php?title=%E7%94%A8meld%E4%BB%A3%E6%9B%BFsvn%E9%BB%98%E8%AE%A4%E7%9A%84diff%E5%B7%A5%E5%85%B7&amp;diff=770&amp;oldid=prev"/>
		<updated>2015-05-06T08:03:33Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== 安装meld ==&lt;br /&gt;
&lt;br /&gt;
在Ubuntu下，只需一条简单的命令就可以了&lt;br /&gt;
&lt;br /&gt;
 $:sudo apt-get install meld&lt;br /&gt;
&lt;br /&gt;
== 让svn使用meld ==&lt;br /&gt;
&lt;br /&gt;
编辑 &amp;quot;~/.subversion&amp;quot;目录下的&amp;quot;config&amp;quot;文件，将meld赋值给diff-cmd,如下所示：&lt;br /&gt;
&lt;br /&gt;
 $gedit ~/.subversion/config&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;prettyprint&amp;quot;&amp;gt;&lt;br /&gt;
### Set diff-cmd to the absolute path of your &amp;#039;diff&amp;#039; program.&lt;br /&gt;
###   This will override the compile-time default, which is to use&lt;br /&gt;
###   Subversion&amp;#039;s internal diff implementation.&lt;br /&gt;
diff-cmd = meld&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
此后，使用svn diff命令时，将调用meld工具进行比较。&lt;br /&gt;
&lt;br /&gt;
同样的方法，还可用于更改编辑器等工具：&lt;br /&gt;
&amp;lt;pre class=&amp;quot;prettyprint&amp;quot;&amp;gt;&lt;br /&gt;
### Set editor-cmd to the command used to invoke your text editor.&lt;br /&gt;
###   This will override the environment variables that Subversion&lt;br /&gt;
###   examines by default to find this information ($EDITOR, &lt;br /&gt;
###   et al).&lt;br /&gt;
# editor-cmd = editor (vi, emacs, notepad, etc.)&lt;br /&gt;
editor-cmd = gedit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ca6500;&amp;quot;&amp;gt;&lt;br /&gt;
实践证明上述方法不可行(svn v1.6.12 | meld v1.5.0)，提示如下错误：&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index: WifiEnabler.java&lt;br /&gt;
===================================================================&lt;br /&gt;
Usage: &lt;br /&gt;
  meld                              启动时打开空白窗口&lt;br /&gt;
  meld &amp;lt;文件|目录&amp;gt;              开始版本控制比较&lt;br /&gt;
  meld &amp;lt;文件&amp;gt; &amp;lt;文件&amp;gt; [&amp;lt;文件&amp;gt;] 开始两向或三向文件比较&lt;br /&gt;
  meld &amp;lt;目录&amp;gt; &amp;lt;目录&amp;gt; [&amp;lt;目录&amp;gt;] 开始两向或三向目录比较&lt;br /&gt;
  meld &amp;lt;文件&amp;gt; &amp;lt;目录&amp;gt;            在文件和文件夹/文件之间开始比较&lt;br /&gt;
&lt;br /&gt;
meld: error: no such option: -u&lt;br /&gt;
svn: “meld” 返回 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
原因是svn diff的参数与meld不匹配，可按如下方法更改：&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 让svn使用meld，新版可行的方法 ==&lt;br /&gt;
&lt;br /&gt;
=== 1、在目录~/.subversions/下，新建脚本文件 mydiff.sh ===&lt;br /&gt;
&lt;br /&gt;
内容如下：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;prettyprint&amp;quot;&amp;gt;&lt;br /&gt;
    #!/bin/sh  &lt;br /&gt;
      &lt;br /&gt;
    # Configure your favorite diff program here.  &lt;br /&gt;
    #&amp;quot;/usr/bin/bcompare&amp;quot; &lt;br /&gt;
    DIFF=&amp;quot;meld&amp;quot;  &lt;br /&gt;
    # DIFF=&amp;quot;/usr/bin/meld&amp;quot;  &lt;br /&gt;
    # DIFF=&amp;quot;/usr/bin/kompare&amp;quot;  &lt;br /&gt;
    # DIFF=env LANG=zh_CN.UTF-8 WINEPREFIX=&amp;quot;/home/borqs/.wine&amp;quot; wine &amp;quot;C:\\Program Files\\Beyond Compare 2\\BC2.exe&amp;quot;  &lt;br /&gt;
      &lt;br /&gt;
    # Subversion provides the paths we need as the sixth and seventh   &lt;br /&gt;
    # parameters.  &lt;br /&gt;
    LEFT=${6}  &lt;br /&gt;
    RIGHT=${7}  &lt;br /&gt;
      &lt;br /&gt;
    # Call the diff command (change the following line to make sense for  &lt;br /&gt;
    # your merge program).  &lt;br /&gt;
    $DIFF $LEFT $RIGHT   &lt;br /&gt;
      &lt;br /&gt;
    # Return an errorcode of 0 if no differences were detected, 1 if some were.  &lt;br /&gt;
    # Any other errorcode will be treated as fatal.  &lt;br /&gt;
    return 0  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2、更改其可执行属性 ===&lt;br /&gt;
&lt;br /&gt;
 $:chmod 777  ~/.subversion/mydiff.sh&lt;br /&gt;
&lt;br /&gt;
=== 3、使svn diff命令指引到上述bash ===&lt;br /&gt;
&lt;br /&gt;
 $:gedit ~/.subversion/config &lt;br /&gt;
&lt;br /&gt;
更改 diff-cmd:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;prettyprint&amp;quot;&amp;gt;&lt;br /&gt;
diff-cmd =/home/kaigo/.subversion/mydiff.sh &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
参考资料：&lt;br /&gt;
&lt;br /&gt;
http://ninofocus.com/2011/11/27/meld-for-svn-and-git/&lt;br /&gt;
&lt;br /&gt;
http://blog.csdn.net/zzqhost/article/details/7290055&lt;/div&gt;</summary>
		<author><name>Hovercool</name></author>
	</entry>
</feed>