scmdiff标记文件的签入版本与正在编辑的文件之间的差异.它通过着色改变的线条来标记它.有没有办法使用vimdiff
-style分割查看更改而不是仅仅更改更改的行?
例如,如果abc
是版本控制下的文件,那么我可以使用以下内容abc
在一侧显示当前版本,在另一侧显示最新版本:
tkdiff abc
我也可以这样做:
tkdiff -r1 -r5 abc
显示版本1和5之间的差异.最后,我可以这样做:
tkdiff -r1 abc
查看当前版本和版本1之间的区别.
这是我想在文件的两个版本之间看到的差异,只使用Vim.可以吗?我在Linux下工作,我使用Bitkeeper进行版本控制.
我用以下方式使用vimdiff和subversion:
当我想查看特定文件或一组文件的vimdiff差异时,我会:
svn diff [files] --diff-cmd svd
这里--diff-cmd指示subversion使用命令"svd"而不是默认的diff行为.svd是以下shell脚本:
#!/bin/bash shift 5; /usr/bin/vimdiff -f "$@"
你没有提到你的操作系统,上面的内容适用于Linux和OS X.
我使用vcscommand插件与VCS进行交互.
从描述:
VIM 7插件可用于操作由VIM中的CVS,SVN,SVK和git控制的文件,包括使用vimdiff系统提交更改和执行差异.
特别是:VCSVimDiff
将拆分当前窗口并显示"vimdiff"与repo中的最新版本.您还可以指定一个修订号以将当前缓冲区与(即:VCSVimDiff -2
)进行比较,或者将两个修订号进行比较以相互区分.以下是文档中的相关部分:
:VCSVimDiff
使用vimdiff显示当前文件版本之间的差异.
如果未指定修订,则使用当前分支上的最新版本文件.使用一个参数,该参数将用作上述修订.使用两个参数,使用vimdiff显示两个修订之间的差异.
使用零个或一个参数,原始缓冲区用于执行vimdiff.当暂存缓冲区关闭时,原始缓冲区将返回正常模式.
使用上述方法启动vimdiff模式后,可以通过将单个版本参数传递给命令来添加其他vimdiff缓冲区.总共最多可以有4个vimdiff缓冲区.
使用该命令的2参数形式将vimdiff重置为仅2个版本.此外,在不同的文件上调用该命令将关闭以前的vimdiff缓冲区.