如何检出SVN老版本代码

 

问题        

  在项目开发过程中,我们总会需要检出SVN老版本代码,比如发布一个稳定版本到UAT环境,然后该稳定版本上又测试出了一些不得不修改的Bug,这个时候我们就必须要检出对应版本的代码,而不是SVN上最新的代码。

SVN相关概念

全局版本号

  不像其他版本控制系统,SVN的修订号是针对整个目录树的,而不是单个文件。每一个修订号代表了一次提交后版本库整个目录树的特定状态,另一种理解是修订号N代表版本库已经经过了N次提交

SVN打Tag

  建立一个SVN版本库时,SVN会根目录下先建立trunk、branches、tags这三个文件夹,其中trunk是开发主干,存放日常开发的内容;branches存放各分支的内容,比如为不同客户定制的不同版本;tags存放某个版本状态的标签,比如验收测试版、1.0.3版等。branhces和tags本质没有区别,都是通过svn copy方式建立的,差异在于通常branches中的内容是需要继续修改或开发的,tags中的内容是存放不再修改的,这一般通过权限设置来解决,tags通常只给管理员开放写权限。命令行的话,就是svn copy,TortoiseSVN客户端的菜单叫分支/标记。

解决办法

1. 在发布包趋于稳定时,对每个发布版本都做Branch,如果发布版本验证通过,保留Branch供后续使用,否则删除Branch。SVN Tag与Branch类似。

2. 利用SVN的全局版本号。当发布每个版本时,记录当时的SVN全局版本号,后续可以通过SVN命令Check Out或Export出对应版本的代码。TortoiseSVN里对应的菜单为:

  

 

SVN也提供Command来完成这项工作,Command格式为:

svn co URL[repository URL] -r [version num],其中version number为参数,可以为数字型的,也支持时间,SVN会自动Check Out最接近这个日期的版本。

posted @ 2012-04-27 11:24  先行而后三思  阅读(13118)  评论(0编辑  收藏  举报