Svn Subversion合并需要;旧式;即使一切看起来都是最新的?
我最近从一个旧的subversion服务器/存储库迁移到了最新版本1.8.9。新存储库是在新服务器上从头开始创建的,旧数据是从头开始导入的(我们从旧存储库中签出代码,在本地导出代码以删除所有SVN绑定,并以新的方式将其签入新存储库) 一切似乎都很好 我们已经使用这个新的存储库几个月了。我最近去把一根树枝并入树干。它抛出了大量可怕的树冲突。我无法理解这一点。主干和分支应该是同步的(主干中的所有内容也在分支中,唯一的新代码是分支中的代码,这就是我们试图合并的代码)。出于纯粹的挫败感,我单击了“重新整合而不是自动合并(旧式)”: 现在点击“合并”成功了 为什么我不明白?有人解释为什么会发生这种情况和/或这两种合并类型之间有什么区别吗?似乎没有关于这意味着什么的文档 我能看到的唯一一件可能有点不寻常的事情是,我们在某个点上从主干合并到分支(一些“紧急”的变化可能是为了生存) 相关版本号:Svn Subversion合并需要;旧式;即使一切看起来都是最新的?,svn,version-control,merge,tortoisesvn,Svn,Version Control,Merge,Tortoisesvn,我最近从一个旧的subversion服务器/存储库迁移到了最新版本1.8.9。新存储库是在新服务器上从头开始创建的,旧数据是从头开始导入的(我们从旧存储库中签出代码,在本地导出代码以删除所有SVN绑定,并以新的方式将其签入新存储库) 一切似乎都很好 我们已经使用这个新的存储库几个月了。我最近去把一根树枝并入树干。它抛出了大量可怕的树冲突。我无法理解这一点。主干和分支应该是同步的(主干中的所有内容也在分支中,唯一的新代码是分支中的代码,这就是我们试图合并的代码)。出于纯粹的挫败感,我单击了“重新整
subversion : 1.8.9
Tortoise: 1.8.8
Repository : V6
我想知道“旧式”和“旧式”的实际区别是什么
融合与“新风格”
TortoiseSVN手册尚未更新,以涵盖新的自动重新整合合并功能,并且在您明确指定正在进行重新整合合并时仍然没有更新。以下是乌龟的新旧风格的区别:
svn合并--重新整合
。在Subversion 1.7及更高版本中,您必须通过在命令行中添加--reintegrate
选项来明确指定进行重新整合合并svn合并
<代码>--在Subversion 1.8+中不推荐重新集成选项。合并是否重新整合由Subversion客户端自动确定。不过,有三个先决条件——你的工作副本
- 无法进行任何本地编辑
- 不能切换路径
- 工作副本不得被复制
如果看不到两次合并后工作副本的状态(有
--reintegrate
和没有它),我很难说出当时发生了什么,以及为什么指定--reintegrate
会显式地改变行为)。我猜SVN 1.8未能检测到重新整合合并,因此您必须显式运行它。1.8合并并不意味着“树冲突已成为历史”-它们仍然可以自然出现。我认为您缺少我的观点@lazybager。显然,可能会发生树冲突,但为什么旧式合并会阻止这种情况发生?请显示这两种类型的测试合并输出(text/plain
TSVN输出类型)以及分支修订日志(其中包含svn mv
):未来树冲突的来源我现在已经完成了合并。我必须把它放到分支机构,以便在最后期限前发布到source。其实我只想知道有什么不同?似乎没有关于这些选项含义的文档。我在OrtoiseSVN 1.9.4中遇到了同样的问题:单击“测试合并”会与自动合并产生冲突,但使用“旧式”重新整合合并会得到正确的结果。然后我发现:这表明从命令行自动合并工作正常。所以我试着在OrtoiseSVN中点击“合并”(不先测试),而不检查“旧式”重新整合,然后。。。成功了!!因此,至少在版本1.9.4中,问题似乎仅限于“测试合并”预览功能。您能解释一下工作副本不能是混合版本吗?@Liam概念上的Subversion功能之一是,工作副本可以具有不同版本号的目录和文件。SVNBook中有一个很好的解释