<分区>
我刚找到一个开源项目,它仍然使用 CVS。我想知道现在是否还有任何理由比 SVN 或 Git 更喜欢 CVS。 (我不认为懒得迁移是答案!;-))
CVS 有其他两个所缺少的吗?比如,支持 $OS 还是 $fancy_tool?
在“What are the advantages of using SVN over CVS? ” 有详尽的答案为什么不使用 CVS。但我想反过来问。 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/