我在SVN中遇到树冲突。这很奇怪!
我有标准的Trunk,Branches,Tags结构,并遵循多个团队模型。 Branch1,Branch2从Trunk创建并且并行激活
遵循的步骤:
1. Branch1 Work
:newfile.c
在Branch1
中添加并提交了Merge
2. Merge
:来自Branch1 - >中继线(成功;在主干中添加文件)
3. Branch2 Work
:从Trunk向下合并 - >店2。 (成功;文件在Branch2中添加)
4. Merge
:执行常规的Branch2工作并提交
5. newfile.c
:从Branch2到Trunk =>此步骤会引发newfile.c
Branch2团队正在为>svn merge file:///E:/Treeconflict_test/svnRepo/Branches/Br2 Trunk
--- Merging r3 through r8 into 'Trunk':
C Trunk\src\ARTransactionFeeDto2.java
U Trunk\pom.xml
G Trunk
Summary of conflicts:
Tree conflicts: 1
>svn status Trunk
M Trunk
C Trunk\src\ARTransactionFeeDto2.java
> local obstruction, incoming add upon merge
M Trunk\pom.xml
获得他们根本没有触及的树冲突。
为什么会这样呢?请问任何建议,这可以避免吗?这个问题让我烦恼不已。
PS:我使用了TortoiseSVN客户端1.6.0和TortoiseSVN 1.6.16 - 32位(均单独使用)
合并错误(上面的步骤5):
>svn log -v file:///E:/Treeconflict_test/svnRepo
------------------------------------------------------------------------
r8 | rohit | 2013-03-05 16:30:35 +0530 (Tue, 05 Mar 2013) | 1 line
Changed paths:
M /Branches/Br2/src/ARTransactionFeeDto2.java
br2 branch changes
------------------------------------------------------------------------
r7 | rohit | 2013-03-05 16:29:34 +0530 (Tue, 05 Mar 2013) | 1 line
Changed paths:
M /Branches/Br2
M /Branches/Br2/pom.xml
A /Branches/Br2/src/ARTransactionFeeDto2.java (from /Trunk/src/ARTransactionF
eeDto2.java:6)
dowm-merge from Trunk to branch-Br2
------------------------------------------------------------------------
r6 | rohit | 2013-03-05 16:26:56 +0530 (Tue, 05 Mar 2013) | 1 line
Changed paths:
M /Branches/Br2/pom.xml
br2 branch changes
------------------------------------------------------------------------
r5 | rohit | 2013-03-05 16:22:26 +0530 (Tue, 05 Mar 2013) | 1 line
Changed paths:
M /Trunk
M /Trunk/pom.xml
A /Trunk/src/ARTransactionFeeDto2.java (from /Branches/Br1/src/ARTransactionFeeDto2.java:4)
up-merge from branch-Br1 to Trunk
------------------------------------------------------------------------
r4 | rohit | 2013-03-05 16:20:48 +0530 (Tue, 05 Mar 2013) | 1 line
Changed paths:
M /Branches/Br1/pom.xml
A /Branches/Br1/src/ARTransactionFeeDto2.java
br1 changes
------------------------------------------------------------------------
r3 | rohit | 2013-03-05 16:19:07 +0530 (Tue, 05 Mar 2013) | 1 line
Changed paths:
A /Branches/Br2 (from /Trunk:2)
created branch br2
------------------------------------------------------------------------
r2 | rohit | 2013-03-05 16:18:57 +0530 (Tue, 05 Mar 2013) | 1 line
Changed paths:
A /Branches/Br1 (from /Trunk:1)
created branch Br1
------------------------------------------------------------------------
r1 | rohit | 2013-03-05 16:18:13 +0530 (Tue, 05 Mar 2013) | 1 line
Changed paths:
A /Branches
A /Tags
A /Trunk
A /Trunk/pom.xml
A /Trunk/src
A /Trunk/src/ARTransactionFeeDelegateResponse.java
A /Trunk/src/ARTransactionFeeDto.java
A /Trunk/src/ResponseARTransFeeDtlsDto.java
initial commit Trunk
------------------------------------------------------------------------
PFB svn repo log(上面的步骤1-4):
{{1}}
答案 0 :(得分:2)
在这个工作流程中,即使是1.6,也是不可能的。您必须显示所有命令和输出
根据日志,您是"XFAIL conflict from merge of add over versioned file"的受害者,在2009版"Tree Conflict"设计文档中提及。最重要的部分是
修正了r35341的预期
我不能说,如何将此修订版本转换为使用bugfix构建的TortoiseSVN。我将在最新的1.6(TortoiseSVN 1.6.16, Build 21511 - 32 Bit , 2011/06/01 19:00:35
)上测试您的工作流程。
我使用的TortoiseSVN 1.7.11, Build 23600 - 32 Bit
的日志(所有合并 - 基于GUI的本地存储库)
>svn log -v file:///Z:/Repo/
------------------------------------------------------------------------
r10 | Badger | 2013-03-05 17:32:32 +0600 (Вт, 05 мар 2013) | 2 lines
Changed paths:
M /trunk
M /trunk/Base.txt
M /trunk/C1.txt
M /trunk/C2.txt
Merge from branches/b2:
------------------------------------------------------------------------
r9 | Badger | 2013-03-05 17:27:42 +0600 (Вт, 05 мар 2013) | 1 line
Changed paths:
M /branches/b2/Base.txt
M /branches/b2/C1.txt
M /branches/b2/C2.txt
Anfanglichen Deutsch Korperregion
------------------------------------------------------------------------
r8 | Badger | 2013-03-05 17:19:28 +0600 (Вт, 05 мар 2013) | 2 lines
Changed paths:
M /branches/b2
M /branches/b2/Base.txt
M /branches/b2/C1.txt
M /branches/b2/C2.txt
A /branches/b2/Reference.txt (from /trunk/Reference.txt:7)
Merge from trunk
------------------------------------------------------------------------
r7 | Badger | 2013-03-05 17:15:29 +0600 (Вт, 05 мар 2013) | 1 line
Changed paths:
M /trunk
M /trunk/Base.txt
A /trunk/Reference.txt (from /branches/b1/Reference.txt:6)
Merge B1 branch changes
------------------------------------------------------------------------
r6 | Badger | 2013-03-05 17:12:26 +0600 (Вт, 05 мар 2013) | 1 line
Changed paths:
M /branches/b1/Base.txt
A /branches/b1/Reference.txt
Structure reflected
------------------------------------------------------------------------
r5 | Badger | 2013-03-05 17:09:46 +0600 (Вт, 05 мар 2013) | 1 line
Changed paths:
M /trunk/C1.txt
M /trunk/C2.txt
Edition 1
------------------------------------------------------------------------
r4 | Badger | 2013-03-05 17:06:38 +0600 (Вт, 05 мар 2013) | 1 line
Changed paths:
A /branches/b2 (from /trunk:3)
Branching for task2
------------------------------------------------------------------------
r3 | Badger | 2013-03-05 17:05:49 +0600 (Вт, 05 мар 2013) | 1 line
Changed paths:
A /branches/b1 (from /trunk:2)
Branching for task1
------------------------------------------------------------------------
r2 | Badger | 2013-03-05 17:03:21 +0600 (Вт, 05 мар 2013) | 1 line
Changed paths:
A /trunk/Base.txt
A /trunk/C1.txt
A /trunk/C2.txt
Basic set
------------------------------------------------------------------------
r1 | Badger | 2013-03-05 16:59:36 +0600 (Вт, 05 мар 2013) | 1 line
Changed paths:
A /branches
A /tags
A /trunk
Imported folder structure
------------------------------------------------------------------------
<强>评论强>:
我尽可能准确地重复你的行动
添加-上强>
使用1.6.16进行测试,得到描述结果,即使我在合并树之前将预先合并在分支文件中编辑到
加载项2
该死!!!它在最新的1.7中也不起作用。它让我疯狂
答案 1 :(得分:1)
错误消息可能看起来很神秘,但基本上解释了这个问题:
本地阻塞,合并后传入
您正在将r3从BR2移植到r8到中继线。问题是在r7中添加了ARTransactionFeeDto2.java
:
r7 | rohit | 2013-03-05 16:29:34 +0530 (Tue, 05 Mar 2013) | 1 line
Changed paths:
A /Branches/Br2/src/ARTransactionFeeDto2.java (from /Trunk/src/ARTransactionF
eeDto2.java:6)
...但是这样的更改无法移植到trunk,因为该文件已存在:
r5 | rohit | 2013-03-05 16:22:26 +0530 (Tue, 05 Mar 2013) | 1 line
Changed paths:
A /Trunk/src/ARTransactionFeeDto2.java (from /Branches/Br1/src/ARTransactionFeeDto2.java:4)
Subversion提供了非常复杂的方法来避免它,但我建议您只使用TortoiseSVN进行合并,当提示r7中的冲突时,您选择保留本地文件(无论如何都与传入文件相同)。
答案 2 :(得分:0)
我尝试使用SVN 1.7按照这些步骤(尽可能没有实际可用的命令列表),它似乎按预期工作。
我认为它可能不适合您,因为在将分支合并回主干时需要使用'--reintegrate'选项。您是否确定每次从任一分支合并回主干时都使用此选项?
如果您确实使用了该选项,请忽略此答案。