Svn 为什么将分支提交到仍然未触及的主干会导致冲突?
我的第一次大目录合并经历了一段艰难的时光,我希望能找到一些线索来解释我为什么会出现这些错误 一周前,我将trunk/中的代码进行了分支,并对branchs/myBranch中的代码进行了大量更改,决定将它们合并到trunk/中。从那时起,主干中就没有涉及任何代码,这与新代码分支时完全相同,因此我认为这意味着不会出现冲突 这似乎是错误的假设,据我所知,当试图将新代码合并到主干和丢失文件的报告中时,会遇到大量冲突。有人能澄清为什么会发生这种情况吗 这是基本事实:Svn 为什么将分支提交到仍然未触及的主干会导致冲突?,svn,branching-and-merging,Svn,Branching And Merging,我的第一次大目录合并经历了一段艰难的时光,我希望能找到一些线索来解释我为什么会出现这些错误 一周前,我将trunk/中的代码进行了分支,并对branchs/myBranch中的代码进行了大量更改,决定将它们合并到trunk/中。从那时起,主干中就没有涉及任何代码,这与新代码分支时完全相同,因此我认为这意味着不会出现冲突 这似乎是错误的假设,据我所知,当试图将新代码合并到主干和丢失文件的报告中时,会遇到大量冲突。有人能澄清为什么会发生这种情况吗 这是基本事实: 该守则在19466年修订时分门别类
- 该守则在19466年修订时分门别类
- 从那以后,这只箱子一直没有动过。无变更(上次变更版本:19453)
- 分支(不幸的是?)是在本地完成的,包含了一些更改
- 我尝试使用以下命令合并分支介绍主干中的更改:
。(不管我是站在后备箱里跳过最后一个论点,还是只是做上面的事情)svn merge-r19466:HEAD branchs/myBranch trunk/
- Subversion抱怨缺少一个文件fooDao。
!C trunk/fooDao.java
这个文件在创建分支的同一个提交中被重命名(19466),但我认为subversion应该接受这个文件,因为它是使用>本地丢失,合并时传入编辑
发布的。日志显示了它的祖先: 。。。 A/branchs/myBranch/fooDao.java(from/branchs/myBranch/fooDato.java:19452)svn move
- 如果您想知道为什么即使没有代码更改,修订号也会增加,那是因为它是一个包含许多其他(活动项目)的共享存储库李>
svn merge-r100:HEAD../branchs/myBranch./trunk
,只获取这些修订版中文件的更改
不幸的是,在创建分支之前,我在trunk/中进行了本地修改。这些修改被复制到新分支中,然后提交。因此,myBranch和trunk中的文件在创建分支时是不同的。为了纠正这种情况,我必须在创建分支之前找到一个修订版本来合并(比如说:rev99),然后从那里进行合并。
出现的任何冲突都可以通过选择“tf”(它们的完整文件)从冲突中的分支获取完整文件来解决。我可以做这个快速修复,因为行李箱没有动过,也没有任何变化
总而言之:为了避免问题,通过确保
- 中继中的所有本地修改都已提交
- 在服务器上进行复制。如“svn cp”中所述https://source.foo.com/svn/repos/myProj/branches/myBranch"