Git中不同的ident-style字符串方法?

Myk*_*sen 5 git cvs ident checkin

我正在计划我的公司从CVS过渡到Git,并且某些工程师希望我们仍然使用CVS关键字字符串,例如$Id: $.我已经阅读了有关使用ident设置实现此内容的所有内容.gitattributes,并且我理解为什么它是不合需要的,尽管对于较小的源树可能是可能的.(我们的来源很大,所以我认为这是不可能的.)

我们的工程师并不特别关心在文件中使用SHA1哈希.他们只想知道:

  1. 最后修改日期
  2. 提交者的名字
  3. 可能是提交消息

他们发现在浏览代码时在文件头中看到这些信息非常方便,我无法与之争论.

我想知道的是:

是否有任何方法可以在git commit之前对所有暂存的文件进行信息标记?换句话说,在$Id: $正在提交的文件的工作副本上运行perl命令 - 替换所需信息块?

这根本不需要任何.gitattributes行动.Git只需要知道如何合并两个这样的信息块,理想情况是选择后者.标记的信息只是新创建的版本中的一个文件更改.

我在预提交钩子中看到了这样做,但似乎有不同的意图 - 不是为了编辑文件,只是为了检查它们.我是对的吗?

没有人试过这种方法吗?对我来说,似乎比每次git更改版本时尝试过滤所有源文件更简单,这听起来像是.gitattributes这样.

非常感谢任何建议/警告/指针.

von*_*and 3

RCS(以及CVS)在结账$Id:$时进行扩展等,这些不在保存的文件中。但事实并非如此,有人可能会将 version 重命名为 plain 。如果有人想知道来自哪里,可以很好地回答,并且提供比 RCS 所能提供的更多详细信息。而且它是一个本地命令,无需访问 CVS 服务器(因此可以在任何地方使用,而且是即时的)。1.8.2-rc101.8.2filegit log filegit