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