在Subversion中合并来自不同分支的同名文件夹

时间:2016-03-30 21:40:57

标签: svn

我在Subversion中跟踪的项目遇到了一个奇怪的问题。我有主干和稳定分支 - 稳定分支有一个特定的文件夹,(让我们称之为/ a)是我几周前创建的,其中有一些代码文件。与此同时,几天前,我工作的另一个开发人员在trunk中创建了她自己的同名/一个文件夹(相同的路径和所有内容),并在其中放入了一个不同的文件。换句话说,当前结构看起来像这样

/中继线
/一
FileYellow
/枝
/稳定
/一
FileRed
FileBlue
FileGreen

当我尝试将我的更改从稳定分支合并到主干时,基于/ a文件夹会出现树冲突。我认为这是有道理的,因为两个文件夹都是独立创建和提交的,SVN无法知道使用哪个文件夹。我希望在解决冲突时我至少能够选择trunk或者stable branch的/一个结构(包括文件),但是来自stable branch / a目录的文件都没有被合并到工作目录。关于我唯一能做的就是使用svn resolve --accept working -R <path>

解决工作目录的当前状态

此时我正在考虑在trunk中的/ a文件夹上执行svn delete,这样我就可以在stable / a(和它的文件)中合并,然后重新添加最初在trunk中的单个文件。我只是想知道是否有一种更好,更优雅的方式来处理这种特殊情况

1 个答案:

答案 0 :(得分:0)

这种“伪树冲突”的自然方式是

  1. 仅合并冲突的子树(cd trunk/a && merge ^/branches/stable/a .
  2. 合并完整树
  3. 手动从/a第二次合并后可能会删除mergeinfo(如果没有自动清理,必须发生)