【发布时间】:2011-01-30 16:47:44
【问题描述】:
我在一个团队中工作,其中有很多人对版本控制系统的概念非常不熟悉,并且只是通过反复试验来做任何看似可行的事情。有人从树干中创建了一个与树干没有祖先关系的“分支”。我的猜测是这样的:
- 他们在
branches中创建了一个文件夹。 - 他们将后备箱中的所有代码检查到桌面上的某个位置。
- 他们将所有代码添加到新创建的文件夹中,就好像它是一堆全新的文件一样。
所以存储库并不知道所有这些代码实际上只是主干的副本。当我查看 TortoiseSVN 中该分支的历史记录并取消选中“停止复制/重命名”框时,“复制自”下没有包含主干(或任何其他路径)的修订路径”列。
然后他们对他们的“分支”做了很多改变。与此同时,其他人正在对后备箱进行大量更改。我们试图做一个merge,当然它不起作用。因为,树干和假枝没有祖传关系。
我只能看到两种解决方法:
- 查看“分支”上的日志,查看所做的每个更改,然后手动将每个更改应用到主干。
- 查看主干上的日志,查看在修订版 540(创建“分支”时)和 HEAD 之间所做的每项更改,然后手动将每项更改应用到“分支”。
其中一种方式涉及 7 次修订,另一种方式涉及 11 次修订,因此两者都不是真正的 糟糕。但是有什么方法可以让存储库“意识到”分支确实与祖先相关,即使它创建不正确,这样我们就可以利用 Eclipse/TortoiseSVN 中的内置合并功能?
(您可能想知道:为什么您的公司雇用这些人并允许他们访问 SVN 存储库而不确保他们首先知道如何正确使用它?!我们没有 - 这是一个学校作业,是两个不同班级之间的合作——下班的那些被给予了一个非常快速的手波“概述” SVN 这并没有真正教给他们任何东西。我已经要求小组中的每个人请阅读@ 987654321@,我会确保我们(团队中经验稍微丰富的一半)密切关注存储库,以确保不会再次发生这种情况。)
【问题讨论】: