合并时忽略某些xml行

时间:2014-05-12 08:19:25

标签: xml git

我们正在通过sourcetree使用git来处理涉及HP UFT对象存储库的项目。

在我们的对象存储库文件中有一个日期行,它不会被git自动处理,因此每次合并两个存储库时,我们基本上都需要选择我们要保留的日期。日期本身永远不会被使用,也不需要,并且存储库中的每个对象都有一个日期(每个xml约50个),所以这是一个烦人的任务。

有没有办法让git忽略日期行?如果日期保持原样而不是更新,这并不重要。或者让git始终用新日期覆盖旧日期。它看起来像这样(挪威日期):

<qtpRep:LastUpdateTime>6. mai 2014 12:03:22</qtpRep:LastUpdateTime>

对象存储库文件是通过UFT创建/更新的xml文件,这意味着代码是自动生成的,因此可以连续更新这些文件中的日期。

2 个答案:

答案 0 :(得分:1)

您可以在a .gitattributes file中使用明确的内容文件管理器,以便

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

(来自Pro Git Book

这将允许git add 上自动将元素<qtpRep:LastUpdateTime>内容设置为固定值,而不是自动生成的值。

*.xml     filter=fixedDate

git config --global filter.fixedDate.clean cleanDate

在&#34; clean&#34;中声明的脚本fixedDate过滤器(此处为cleanDate)可以解析正在添加的文件的内容,并将日期替换为固定日期。

该脚本和.gitattributes可以在同一个git仓库中存储和分发,但所有用户都需要激活过滤器,以便在所有克隆的回购中一致地使用。

答案 1 :(得分:0)

(如何编写完整的注释?我在stackoverflow上的注释所做的就是编写一个连续的文本行。)

我创建了一个存储库并添加了一个名为.gitattributes的文件,其中包含一行:

*.xml filter=fixedDate

然后我在windows cmd中运行了以下内容:

git config --global filter.fixedDate.clean 'perl -pe "s/\\\$Date[^\\\$]*\\\$/\\\$Date\\\$/"'

这只返回了git配置选项。所以我认为它运行正常?或者git是否返回选项而不是错误消息?

然后我推送了一个包含以下内容的.xml文件:

$Date: 123$

正常推送文件而不更改内容。

http://git-scm.com/docs/gitattributes的解释并没有多大帮助。