9

我经常在 C/C++ 源代码中遇到以下语句:

$Id: lzio.c,v 1.24 2003/03/20 16:00:56 roberto Exp $

$Id: file name, version, timestamp, creator Exp $

您知道哪些软件会产生这些“签名”吗?

4

5 回答 5

7

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 工具箱中最方便的属性相关工具。

于 2008-12-06T15:41:26.467 回答
6

CVS 等版本控制系统可以生成这样的标签。

于 2008-12-06T14:09:21.940 回答
3

RCS 和 CVS 都生成看起来完全一样的字符串。

于 2008-12-06T14:10:16.510 回答
2

我见过一些 vim 设置会自动填充这些值。SVN 可以在 pre 和 post 提交钩子上获取这些值,以在提交日志中填充默认信息。

于 2008-12-06T14:19:12.343 回答
0

Perforce支持这些关键词中的一些(不确定全部)。

于 2008-12-06T15:37:11.327 回答