,我已经在我的公司被卷入一期工程已在SVN已经有点乱了(我会怪我们的期望,工程师应该知道如何使用它,恕不另行曝光和无训练)。该项目以前由一名工程师拥有,但所有权已转让给较新员工,他们对SVN的工作原理不熟悉。当他开始对代码库工作,他做了一个“分支”来制定的,但忽略了用TortoiseSVN 科/标签...命令。分支合并到主干不共享祖先
相反,他只是在./branches
目录中创建了一个名为Development
的目录,并手动复制了所有文件。在过去的6个月里,这个分支已经成为了主干应该是什么,并且它已经被广泛使用而没有合并回主干。自那时以来,该项目已在规模和增长能力,到现在有几个新的目录,文件,并添加到Development
分支的外部哪里。在这一点上,我们正在讨论800个修订差异。
那么,如何解决呢?
目前,如果我通过合并......命令来运行,使用合并一个版本范围的选择,我可以乱用几种方式的选择,但他们没有通过测试合并没有冲突和树木冲突。具体而言,主要发生在第二冲突提交到Development
“分支”,并认为冲突可能就不会发生了。到目前为止,我已经试过:
- 合并一个版本范围的 - >所有的修订 - >测试合并
- 合并一个版本范围的 - >特定范围 =
REV1-REV2
- >测试合并 - 合并一系列修订→特定范围 =
REV1-REV2
- >忽略祖先 =True
- >测试合并 - 合并两个不同的树 - >测试合并
- 合并两个不同的树 - >忽略祖先 =
True
- >测试合并
在这5个组合中,最后一个看起来最有希望,因为只有树冲突,它们只出现在添加的文件夹和文件中(外部看起来像它们会被合并,但很难分辨何时使用测试合并。
我想尽可能保留历史记录,但是此时trunk
中的代码已经过时,无法使用,我不会完全反对仅仅复制它。将这条“分支”转移到trunk
上最无痛的路径是什么,同时保留关于发生的事情的最多信息?
我已经和拥有这个项目的开发者谈过了,我们将一起解决这个问题,以便他可以更多地了解SVN是如何工作的以及如何正确使用它。我想做好准备,以便我们能够快速完成并尽可能从经验中获得收获。