gpt4 book ai didi

svn merge --dry-run 显示 svn 差异

转载 作者:行者123 更新时间:2023-12-04 20:25:04 25 4
gpt4 key购买 nike

我正在使用(历史上)手动合并的代码库,而不是通过 svn merge .我试图通过向每个人证明合并是多么有用来改变这一点 - 但是当我进行试运行时,我得到了这个:

$ svn merge [[Repo URL]] . -c 21355,21358,21364,21370,21371,21373 --dry-run
--- Merging r21355 into '.':
U [[File 1]]
--- Merging r21355 into '[[dir]]':
U [[dir]]/[[File 2]]
U [[dir]]/[[File 3]]
--- Merging r21358 into '[[dir]]':
U [[dir]]/[[File 4]]
--- Merging r21364 into '[[dir]]':
U [[dir]]/[[File 2]]
C [[dir]]/[[File 4]]
--- Merging r21370 into '[[dir]]':
U [[dir]]/[[File 5]]
--- Merging r21371 into '[[dir]]':
U [[dir]]/[[File 5]]
--- Merging r21373 into '[[dir]]':
C [[dir]]/[[File 5]]
U [[dir]]/[[File 6]]
Summary of conflicts:
Text conflicts: 2

我有两个文件(分别列为 4 和 5),它们在一次合并后幸存下来,只是为了与最后一个发生冲突。我正在尝试弄清楚现在的冲突是什么,看看我是否可以解决它。如果我可以强制 svn 吐出两个冲突更改的差异,我会很高兴。

我检查了最窄目录的新工作副本,当我在没有试运行的情况下运行合并时,我得到:
--- Merging r21355 into '.':
U [[File 3]]
--- Merging r21358 into '.':
U [[File 4]]
--- Merging r21364 into '.':
G [[File 4]]
--- Merging r21370 into '.':
U [[File 5]]
--- Merging r21371 into '.':
G [[File 5]]
--- Merging r21373 into '.':
G [[File 5]]

(文件 1、2 和 6 位于其他地方)

所以,现在我特别困惑——dry run 报告冲突,但是当合并实际运行时,它成功了吗?这是预期的行为吗?我承认我不是 SVN 巫师,但我很困惑。

最佳答案

这是 --dry-run 的预期行为,它不会修改文件系统。

因为您指定了单独的修订,这些修订将一个接一个地单独应用。 G在合并输出中意味着发生了合并 - svn 对已经有本地更改的文件进行了更改。

详细:

  • r21358 修改文件 4。
  • 在正常合并中,文件 4 现在具有本地更改,并且 r21364 将这些更改合并在一起,因为差异与文件的当前状态匹配。
  • 在试运行中,文件 4 没有被 r21358 更改。该文件与下一个修订版 r21364 所期望的不匹配,因此您会遇到冲突。
  • 同样的事情发生在 r21373 上 - r21370 或 r21371 修改了它适用的文件的同一部分。
  • r21371 不受此影响,因为它影响文件 5 的不同部分,而不是 r21370。

  • 一旦您解决了所有这些问题,您就可以一次性合并所有这些,而无需指定单独的修订版本,并且试运行和常规合并之间的这种差异将消失。

    关于svn merge --dry-run 显示 svn 差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16527916/

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