我一直希望能够得到一个相当优雅的方式让vimdiff使用CVS控制文件。 我在互联网上发现了许多(有点hacky)脚本( 这里最好的例子)基本上将你正在编辑的文件从CVS检出到临时文件,并vimdiff这两个。 这些都没有考虑到分支,并且总是假设你在MAIN工作,这对我来说完全没用。

所以,我的问题是这样的:有没有人在那里找到一个不错的解决方案比这个脚本更多?

或者失败了,是否有人对他们如何实现这一点有任何想法,或者建议您认为哪些功能对于这样做至关重要? 我的意图是,如果没有人可以建议已经构建的解决方案来使用或构建,我们从这里开始构建一个。

===============>>#1 票数:3 已采纳

我一直在研究类似的脚本: http//github.com/ghewgill/vim-scmdiff (事实上​​,它们可能具有相同的祖先)。 我没有使用scmdiff与cvs,但它应该对你检查的分支做一个差异。 您还可以指定要针对特定​​修订进行区分(使用:D 修订版 )。 希望这有帮助,如果你有所改进,可以随时做出贡献!

===============>>#2 票数:1

@Greg Hewgill:谢谢你的剧本! 我有几个问题,所以这就是我要改变的:

第21行:

< map <silent> <C-d> :call <SID>scmToggle()<CR>
--
> map <silent> <C-h> :call <SID>scmToggle()<CR>

我使用Ctrl - d进行向下翻页(懒得一直移动到PdDn),所以不得不切换到Ctrl-h。

第112行:

<         let cmd = 'cd ' . g:scmBufPath . ' && ' . g:scmDiffCommand . ' diff ' . g:scmDiffRev . ' ' . expand('%:p') . ' > ' . tmpdiff
--
> if g:scmDiffUseAbsPaths 
>     let cmd = 'cd ' . g:scmBufPath . ' && ' . g:scmDiffCommand . ' diff ' . g:scmDiffRev . ' ' . expand('%:p') . ' > ' . tmpdiff
> else
>     let cmd = g:scmDiffCommand . ' diff ' . g:scmDiffRev . ' ' . bufname('%') . ' > ' . tmpdiff
> endif

我遇到了无法使用CVS的绝对路径的问题。 我不知道这是否是我们当地设置的奇怪之处,或者它是否是一个全球性的CVS事物。 所以,我已经制作了一个可配置的变量,你可以放在你的.vimrc中来代替使用相对路径。

它现在似乎正是我想要的,所以我会继续抨击,看看我是否能找到其他任何打破的东西,随时发布补丁。

编辑:忘记添加:如果你觉得它们值得,请随意在github上的脚本中添加这些更改。

===============>>#3 票数:0

VCSCommand是另一个用于VCS集成的主动维护的vim脚本。 它支持CVS / SVN / SVK / git。

我一直都在使用SVN,从来没有抱怨过。 快捷方式使用mapleader ,因此它们不太可能覆盖现有的映射。

===============>>#4 票数:0

您可以将调用更改为cvs以考虑分支。 那应该不是很难。 更难以改变整个函数并使分支工作变量(参数,会话,全局或其他)。

  ask by sanmiguel translate from so

未解决问题?本站智能推荐: