gpt4 book ai didi

git - Phabricator Arcanist arc land vs arc 修正

转载 作者:太空狗 更新时间:2023-10-29 13:50:34 26 4
gpt4 key购买 nike

我在我的团队中使用 Phabricator 和 Arcanist 进行代码审查。 “arc land”命令很棒,但有一种情况它对我们不起作用。

我们有一个 xml 文件,其中包含一个链表(每个元素都引用前一个元素)。我们不经常更改此文件,但偶尔会这样做。如果两个人同时进行更改,则会发生“无声冲突”,这意味着链表被破坏,因为两个新元素都链接到相同的前一个元素。这不是很难解决。但是 git 不会引发 merge 冲突。

所以当我们运行arc land时,会自动推送不正确的xml文件。我们不希望这样。

正确的操作是使用 arc amend,然后手动解决冲突,然后执行 git push(就像我们今天所做的那样,没有任何麻烦),或者您建议如何推进此操作?

最佳答案

一些可能的想法:

  • 您可以arc land --holdgit push 运行之前停止并检查更改,然后手动运行git push
  • 您可以添加本地 Git 预提交 Hook ,以便在 Git 允许提交之前验证 XML 文件。
  • 您可以在服务器上添加一个预接收 Hook ,以便在将 XML 文件推送到远程之前对其进行验证。
  • 您可以使用 gitattributes 中的 merge 指令覆盖 Git 的 merge 行为,并将默认 merge 替换为正确(或无法 merge )的 merge 。<
  • 您可以尝试用某种格式的数据替换 XML 文件,这些数据不具有这些不需要的 merge 属性,因为这个问题是一个普遍问题。
  • 您可以通过在文件中包含一些总是会发生冲突的字符串来强制 merge 失败。例如,将 lastNode="whatever" 之类的属性添加到容器元素(即,始终在第 1 行或其他任何内容),以便通过命名不同的最后节点(为确保它已被编辑,您可以检查 lastNode 在运行时是否正确)。如果文件是自动生成的,您可以简单地将一个随机数放在一个众所周知的行的注释中。

关于git - Phabricator Arcanist arc land vs arc 修正,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17594954/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com