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

当在SVN中尝试重新合并已合并过的代码时,可能会遇到问题。这通常是由于合并跟踪信息存储在svn:mergeinfo属性中。解决方法包括在TortoiseSVN中编辑svn:mergeinfo属性,删除已合并的版本号,然后重新执行合并操作。确保服务器、版本库和客户端都是最新版本,以避免合并冲突。

解决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-->然后在下面的取值中删除要重新合并的版本号-->点击确定-->点击确定-->再重新操作一次合并的动作。这次就能重新合并代码了。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值