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