git - 比 SVN 或 Git 更喜欢 CVS 的原因

标签 git svn language-agnostic version-control cvs

<分区>

我刚找到一个开源项目,它仍然使用 CVS。我想知道现在是否还有任何理由比 SVN 或 Git 更喜欢 CVS。 (我不认为懒得迁移是答案!;-))

CVS 有其他两个所缺少的吗?比如,支持 $OS 还是 $fancy_tool?

在“What are the advantages of using SVN over CVS? ” 有详尽的答案为什么不使用 CVS。但我想反过来问。 CVS 不可能一无是处。或者是?

最佳答案

我仍然使用 CVS 来处理我自己的一些个人资料。

与 Git 不同,您可以轻松地只 checkout 存储库的一个子集。

并且 CVS 为每个文件分配顺序版本号(1.1、1.2、1.3、...)。在 Git 中,版本号是 40 个字符的十六进制校验和。在 SVN 中,修订号在整个存储库中是连续的;给定的数字适用于整个存储库。

并且 CVS 允许您在 check out 文件时将版本号扩展到每个文件中,从而无需引用文件来自的存储库即可轻松识别文件的版本。

因此,当存储库是大量不相关文件的集合时,我发现 CVS(有时甚至是 RCS)很方便,而且我更感兴趣的是跟踪单个文件的更改,但作为一个整体对存储库进行修订并不是特别有意义.

(如果存储库包含用于构建单个程序或库的源文件,情况就不会如此;在这种情况下,您需要整个项目的连贯历史。)

最后,CVS 以相对简单的格式将每个文件的历史记录存储在单个文件中(与 RCS 使用的格式相同)。至少有一次,我不得不手动重建已保存的已损坏的 CVS 文件。我不确定如何使用 SVN 或 Git 做到这一点。

更新:这个问题引起了一些无法解释的反对票。我只能猜测原因(我不太担心偶尔的反对票),但也​​许有些读者认为我提倡 CVS 是比 SVN 或 Git 更好的系统。我不是;我只是指出 CVS 在某些相当狭窄的情况下可能具有一些优势。

关于git - 比 SVN 或 Git 更喜欢 CVS 的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7869872/

相关文章:

git init 模板,替换修改后的钩子(Hook)

SVN - 跳过路径

svn - 无法连接到存储库浏览器中的存储库

linux - 是否有像 Git 一样的 SVN 交互式提交菜单 --interactive?

algorithm - 通过适应度函数从种群中选择个体

git revert 一个特定的提交避免 merge

jquery - 使用 GitHub API V3 从组织获取私有(private) repo

git - 尝试备份 Gitlab 时出错

language-agnostic - 检测程序中不必要的递归调用的工具?

exception - 为什么不使用异常作为常规控制流?