Mac OS 10.7上的图形多文件对比较

klm*_*123 45 svn macos diff

是否可以在Mac OS上以图形方式查看"svn diff"输出?

大多数图形差异程序允许您每次只查看一个文件.当你使用svn并且改变了10个文件时,这是非常不方便的.

对于Linux,我在" kompare "程序中找到了一个解决方案.我做:

svn diff > diffOut; kompare diffOut
Run Code Online (Sandbox Code Playgroud)

并且作为结果,我用图形化的工作计划和检查所有文件一次喜欢上了它显示图片.

Mac OS有同样的事吗?

PS"meld"程序似乎也是这样(或者它没有?),我已经尝试安装它,但是出现了错误.因此,我支持我无法在OSx 10.7下安装它.

小智 62

您可以使用Apple的FileMerge工具或Kaleidoscope.这两个都有命令行调用:

  • 要打开FileMerge,请从Xcode内部安装命令行开发人员工具并使用 opendiff
  • 打开Kaleidoscope,从Kaleidoscope内部安装其命令行工具并使用 ksdiff

  • 差价工具70美元对我来说似乎有点陡峭. (6认同)
  • 我已经调整了我的答案,但谷歌搜索"命令行filemerge"会告诉你你需要什么. (2认同)

Ati*_*gur 9

KDiff是一个开源的可视文本差异程序.您可以在windows,unix,linux和Mac OSX中使用它.试试吧.在Windows上,它会自动为svn diff添加自己.我不使用Mac OSX因此不能说这个功能也可用.

比较或合并两个或三个文本输入文件或目录,

来自kdiff3网站的以下图片网址显示它比较目录.

  • @ klm123:当前版本(0.9.97)可以一次同步三个文件夹.我不确定这是你想要的. (2认同)
  • 界面混乱且不直观:/ (2认同)

klm*_*123 3

  1. Mac 操作系统有 kompare。它是 KDE SDK 的一部分,可以使用 MacPorts 获取它:

    sudo port install kdesdk4
    launchctl load -w /Library/LaunchAgents/org.freedesktop.dbus-session.plist
    export PATH="/Applications/MacPorts/KDE4/kompare.app/Contents/MacOS:"$PATH
    
    Run Code Online (Sandbox Code Playgroud)

    它有效!

  2. svn 支持所谓的外部 diff

要使用它,应该创建 svn-wrapper 脚本,该脚本将采用“svn diff”命令返回的参数,并使用所需参数调用 diff。

这是参数“svn diff”返回的示例:

-u -L code/Class1.h (revision 16518) -L code/Class1.h (working copy) code/.svn/text-base/Class1.h.svn-base code/Class1.h
Run Code Online (Sandbox Code Playgroud)

opendiff 需要最后两个。因此下一个 bash脚本将是合适的:

#!/bin/sh

if [ $# -lt 2 ]; then
    echo "usage: $0 [ignored args...] file1 file2" >&2
    exit 1
fi

# The last two arguments passed to this script are the paths to the files
# to diff.
while [ $# -gt 2 ]; do
    shift
done

exec opendiff $*
Run Code Online (Sandbox Code Playgroud)

将此脚本放入 svnwrapper.sh 文件中。使文件可执行:

chmod +x svnwrapper.sh
Run Code Online (Sandbox Code Playgroud)

并将其放在某个公共路径中,该路径添加到 $PATH 变量中。现在你可以使用调用 svn

svn diff --diff-cmd=svnwrapper.sh
Run Code Online (Sandbox Code Playgroud)

或者只需在 ~/.subversion/config 文件中的 [helpers] 部分添加:

diff-cmd = svnwrapper.sh
Run Code Online (Sandbox Code Playgroud)