gpt4 book ai didi

svn - 冲突后 svn merge left、right 和工作文件之间的差异

转载 作者:行者123 更新时间:2023-12-01 23:16:32 24 4
gpt4 key购买 nike

当从我的开发团队的主干执行“svn 合并”到分支时,我们偶尔会遇到合并冲突,产生带有后缀名的文件:*.merge-right.r5004, * .merge-left.r4521*.working。我搜索了整个 Subversions 的文档,但他们的解释并没有多大用处。我收集了以下内容:

  • *.merge-right.r5004 = 主干版本
  • *.merge-left.r4521 = ?
  • *.working = 分支版本

我似乎无法弄清楚merge-left.r4521是什么。如果答案是它只是分支中文件的旧版本,那么为什么是 4521?

最佳答案

假设有两个分支,并且分支 HEAD 中的最后一个 ( A ) 修订版是 9 ,而它是 6在分支机构B .

何时 cd B; svn merge -r 5:8 ^/braches/A运行时,svn 将尝试在 5 之间应用增量。和8来自分行 A在 Twig 上B .

(换句话说,更改集 78 将应用于 B )

common
ancestor left right
(1)━━┱───(3)──(5)──(7)──(8)──(9) # branch A
┃ └┄┄┄┄┬┄┄┄┄┘
┃ ↓
┗━(2)━━(4)━━(6) # branch B
working

如果增量应用干净,那就很好。

假设在更改集中修改了一些行 3 ,并且相同的源代码行在更改集中进行了不同的修改 4 .

如果 delta ( 58 ) 没有触及这些线,一切仍然很好。

如果 delta ( 58 ) 还修改了什么 34确实如此,更改无法自动合并,并且 svn 使文件处于冲突状态:

  • file --- 文件以 ( workingleftright ) 分隔
  • file.working --- 分支中的文件状态 B@6
  • file.merge-left --- 分支中的文件状态 A@5
  • file.merge-right --- 分支中的文件状态 A@8

如果您手动编辑这样的文件,您有几个选择 --- 保留 working (您的版本),保留right (他们的版本;其他分支版本)或手动合并更改。

Left本身没有用,没有必要保留left (他们的旧版本)在文件中。

但是,它对于工具很有用。 leftright是变更集。

例如,当您看到:

<<<<<<< .working

life_universe_and_everything = 13

||||||| .merge-left.r5

life_universe_and_everything = "13"

=======

life_universe_and_everything = "42"

>>>>>>> .merge-right.r8

在分行A , "13" (str) 更改为 "42" .

分公司B13 (整数)。

也许你想要42 (int) 当您手动协调此冲突时。

关于svn - 冲突后 svn merge left、right 和工作文件之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7679113/

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