我在Subversion中有一个带有几个分支的源代码树.我刚刚在一个活跃的分支中完成了一个相当激烈的调试会话,现在需要将更改合并到新分支.最近,在旧分支中的所有开发(显然)之后但在我提交所有调试之前,新分支被取下了trunk(代表已发布的代码).svn merge但是,尝试不会合并所有已添加的文件.它增加了一些,但不是全部.
这是时间表:
正如预期的那样,有许多变化,包括新文件,但不是全部.是因为我合并的版本范围包括dev2分支的版本吗?或者我应该合并到主干然后下降到dev2?
编辑:所有代码完全提交到Subversion.但我认为可能发生的事情是文件添加不会通过合并传播.也就是说,之前合并到 DEV1增加了一些文件,但合并从 DEV1涵盖现有合并提交不包括添加的文件.
但我还在检查.
Jas*_*onZ 30
我一直都知道svn警告是颠覆的迹象表明你以某种方式搞砸了.然后我遇到了上面的情况,我从一个分支合并得到了很多跳过的文件,但我知道我有合并的正确路径.跳过的文件是在分支上添加和更改但在主干上尚未存在的所有文件.
然后我意识到所有这些文件已经存在,虽然没有版本化,但是在我的工作副本上还没有 - 我在一周之前完成了一次测试合并(不是干运行)并且还原了,但是这些文件从来没有被我的SVN物理删除客户.一旦我从我的工作副本中删除它们,这个问题就消失了!
Bla*_*jac 29
以下陈述不正确:
在跨多个修订版进行合并时,添加到分支然后在分支上更改的文件不会被添加
这意味着合并完全被打破.
进行合并时,您需要确保合并创建该文件的修订版,否则您将收到有关无目标的警告.
需要注意的另一件事是,如果你合并到一个工作副本,然后决定你不满意并恢复一切,新添加的文件仍将在工作副本中,所以如果你再次合并,未版本控制的文件将阻止新文件的合并,因此您将错过它们.因此,运行"svn status"并删除未版本控制的文件将确保合并正常.
不应该关于添加空文件的注释,因为新文件没有来自何处的历史记录.换句话说,它不是副本,因此"svn log"不会显示其历史记录.最后,如果文件是一个千兆字节的照片,你不希望将它合并到一个新文件中,因为那时存储库将有两个完全相同的上下文副本.使用历史记录进行合并和复制可以节省存储库存储(至少在放入代理共享之前).
| 归档时间: |
|
| 查看次数: |
26452 次 |
| 最近记录: |