在查看 svn 和 cvs 时,我不断看到 RCS 和 RCS 关键字。我不知道 RCS 是什么以及 RCS 关键字是什么。它们似乎是一个功能,但没有真正解释它们的作用。
问问题
5128 次
2 回答
7
此功能是一种将文件中的某些标记替换为用户、日期、修订号等元信息的方法。这些关键字来自 RCS(修订控制系统),一个基于单用户文件的版本控制系统,现在大概没人再使用了。
Subversion (svn) 和并发版本控制系统(CVS) 是集中式版本控制系统,而不是分布式版本控制系统 (DVCS)。
CVS 支持的关键字与 RCS 大致相同(因为 CVS 最初是基于 RCS 并使用相同的后端文件格式),如果文件在签入时没有特别标记,则会自动替换它们。
Subversion(自我声明的 CVS 继任者)有一组类似的可以替换的关键字,但不会自动替换它们,只有在您设置一些文件属性说明要替换哪些关键字时。(对于某些关键字,语法与相应的 CVS 关键字有点不同。)
著名的分布式 VCS -es 是 Git、Mercurial、Bazaar - 我只知道 Git,有关 Bazaar 和 Mercurial 的信息在 google 上搜索。通常,由于这些通常使用当前树的哈希作为版本标识符,因此它们不能在提交时插入此标识符,而是在结帐时执行此操作,如果有的话,并且仅在配置为这样做时。
- Git 有一个有限的关键字替换(只有 $Id$ => $Id: object-id $ 当给定文件的正确属性时),但您可以编写并插入一对在提交和签出时执行的过滤器脚本,然后做类似的事情。
- Mercurial 同样没有内置替代品,但支持扩展,我刚刚找到一个声称可以做到这一点的。
- Bazaar 有一个处于实验状态的插件可以做这些事情。
于 2011-03-10T10:42:07.403 回答