如何在git功能分支工作流中处理xml/html?

kro*_*old 20 html xml git merge

我们的项目在代码相当近的范围内工作(在代码的相当小的地理区域中并行发生了很多变化),而我们的基于特征分支的git工作流对我们的java代码非常有用.

但是xml/html的东西效果不好.简单的无关更改(设计者添加了一个周围的div,一个开发人员更改了一个元素的id)给出了非常糟糕的合并.

我意识到如何处理这个问题可能有几种选择.一个好的git xml合并将是最佳的,或者限制重新格式化xml/html代码.不在如此紧密的地方工作将是另一个(不可接受的)选择.

你如何有效地解决这个问题?

Jak*_*ski 18

Git允许自定义合并驱动程序,通过每个路径的gitattributes选择(例如,对于所有*.xml文件).

您需要找到的是一个支持XML的合并驱动程序,还可能编写一个简单的脚本来转换Git约定和所说的合并驱动程序约定.例如,XML :: Merge Perl模块.有XyDiff,但看起来它缺乏三向合并(我想对于XML构建三维合并来自差异,如在Diff3论文的正式调查(PDF)中描述的那样不起作用).您还可以阅读XML博客文章(或其中引用的文章)的匹配,差异和合并.

另一种解决方案是取消设置 XML文件的合并属性(它们将被视为二进制文件和合并冲突),并使用一些图形合并工具来解决合并冲突,可能是通过git mergetool.


Von*_*onC 5

如果您知道可以自动执行某些与xml文件合并的合并问题,则可以编写这些解决方案的脚本.
如果有脚本,您可以从为xml/xhtml文件定制的合并驱动程序中调用它们,仅在某些目录中.

这里的合并驱动的(很简单).

这样,任何仍然存在的冲突(因为合并驱动程序脚本没有解决它)都是需要解决的合法合并问题.