Tortoise SVN - 将树干合并为分支 - 树冲突

时间:2014-05-29 20:04:59

标签: svn merge tortoisesvn tree-conflict

我们使用的是SVN 1.8,我也使用Tortoise SVN 1.8。

主代码驻留在/ project / trunk上。我将进行大量更改,因此我在/project/branches/x中创建了一个/project/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。当我在分支机构工作时,我需要在trunk中更改file1.xml以解决生产问题。我希望在我的分支中进行更改,但是当我尝试在Tortoise SVN中进行合并时,会出现冲突,因为缺少本地文件。

这些选项只是给我解决,推迟或中止的选项。将/trunk/process/xyz/file1.xml更改为/trunk/process/xyz/client1/file1.xml的最佳方式是什么?

我是SVN的新手所以请善待:)

1 个答案:

答案 0 :(得分:1)

嗯,你是SVN中“重构地狱”的受害者 - 这仍然是一个大问题

您至少有两个选择

  • 合并(为了消除树冲突)不是树(整个/trunk/branches/x),而是单个文件,file1.xml在你的情况下。
    • 在分支机构的WC中,为单个文件选择“合并”,而不是父文件夹,并选择中继file1.xml作为合并源。
    • 对具有树冲突的所有(移动)文件重复这些合并
  • 至少迁移到Mercurial以进行重构
    • (安装Mercurial / TortoiseHG /)
    • 启用(与THG 3.0捆绑在一起)hgsubversion扩展
    • 将SVN-repo克隆到Mercurial repo
    • 重构,合并,提交到本地HG
    • (因为合并集不能被推回到Subversion)Mercurial repo的归档提示为无版本文件,它必须替换你的Subversion存储库的WC并提交这种变化状态(你将在Subversion的这个版本中得到破坏的历史记录) )
    • 返回使用Subversion存储库和重构代码