我经常在 C/C++ 源代码中遇到以下语句:
$Id: lzio.c,v 1.24 2003/03/20 16:00:56 roberto Exp $
$Id: file name, version, timestamp, creator Exp $
您知道哪些软件会产生这些“签名”吗?
我经常在 C/C++ 源代码中遇到以下语句:
$Id: lzio.c,v 1.24 2003/03/20 16:00:56 roberto Exp $
$Id: file name, version, timestamp, creator Exp $
您知道哪些软件会产生这些“签名”吗?
subversion 中的关键字替换会产生此类信息,尤其是 Id:
ID
此关键字是其他关键字的压缩组合。它的替换看起来像 $Id: calc.c 148 2006-07-28 21:30:43Z sally $,并被解释为文件 calc.c 最后一次更改是在 2006 年 7 月 28 日晚上在修订版 148 中由用户sally。
你可以告诉 subversion 使用 svn:keywords 插入这些值
为了告诉 Subversion 是否替换特定文件上的关键字,我们再次转向与属性相关的子命令。svn:keywords 属性在版本化文件上设置时,控制将在该文件上替换哪些关键字。该值是在上表中找到的关键字名称或别名的空格分隔列表
您还可以通过编辑配置使这些替换自动进行:
Subversion 还提供了 auto-props 功能,它允许您创建文件名模式到属性名称和值的映射。这些映射在您的运行时配置区域中进行。它们再次影响添加和导入,不仅可以覆盖 Subversion 在这些操作期间做出的任何默认 MIME 类型决策,它们还可以设置额外的 Subversion 或自定义属性。例如,您可能会创建一个映射,说明任何时候添加 JPEG 文件——匹配模式 *.jpg 的文件——Subversion 应该自动将这些文件的 svn:mime-type 属性设置为 image/jpeg。或者任何匹配 *.cpp 的文件都应该将 svn:eol-style 设置为 native,并将 svn:keywords 设置为 Id。Auto-prop 支持可能是 Subversion 工具箱中最方便的属性相关工具。
CVS 等版本控制系统可以生成这样的标签。
RCS 和 CVS 都生成看起来完全一样的字符串。
我见过一些 vim 设置会自动填充这些值。SVN 可以在 pre 和 post 提交钩子上获取这些值,以在提交日志中填充默认信息。
Perforce支持这些关键词中的一些(不确定全部)。