VCS独立差异

时间:2010-01-18 04:28:14

标签: svn git shell mercurial diff

我们可以编写一个相应调用svn / hg / git的命令,而不是运行“svn diff”,“hg diff”等等。差异输出可以做得很漂亮吗?

编辑:首选命令行工具(不是GUI)。

3 个答案:

答案 0 :(得分:3)

键入“svn diff”或“hg diff”并不好玩,如果你不得不再次输入它只是为了用较少的页面输出。此外,当您的文本编辑器可能会进行语法高亮显示时...没有理由不应该使用适当的颜色突出显示终端中的diff输出。

alt text http://img25.imageshack.us/img25/8597/colordiff.png

您需要colordiff,可以通过apt或macports安装。

以下bash函数将允许用户在您选择的VCS的工作目录下键入“dif”(无需指定它是hg还是svn)。

function dif {
   if [ -d .hg ]; then
       VC='hg'
   elif [ -d .svn ]; then
       VC='svn'
   else
       echo "cannot find VC type"
       return 1
   fi
   $VC diff $1 | colordiff | less -R
}

添加对其他VCS工具(git,cvs等)的支持应该很容易。

此外,如果你安装了UVC(根据Ryan Wilcox的回答),上面的脚本可以简化为:

function dif {
   uvc diff $1 | colordiff | less -R
}

答案 1 :(得分:3)

还有一些“将所有常见的VCS命令包装到一个实用程序中”项目。 pyvcsUVC是我想到的两个。也许这些会做你想要的?

答案 2 :(得分:0)

试试Diffuse。它将找出合适的版本控制系统并显示具有良好语法高亮的差异。