一、简介
svn是集中式的版本管理工具,所有版本信息都服务器上。相对于分布式的git、hg,在操作上和使用上没有那么
灵活和强大。但鉴于很多老牌的大公司,基于历史原因,还是使用svn。因此本文对svn进行介绍。
二、知识点
1、主干(trunk)和分支(branches)
svn结构与git、hg不同。它所谓的分支,是基于路径实现的。
有主干(trunk)目录,类似于git的主分支(master)。
有分支(branches)目录,这些是主干内容的完全复制,不同于git的分支与主分支在同一目录。
基于上述原因,svn分支管理显得不是那么真实,直观感觉就是目录的管理。
三、通常开发流程
1、在远程目录上,从主干(trunk)切分支
svn copy 远程目录/trunk 远程目录/branches/分支1名称 -m “注释”
2、将分支从远程目录下载到本地目录
svn checkout 远程分支目录 本地分支目录
3、修改本地分支目录后提交分支
在本地分支下:svn commit -m “注释"
4、将主干从远程目录下载到本地目录
svn checkout 远程主干目录 本地主干目录
5、将分支修改合并到主干目录上
在本地主干目录下:svn merge 远程分支目录
6、将本地主干提交到远程主干
在本地主干目录下:svn commit -m “注释"
以上就是通常的操作流程,当然中间要可以通知svn status查看修改情况,可以发现,操作几乎都与远程主服务有关,
也难怪称为集中式版本控制。
四、常用命令
1、svn checkout path [本地目录]
下载代码
2、svn status
查看修改
3、svn commit -m "注释“
提交修改到版本库
4、svn update
更新本地代码,与版本库同步,若本地已修改,则选择弹出的选项p(postpone),延后处理冲突
5、svn resolved 文件名
冲突解决后,重新标识文件
6、svn revert 文件名
还没提交时,还原文件修改
7、svn add 文件名
将新文件添加到版本库
8、svn delete 文件名
删除文件
9、svn copy 文件名 新文件名
复制文件,也可复制目录
10、svn move 文件名 新文件名
重命名文件名
11、svn cleanup
删除锁
12、svn import 目录 版本库目录 -m "注释”
将未被版本化的目录添加版本库中
13、svnadmin create 版本库目录
创建版本库目录
五、分支管理
1、新建分支
svn copy 远程目录/trunk 远程目录/branches/分支1名称 -m “注释”
2、查看分支
svn list 目录(或远程目录)/branches
3、查看分支产生的版本
svn log --stop-on-copy
4、分支合并到主分支步骤
a)查看分支产生版本: svn log --stop-on-copy
b)查看主分支版本:svn update
c)切到主分支目录下
d)合并分支
svn merge -r 分支版本:主分支版本 分支远程目录
e)提交主分支 svn commit -m “注释"
六、标签操作
1、建标签
svn copy 远程目录/trunk 远程目录/tags/标签名 -m "注释"