三、SVN版本管理-代码回滚

作者: 起点_1989 | 来源:发表于2018-08-17 14:28 被阅读8次

之前讲过根据需求号把代码合并到其他的分支,比如把需求A-1对应的代码更改从开发分支DEV合并到测试分支DAT。这篇文件将会讲解如何把A-1需求对应的代码从DAT分支剔除掉,也就是常说的代码回滚。

代码回滚和代码合并的本质区别在于,合并是两个分支之间的事,而回滚只是一个分支自己的事。然而对于SVN来说,无论是做什么操作,版本一直都是再增长,不会回退,那么该如何实现版本增长的同时,代码回退呢?其实很简单,一条反向merge命令便搞定了:

svn merge -r 5:2 localDir svnUrl --username *** --password *** --non-interactive --no-auth-cache

localDir是svn分支的本地工作副本,svnUrl是svn分支的远程地址,合并的版本号区间是-r 5:2 是指把svn分支从4版本号对应的代码回退到2版本号对应的代码。
下面来详细讲解回滚的全过程:
首先看一张图:


image.png

从这张图可以看出,假设我们现在DAT分支有一个需求A-1需要做代码回滚,那么首先是要根据A-1这个需求号拿到对应的版本号区间(跟代码合并一样,都是根据commit log拿到需求号对应的版本号区间),然后对版本号区间做一个倒序排序,假如我们拿到的版本号排序之后是4、3、2三个版本号,那么回滚的命令中的版本号区间就是

svn merge -r 5:2

如果A-1对应的版本号区间是4、2、1三个版本号,那么回滚命令便是如下格式

svn merge -r 5:4 -r 3:1

版本号区间组装完毕之后,就要开始做真正的回滚了吗?跟合并一样,都要先做一次预回滚,也就是再回滚命令中加上参数:

--dry-run

需要注意的是,--dry-run参数在一些复杂场景下结果是不准确的。但是这种不准确只会把没有冲突的代码认为是冲突而误报出来,是绝对不会把有冲突的代码认为没有冲突的。所以这个参数使用与否,自己衡量利弊。
预回滚之后,如果没有冲突,便可以做真正的回滚了。执行merge命令回滚完之后,只是在本地工作副本生效了,所以还需要做一次commit操作。

总结

至此,一个完整的根据需求号做代码回滚的操作便完成了。
前面写过两篇帖子,讲如何根据需求号做代码合并。今天又写了代码的回滚。形成了一个版本管理的闭环。这些文章可能对于手动做合并和回滚的朋友没有太大帮助,但是现在什么都讲求自动化,有了这些东西,相信无论用什么语言,写一个自动化的版本管理工具都是轻而易举的。

相关文章

  • 三、SVN版本管理-代码回滚

    之前讲过根据需求号把代码合并到其他的分支,比如把需求A-1对应的代码更改从开发分支DEV合并到测试分支DAT。这篇...

  • SVN回滚版本

    方法2: 用svn up 前2步如方法1,然后直接 svn up -r 10。当前的工作版本就是版本10了。但是注...

  • Git基本操作流程

    版本管理工具:GIt SVN 目的:协同开发 → 公共仓库(所有人代码都放到这里边)→可以版本回滚、写每次提交...

  • 源代码管理之SVN

    全称Subversion,集中式版本控制,所有的代码都集中在一块, 统一进行管理 作用:代码回滚,代码合并,版本备...

  • git 本地代码回滚&&强制更新远端代码 / 本地不想回滚&

    文章参考 git本地版本回退与远端版本回退(回滚) 本地代码回滚&&强制更新远端代码 如果已经提交代码到maste...

  • Day15 时不我待

    vscode通过源代码管理器显示svn版本控制的代码 mac:安装svn插件即可 windows:本地安装svn软...

  • 无标题文章

    由专人来负责SVN 版本管理,涉及产品的回滚、推出新版本时可以增加个回到旧版本的功能按钮,收集数据看用户的反应PR...

  • svn安装和使用

    一、SVN 1、什么是svn svn:全称Subversion,是代码版本管理软件,管理着随时间改变的数据。这些数...

  • svn使用

    查看修改过哪些文件 文件夹回滚 提交代码文件 4.修改代码提交 删除svn已经存在文件,然后svn ci -m "...

  • 在centos下如何用apache运行gitlab

    公司的代码管理需要从svn转为git。之所以放弃svn,我们主要考虑git具有更灵活的代码冲突管理、分支及版本管理...

网友评论

    本文标题:三、SVN版本管理-代码回滚

    本文链接:https://www.haomeiwen.com/subject/aawzbftx.html