合并SVN主干更新至分支[a]时新增文件/目录遇树冲突求助
解决SVN合并新增文件/目录时的树冲突问题
嘿,我之前也碰到过一模一样的SVN树冲突问题,尤其是合并主干新增文件到分支的时候,这个错误提示确实有点误导人——明明是新增的文件,SVN却误以为本地给删了。别慌,按下面的步骤来就能搞定:
先搞清楚问题根源
这种情况其实是SVN的状态判断bug:它在合并trunk的新增内容时,错误地认为分支[a]本地原本存在这个文件/目录,还被你删除/移动了,但实际上分支[a]里根本就没有这玩意儿,所以才抛出这个矛盾的错误提示。
具体解决步骤
第一步:确认冲突状态
先在本地分支的工作副本根目录下跑个状态命令,看看所有冲突项的标记:svn status你会看到带
C(冲突)或者!(缺失)标记的条目,重点锁定那些来自trunk的新增文件/目录。第二步:手动解决树冲突
对每个出现冲突的新增项,直接用svn resolve命令告诉SVN接受主干的新增变更:svn resolve --accept working [你的文件/目录路径]这里的
--accept working是告诉SVN:“我认可当前工作副本里的这个新增内容,冲突已经搞定了”。如果要批量处理多个新增文件,可以用通配符(比如当前目录下所有新增的子文件):
svn resolve --accept working */*👉 注意:执行前最好确认路径,别误操作了其他已有的文件。
第三步:验证并提交
解决完所有冲突后,再跑一遍svn status确认没有冲突标记了,然后就可以提交合并结果:svn commit -m "合并trunk新增文件/目录,解决树冲突"
额外提醒
- 如果你拿不准某个文件的来历,可以用
svn log [文件路径]查看trunk里这个文件的提交记录,确认是新增的变更再处理。 - 合并前尽量别手动修改分支里的目录结构,尤其是和trunk新增路径相关的操作,很容易触发这类无厘头的树冲突。
内容的提问来源于stack exchange,提问作者Nick Tallents
相关产品推荐
相关产品推荐

