gpt4 book ai didi

svn - `svn merge` 产生与 `svn diff` 不同的结果

转载 作者:行者123 更新时间:2023-12-02 07:34:49 26 4
gpt4 key购买 nike

所以我曾经认为我对 svn 还算不错,但是这个特殊的问题阻碍了我......

我有一个主题分支,我在其中添加了一些文件并进行了一项细微修改。我合并了主干中从主题分支被剪切到头部发生的所有更改:

svn merge ^/trunk@revN ^/trunk@HEAD 将分支作为我的工作副本。

我将这些更改提交到分支,现在我的分支和主干之间的差异看起来像这样:

> svn diff ^/trunk ^/branches/KULRICE-5050 --summarize
D https://test.kuali.org/svn/rice/trunk/impl/src/main/groovy/org/kuali/rice/kim/impl/attribute/KimAttributeDataBo.groovy
M https://test.kuali.org/svn/rice/trunk/kim/kim-impl/src/test/groovy/org/kuali/rice/kim/impl/role/RolePermissionBoTest.groovy
A https://test.kuali.org/svn/rice/trunk/kim/kim-impl/src/test/groovy/org/kuali/rice/kim/impl/role/RoleResponsibilityActionBoTest.groovy
A https://test.kuali.org/svn/rice/trunk/kim/kim-impl/src/test/groovy/org/kuali/rice/kim/impl/role/RoleBoTest.groovy
...

换句话说,没有什么是我没想到的。这些是我在分支中更改的文件。

然后我尝试通过以下方式将分支合并到主干:

svn merge ^/trunk ^/branches/KULRICE-5050 将 trunk 作为我的工作副本。我没有修改 diff --summarize 显示的这些文件,而是最终看到以下内容:

> svn merge ^/trunk ^/branches/KULRICE-5050
--- Merging differences between repository URLs into '.':
D impl/src/main/groovy/org/kuali/rice/kim/impl/attribute/KimAttributeDataBo.groovy
U kim/kim-impl/src/test/groovy/org/kuali/rice/kim/impl/role/RolePermissionBoTest.groovy
Skipped 'kim/kim-impl/src/test/groovy/org/kuali/rice/kim/impl/role/RoleResponsibilityActionBoTest.groovy'
Skipped 'kim/kim-impl/src/test/groovy/org/kuali/rice/kim/impl/role/RoleBoTest.groovy'
Skipped 'kim/kim-impl/src/test/groovy/org/kuali/rice/kim/impl/role/RoleResponsibilityBoTest.groovy'
Skipped 'kim/kim-impl/src/test/groovy/org/kuali/rice/kim/impl/role/RoleMemberBoTest.groovy'
A kim/kim-impl/src/main/java/org/kuali/rice/kim/impl/role
...
...
Skipped 'kim/kim-api/src/main/java/org/kuali/rice/kim/api/role/RoleResponsibilityActionContract.java'
Summary of conflicts:
Skipped paths: 38
--- Merging r20279 through r20321 into '.':
...
...
Summary of conflicts:
Tree conflicts: 171
Skipped paths: 33
--- Reverse-merging r20321 through r20279 into '.':
...

上面的 ... 表示我省略了详细信息的地方。这只是一堆更新和文件冲突,应该远离我的变更集。

当我指定的只是“给我主干和分支之间的差异并将其合并到我的主干 WC 中”时,在这种情况下到底为什么要尝试在不同修订范围之间应用合并和反向合并?它不应该对修订范围做任何事情。您知道为什么会发生这种情况以及我需要在 svn 命令中修改什么来纠正它吗?

我的svn客户端是svn,版本1.6.15(r1038135),svn服务器是1.4.5(r25188)。服务器版本不在我的控制范围内,因此使用旧的合并方式而不是使用 svn 合并跟踪。

最佳答案

也许这是“橡皮鸭”在起作用,但这里的答案是我需要为我的合并命令指定 --ignore-ancestry 。否则,即使服务器仍然是 1.4 并且不支持合并跟踪,1.6 svn 客户端也会隐式地代表我尝试进行合并跟踪。

关于svn - `svn merge` 产生与 `svn diff` 不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5956615/

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