我在我的团队中使用Phabricator和Arcanist进行代码审查。'arc‘命令很棒,但有一种情况下它对我们不起作用。
我们只有一个xml文件,其中包含一个链表(每个元素引用一个前一个元素)。我们并不经常修改这个文件,但偶尔会这样做。如果两个人同时进行更改,则会发生“静默冲突”,这意味着链表被破坏,因为两个新元素都链接到相同的前一个元素。这不是很难解决的问题。但是git不会引发合并冲突。
因此,当我们运行arc时,错误的xml文件会被自动推送。我们不想这样。
正确的做法是使用arc moving,然后手动解决冲突,然后使用git推送(就像我们今天做的那样,没有任何麻烦),或者您建议如何推进这一过程?
发布于 2013-07-12 07:49:37
一些可能的想法:
git push运行之前通过arc land --hold停止并检查更改,然后手动运行git push。git push的合并行为,将默认的合并替换为正确的合并(或合并失败)。lastNode="whatever"这样的属性(例如,总是在第1行或其他任何地方),这样,通过命名不同的最后一个节点,两次编辑将始终在该行上发生冲突(为了确保这是被编辑的,您可以在运行时检查lastNode是否正确)。如果文件是自动生成的,您只需在熟悉的行的注释中添加一个随机数即可。https://stackoverflow.com/questions/17594954
复制相似问题