2010-12-16 171 views
2

我有一个git diff问题。让我先填写你的历史。git diff忽略文件中的模式

我刚刚得到一个客户的相当不受欢迎的项目。问题是他们在scm中有2个分支。这两个分支已经很长时间没有合并过,现在它们必须合并它们。大部分更改都很简单,所以通过git进行合并只需要大约30分钟。

如何,我的客户不相信合并过程可以自动化。因此,他们希望通过在所有4版本的代码(基本版本和版本a,基本版本和版本b,a和b等)之间具有差异列表来检查合并。

这也是相当微不足道的,但问题来了。由于这些分支之间有很多变化,比较列表非常长(每个大约50Mb),因此列表是无用的。现在我的客户希望将这些更改分组。

这些'分组差异'有4个主要的群体。我想让git diff能够在时间上忽略它上面的单个组。

g1:有很多斜杠改变了方向。因此,我希望git能够解释/和\。我已经发现如何让git忽略整行,如果它包含一个斜线,但这不是我想要的,因为路径(斜杠来自哪里)可能已经改变。

g2:除了我有更多的符号涉及之外,这个问题与上面的结构非常相似。在日志中有很多格式已经改变。大部分与丹麦语字母有关,即'æ'已更改为'& aelig';','ø'已更改为'& oslash';'等等。

g3:很多评论已被更改。客户担心一些'* /'可能没有被合并。我看不到如何验证这一点。你们中的任何一位专家都有想法?

g4:以上未提及的所有内容。这被认为是真正的变化。

+0

_仅限于30 **分钟**?!?这是一个疯狂的时间为一个微不足道的合并 – knittl 2010-12-16 20:37:41

+0

我说*大多数*是微不足道的。有几个冲突需要我的注意;) – user1407209 2010-12-17 07:06:25

回答

0

你也许能够写出一些东西来分析差异并删除或消除其中的一些变化。一些正则表达式的魔法可能会帮助你。我认为这最适用于g1和g2。

不知道该怎么办g3。

+0

我希望避免后处理。我曾经使用超越比较,它有一个选项来设置比较规则。我用它然后忽略日志文件中的时间戳。我希望在差异中有类似的东西。 我同意你有关g3,我不认为有什么要做,除了让客户审查他们自己的文件:) – user1407209 2010-12-16 20:34:36