SVN实验手册(13页).doc
《SVN实验手册(13页).doc》由会员分享,可在线阅读,更多相关《SVN实验手册(13页).doc(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-SVN实验手册-第 12 页svn实验手册本实验手册使用一个本地的代码库操练日常的svn使用流程,访问本地的库无须用户验证目录1.准备:建立版本库(repos)和本地工作拷贝(working copy)2.本地更改与提交3.查看历史4.分支与合并1.准备:建立版本库(repos)和本地工作拷贝(working copy)1)建立本地版本库mkdir /expecd /expesvnadmin create repos在/expe/repos建立了代码库loongsondebian:/expe$ ls repos/conf dav db format hooks locks README.tx
2、t2)建立代码库的的基本目录结构mkdir working_copycd working_copyloongsondebian:/expe/working_copy$ svn co file:/home/loongson/expe/repos .取出修订版 0。loongsondebian:/expe/working_copy$ mkdir trunk branches tagsloongsondebian:/expe/working_copy$ lsbranches tags trunkloongsondebian:/expe/working_copy$ svn add branches/
3、tags/ trunk/A branchesA tagsA trunkloongsondebian:/expe/working_copy$ svn ci -m svn common directory structure新增 branches新增 tags新增 trunk提交后的修订版为 1。3)svn info可以看到你的本地和哪个库相连以及当前版本loongsondebian:/expe/working_copy$ svn info路径:.地址(URL):file:/home/loongson/expe/reposRepository Root: file:/home/loongson/e
4、xpe/repos档案库 UUID:9c193024-16a0-4d5b-b53c-aaddca74e1cf修订版:0节点种类:目录调度:正常最后修改的修订版:0最后修改的时间: 2007-05-23 22:15:44 +0800 (三, 23 5月 2007)2.本地更改与提交基本步骤:svn update(查看别人有没有更新)svn status (查看本地更改与版本管理的关系,哪些文件将提交到版本库)svn commit/svn ci (提交)1)本地修改我随便做了两个文件,准备加到库里面,作为本地修改的一个示例loongsonLoongson:/expe/workingcopy/tru
5、nk$ cat hellohello word.I am loongson, who are you.loongsonLoongson:/expe/workingcopy/trunk$ svn add helloA helloloongsonLoongson:/expe/workingcopy/trunk$ cat READMEwhy not read me?loongsonLoongson:/expe/workingcopy/trunk$ svn add READMEA hellosvn add只修改本地内容,并没有提交2)查看别人有没有更新这个时候我准备提交(commit)我的更改了,首先
6、我会运行svn update查看别人是否对代码进行了修改loongsonLoongson:/expe/workingcopy$ svn up于修订版 1。up是update的简写,update的作用是把别人修改的代码先取到本地,上面的结果是没有人进行了修改。为什么要先up呢,这是因为如果有冲突的话,应该在本地解决冲突以后,再进行commit,事实上你可以直接svn ci(commit),但是如果别人和你修改了同一个文件,svn也不会让你成功提交,还是需要先进行本地的update。3)查看将要提交的内容现在我已经可以commit了,我先查看一下我需要commit什么,基本的规则是:一个patch
7、应该一个的commit,一个patch可以是特定的一个功能实现,一个bug fix等。loongsonLoongson:/expe/workingcopy/trunk$ svn statusA 0 helloA 0 README状态于修订版: 1svn status的作用还包括,你可能有文件没有添加到版本管理中,比如我下面做了个extra文件作为例子loongsondebian:/expe/working_copy/trunk$ touch extraloongsondebian:/expe/working_copy/trunk$ lsextraloongsondebian:/expe/wor
8、king_copy/trunk$ svn status? extra文件前面的?就表示没有加入到版本管理,有些时候是可能的,比如说生成的.o文件。但是这里extra是需要加入版本管理的,因此需要执行svn add extra。4)真正的提交详细查看一下更改的内容svn diff hello,svn diff README,我发现这两个是无关的更改,他们属于两个不同的patch,应该单独提交因此我提交了两次,并指明提交的文件loongsonLoongson:/expe/workingcopy/trunk$ svn commit hello -m add hello新增 hello传输文件数据.提
9、交后的修订版为 2。loongsonLoongson:/expe/workingcopy/trunk$ svn commit README -m add README新增 README传输文件数据.提交后的修订版为 3。例子中的-m的内容也太过简单,每次提交都应该有详细的comment,特别是对bug的修复,应该详细说明bug的产生原因,修复的道理等从上面看到,应该勤commit,不要等到修改了一大堆文件以后,才想起来要commit。3.查看历史svn logsvn diff经过上面的commit以后,看看infoloongsondebian:/expe/working_copy/trunk$
10、 svn info路径:.地址(URL):file:/home/loongson/expe/repos/trunkRepository Root: file:/home/loongson/expe/repos修订版:1节点种类:目录调度:正常最后修改的作者:loongson最后修改的修订版:1最后修改的时间: 2007-05-23 22:23:05 +0800 (三, 23 5月 2007)你可以发现虽然我们提交了两次,版本已经增长到了3,但是整个working copy的版本还是1,因此为了看到完整的log,需要执行loongsondebian:/expe/working_copy/trun
11、k$ svn up于修订版 3。1)svn logloongsondebian:/expe/working_copy/trunk$ svn log-r3 | loongson | 2007-05-23 22:45:14 +0800 (三, 23 5月 2007) | 1 lineadd README-r2 | loongson | 2007-05-23 22:45:09 +0800 (三, 23 5月 2007) | 1 lineadd hello-r1 | loongson | 2007-05-23 22:23:05 +0800 (三, 23 5月 2007) | 1 linesvn com
12、mon directory structure-或者看看每次提交更改了哪些文件loongsondebian:/expe/working_copy/trunk$ svn log -v-r3 | loongson | 2007-05-23 22:45:14 +0800 (三, 23 5月 2007) | 1 line改变的路径: A /trunk/READMEadd README-r2 | loongson | 2007-05-23 22:45:09 +0800 (三, 23 5月 2007) | 1 line改变的路径: A /trunk/helloadd hello-r1 | loongson
13、 | 2007-05-23 22:23:05 +0800 (三, 23 5月 2007) | 1 line改变的路径: A /branches A /tags A /trunksvn common directory structure-2)svn diff可以是用svn diff命令查看版本之间的差异,比如我想知道r2具体发生了哪些更改loongsondebian:/expe/working_copy/trunk$ svn diff -r 1:2Index: hello=- hello (修订版 0)+ hello (修订版 2) -0,0 +1,2 +hello word.+I am lo
14、ongson, who are you.这是标准的patch格式,表示hello这个文件在版本0,从0行到0行发生了如下的删除动作(其实没有删除),在1行到2行发生了如下的增加(就是增加了加号的那两行)4.分支与合并,解决冲突分支就是在另外一个地方管理代码的版本,而不影响主线(trunk)的代码。分支的原因有很多,第一次使用svn都希望建立一个分支,然后在自己的分支上工作,相当于自己的独立的工作空间,这种工作方式没有错,但是svn支持并不是很好,需要编写comment的时候记录下每次合并代码的版本号,因此我认为目前分支最佳的实践是为某个工作目的创建一个分支,功能实现以后立刻在trunk中合并这
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SVN 实验 手册 13
限制150内