解决SVN中合并过的代码不能重新合并的问题

解决SVN中合并过的代码不能重新合并的问题

  1. 使用TortoiseSVN合并代码时,需注意两个点:

  2. 1、在要合并到的分支文件夹上右击鼠标,选中TortoiseSVN-->合并(M)...-->合并一个版本范围-->合并的源(必须选择与“要合并到的分支文件夹”相同的另一分支中目录)-->然后指定范围(在显示日志中选版本号)-->点下一步-->测试合并-->测试OK就正式“合并”-->有冲突就解决冲突
  3. 2、有时合并代码后,提交代码时才发现当前文件的版本不是最新的,不能锁定文件提交。此时有两种操作方法:一是直接更新该文件,如果有冲突就直接解决冲突。二是保险一点,先还原该文件,等更新完代码后再重新合并,以免更新时发生冲突,解决冲突时失误,覆盖、删除或修改了服务器上最新版本的代码。
  • 采取方法二时,会遇到一个问题:比如版本号:26030之前合并过了,然后还原代码后再重新合并时,合并不了了。这是怎么回事呢?

从TortoiseSVN的帮助文档中描述如下:


4.21.5. 合并跟踪
Subversion 1.5 引入了合并跟踪特性。当你合并版本树时,版本号会被保存,此信息可以用于几个目的。

您可以避免合并同一版本两次的隐患 (重复合并问题)。一旦一个版本被标记为已合并,将来在版本范围中包含该版本的合并将会跳过它。

当您合并一个分支到主干时,日志对话框可以将分支提交作为主干日志的一部分来显示,这样可得到对更改更好的跟踪性。

当您从合并对话框内显示日志对话框时,已合并的版本显示为灰色。

当显示一个文件的追溯信息时,你可以选择显示已合并版本的原作者,而不是合并者。

您可以把版本标记为 不合并,通过把他们包含在已合并的版本列表中而实际上并没有进行合并。

执行合并时客户端将合并跟踪信息存储在 svn:mergeinfo 属性中。提交合并时,服务器会将该信息存储在数据库中,而当您请求合并、日志或追溯信息时,服务器可以作出恰当的响应。为了使系统正常工作,您必须确保服务器、版本库和所有客户端都是最新的。较早的客户端将不会存储 svn:mergeinfo 属性并且早期版本的服务器端不会提供新版客户端所请求的信息。

解决方法:

  • 在要合并到的分支文件夹中右击鼠标-->选中TortoiseSVN-->选择“属性”-->编辑-->属性选择svn:mergeinfo-->然后在下面的取值中删除要重新合并的版本号-->点击确定-->点击确定-->再重新操作一次合并的动作。这次就能重新合并代码了。

你可能感兴趣的:(SVN,版本管理)