前言
svn_back是我写的第一个脚本,没有任何前置条件(如果把跑用例的命令行拼成一起改成可执行文件也算的话,那这就是第二个脚本),它的作用就是把指定的文件或者目录回退到上一个svn版本。老实说这个脚本没有任何的难度和技巧,全是感情。第一次真正让我感受到了脚本的魅力:取代重复和固定工作以提升效率。
为什么这么长时间才重写了第一个脚本呢?因为知道上周四我才在自己的电脑上能够使用svn工具,同时有在线的svn代码库可以用来搞事情了。
手动流程
假如我这里有一个文件mem.v,他的svn信息是:
那么我如果要把mem.v回退到上一个版本r17,要如何做呢?
- 保存当前文件,防止本地修改被误覆盖;
- svn up mem.v一下,更新到最新信息;
- svn log -l2 mem.v,看一下当前的版本号(如r18)和上一个版本号(如r17);
- svn up -r17 mem.v,把上一个版本下载下来;
- mv mem.v mem.v_bak -f,把旧版本改名;
- svn up mem.v,重新把最新版本下载;
- mv mem.v_bak mem.v,用旧版本覆盖当前版本;
- svn ci -m "svn back from r18 to r17" mem.v,上传;
- svn up mem.v,更新好svn状态;
这是一个回退一个文件的全流程,如果是回退一个文件夹,中间步骤会调整。
脚本处理
因此这种情况,脚本的优势就得以体现:
对文件夹也可以一样操作: