我有一个有点雄心勃勃的开发人员,不了解 SVN 中的分支,并提出了自己的解决方案。他们需要做出重大改变,但不想阻碍主干中的任何错误修复。因此,他们为此更改创建了一个与主项目文件夹处于同一级别的新文件夹。
原版看起来像这样(rev 100)
/bigProj/branch
/tag
/trunk/config
/docs
/src
新文件夹看起来像这样(版本 150)
/bigProjChange/trunk/config
/docs
/src
我想做的,是将
bigProjChange
的内容空运到 bigProj
的分支中,或者将这大约 50 个修订附加到 bigProj
主干的末尾(没有错误修复,所以这创造力没有任何作用)。然后吹走bigProjChange
,因为它造成了混乱。
有没有办法做到这一点并保留
bigProjChange
中发生的所有事情的更改/评论?还是我一直在获取 bigProjChange
第 150 版的内容并对 bigProj
的主干进行大规模更新?
如果
bigProj
和 bigProjChanged
都位于同一个存储库中,您可以像处理任何分支一样简单地 svn merge
它们。请记住,所谓的 标准布局 与 trunk
/branches
/tags
纯粹是按照惯例。对于 Subversion,目录名称没有区别。
解决此问题的简单方法就像进行任何重新集成合并一样:
svn switch ^/bigProj/trunk
svn merge ^/bigProjChanged/trunk .
# resolve conflicts, if any
svn commit -m"Reintegrate bigProjChanged"
svn rm ^/bigProjChanged -m"Blow away!"