SVN合并帮助:在主干中创建的分支

问题描述

| 长话短说,我实质上是在我们的后备箱中创建了一个开发分支。 大约两周前,我决定在存储库中创建一个单独的分支是有意义的,因为我们最终要切换到Visual Studio2010。我没有像应该那样阅读太多的Subversion书籍。 基本结构如下:
REPO/
  Installer/
  Utilities/
  Main/
  Upgrade/
    Installer/
    Utilities/
    Main/
我创建的分支在哪里升级。在Main中进行了一些修改,并且在升级过程中对树和文件进行了大量修改。完全合并的最佳策略是什么? 非常感谢!     

解决方法

        嘿,实际上这是在主干中创建分支的一种不好的做法,但是既然完成了,就有一种合并代码的方法... 不要合并完整的树,而是合并单个文件夹。 例如; 如果您需要将分支合并回主干, 1.将ѭ1目录与with2合并 在这种情况下,请在本地系统上对整个树进行本地检出,然后转到目标目录(所有代码都将在此合并),在这种情况下为“ 2” 使用TortoiseSVN或通过命令行合并-
svn merge http://svn.example.com/repos/REPO/Installer
完成此活动后,建议您使用
svn move
将Branch移到另一个位置。在保留所有历史记录的同时,可以做到无害。     ,        您可以使用主干中的更改多次更新分支。它就像运行合并命令一样容易。 脚步 签出分支机构的副本。 如果您已经下载了分支的副本,请确保提交其中包含的所有待处理项。 为了确保一致性,将您的分支更新为总修订版(
svn update -r HEAD
)。 然后将您的更改从主干合并到分支中: svn合并http://svn.example.com/repos/trunk 运行上面的命令将简单地将修改从主干下载到沙箱中。在这里,您可以查看它们,解决任何冲突,以及在准备好...时。 将修改提交到您的分支。 至此,您的分支与干线同步。 另一方面,如果要通过分支的修改来更新主干,则必须非常小心。这称为重新整合,只能进行一次。也就是说,将分支重新集成到主干后,将无法再次运行此过程。 脚步 签出您的行李箱副本。 如果您的沙箱中已经有中继的副本,请确保提交您所做的所有未决更改。 如上面其他食谱所述,将分支同步到中继的最新更改。 确保更新到最新的磁头版本(
svn update -r HEAD
)。 然后将分支重新整合到主干中: svn merge-重新整合http://svn.example.com/repos/my-branch 运行上面的命令将简单地将所做的修改下载到您的沙箱中。在这里,您可以查看它们,解决任何冲突,以及在准备好...时。 在您的行李箱中提交修改。 到目前为止,您的中继与分支保持同步,但是您的分支没有用,您最好将其删除。如果要继续在分支中工作,则必须为此创建一个新的分支。 如果您不打算使分支无效,那么唯一的解决方案是创建具有差异的补丁文件,并确保两个代码库相等或手动复制修改。