3

在我当前的项目中,我正在尝试使用 git 来控制文本文件,这些文本文件被从它们生成代码的软件使用。这本身不是问题,问题是每次我生成代码时,它都会自动更新这个文件的属性,比如生成代码的日期,以及我的名字。

你可以想象它看起来像这样:

SomeHeader{
  -SomeProperty : x
  -NameOfUserThatGenerateCode: myName
  -DateTimeCodeGenerated: 2013-07-23 06:28
  -SomeOtherProperty: y
}

我想要的是一种告诉 git 如果名称和 CodeGeneration 时间都更改(即:忽略有更改)说“没关系”的方法,但请注意“SomeProperty”是否更改为“z ”。

在第二种情况下,它将提交整个文件(带有更新的自动生成文件)。

有没有办法做到这一点?我认识到 git 确实在“文件”级别进行了更改,但我希望可能存在某种我可以绑定的预处理钩子,只有在 git 尝试比较文件更改时才会起作用。

对于那些关心的人,这将使我能够正确地控制 Rhapsody 文件。

4

1 回答 1

3

我会推荐:

http://git-scm.com/figures/18333fig0703-tn.png

这个想法是让该脚本在以下位置检测git add

  • 'SomeHeader' 属性文件的内容
  • 如果该文件的副本已更改为您需要保留的方式(在这种情况下,您会使用该副本的内容覆盖版本化文件)
  • 如果该文件的副本没有显着更改,在这种情况下,您无需修改​​实际的属性文件。

请注意,“保留副本”部分也可以由内容过滤器驱动程序smudge自动化,并在git checkout.

于 2013-07-24T07:27:33.727 回答