乌龟SVN - 将主干合并到分支 - 树冲突

3
我们使用的是SVN 1.8版本,我也使用Tortoise SVN 1.8。主要代码位于/project/trunk。为了进行大规模更改,我在/project/branches/x中创建了一个分支,该分支是/project/trunk的副本。
作为更改的一部分,我需要重新组织目录结构以处理多个客户端。当前,trunk的结构如下:
/project/trunk/process/xyz/file1.xml
/project/trunk/process/xyz/file2.xml

我想要更改结构,使其更像这样:
/project/trunk/process/xyz/client1/file1.xml
/project/trunk/process/xyz/client1/file2.xml

我尝试将文件拖到新文件夹中,并使用上下文菜单中的“SVN Move Here”选项。由于我正在分支上工作,因此需要更改主干中的file1.xml文件以解决生产问题。我希望在我的分支中获得这个更改,但是当我尝试在Tortoise SVN中进行合并时,会出现冲突,因为本地文件丢失。
选项只给了我解决、推迟或中止的选项。如何将更改从"/trunk/process/xyz/file1.xml"移到"/trunk/process/xyz/client1/file1.xml" 是最好的方式?
我在SVN方面有些新手,请多多包涵 :)

我认为你现在想要将“/trunk/process/xyz/file1.xml”中的更改转移到“/branches/x/process/xyz/client1/file1.xml”中,是吗? - Lazy Badger
是的,抱歉我在最后一行中指的是/branches/x而不是/trunk/。您是正确的先生! - brodie659
1个回答

1

你遇到了SVN中的“重构地狱” - 这仍然是一个大问题

你至少有两个选择

  • 为了消除树冲突,不是将整个 /trunk 合并到 /branches/x 中,而是合并单个文件,例如您的 file1.xml
    • 在分支的工作副本中,选择单个文件的“合并”,而不是父文件夹,并将主干的 file1.xml 作为合并来源。
    • 对于所有(移动的)带有树冲突的文件,重复这些合并步骤。
  • 至少在重构方面迁移到 Mercurial
    • (安装 Mercurial /TortoiseHG/)
    • 启用(与 THG 3.0 捆绑)hgsubversion 扩展
    • 将 SVN 存储库克隆到 Mercurial 存储库
    • 在本地 HG 中进行重构、合并和提交
    • (因为合并集无法推回 Subversion)将 Mercurial 存储库的 tip 存档为未版本化的文件,这些文件必须替换您的 Subversion 工作副本,然后提交此状态的更改(在此修订版本中,您将获得损坏的历史记录)
    • 返回使用 Subversion 存储库和经过重构的代码

我理解这个。感谢您抽出时间来帮助我。我尝试了一下,它起作用了。幸运的是,只有代码的小部分正在进行重构,并且我是唯一的开发人员。因此合并的难度比可能想象的要小! - brodie659

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接