我在团队中使用Phabricator和Arcanist进行代码审查.'arc land'命令非常棒,但有一种情况对我们不起作用.
我们有一个xml文件,它包含一个链表(每个元素都指向一个前一个元素).我们不会经常对此文件进行更改,但偶尔会对其进行更改.如果两个人同时进行更改,则会发生"无声冲突",这意味着链接列表被破坏,因为两个新元素都链接到同一个前一个元素.这不是很难解决.但是git没有引发合并冲突.
因此,当我们运行arc land时,会自动推送不正确的xml文件.我们不希望这样.
正确的行动是使用弧修正,然后手动解决该冲突,然后是git push(就像我们今天没有任何麻烦),或者你会如何建议继续前进?
一些可能的想法:
arc land --hold在git push运行之前停止并检查更改,然后git push手动运行.merge指令覆盖Git的合并行为gitattributes,并将默认合并替换为使其正确(或无法合并)的合并行为.lastNode="whatever"容器元素的属性(即,始终在第1行或其他任何位置),以便通过命名不同的最后节点,两行编辑总是在该行上发生冲突(为了确保编辑它,您可以检查lastNode在运行时是正确的).如果文件是自动生成的,您只需将一个随机数放在一条众所周知的行上.