我的第一个大目录合并过程很艰难,希望能找到有关为什么会出现这些错误的线索。
一周前我将trunk/中的代码分支出来,并对branch/myBranch中的代码进行了很多修改,并决定是时候将它们合并到trunk/中了。此后主干中没有任何代码被触及,它与新代码分支时完全相同,所以我认为这意味着不会出现冲突。
似乎是错误的假设,据我所知,在尝试将新代码合并到主干和丢失文件的报告时会遇到一堆冲突。有人可以澄清为什么会这样吗?
这是基本事实:
- 该代码在修订版 19466 中进行了分支。
- 后备箱一直没有动过。无更改(上次更改版本:19453)。
- 该分支(不幸的是?)在本地完成,并包含了一些更改。
- 我尝试使用以下命令合并来自分支介绍主干的更改
svn merge -r19466:HEAD branches/myBranch trunk/
:(不管我是站在后备箱里跳过最后一个参数,还是只做上面的事情都没有关系) Subversion 抱怨缺少文件 fooDao。
! C trunk/fooDao.java
> local missing, incoming edit upon merge
该文件在创建分支的同一提交中重命名(19466),但我认为 subversion 应该选择它,因为它是使用
svn move
. 日志显示了它的祖先:... A /branches/myBranch/fooDao.java(来自 /branches/myBranch/fooDato.java:19452)
- 如果您想知道为什么即使没有代码更改,修订号也会增加,那是因为它是一个包含许多其他(活动项目)的共享存储库。