我正在计划我的公司从 CVS 过渡到 Git,并且某些工程师希望我们仍然可以使用 CVS 关键字字符串,例如$Id: $
. 我已经阅读了有关使用ident设置实现这一点的所有内容.gitattributes
,并且我理解为什么它是不可取的,尽管对于较小的源代码树可能是可行的。(我们的资源很大,所以我认为这是不可能的。)
我们的工程师并不特别关心文件中的 SHA1 哈希值。他们只想知道:
- 最后修改日期
- 提交者的名字
- 可能是提交消息
他们发现在浏览代码时在文件头中查看此信息非常方便,我对此无可争辩。
我想知道的是:
有没有办法在 git commit 之前对所有暂存文件进行信息标记?换句话说,要在$Id: $
提交的文件的工作副本上运行一个 perl 命令——替换为所需的信息块?
这根本不需要任何.gitattributes
操作。Git 只需要知道如何合并两个这样的信息块,最好选择后一个。加盖信息只是新创建版本中的一个文件更改。
我在 pre-commit 钩子中查看了这样做,但它似乎有不同的意图——不是为了编辑文件,只是为了检查它们。我说得对吗?
没有人尝试过这种方法吗?对我来说,这似乎比每次 git 更改版本时都尝试过滤所有源文件更简单,就像它听起来的那样.gitattributes
。
非常感谢任何建议/警告/指针。