SVN版本控制软件.docx
- 文档编号:13030188
- 上传时间:2023-06-10
- 格式:DOCX
- 页数:27
- 大小:547.93KB
SVN版本控制软件.docx
《SVN版本控制软件.docx》由会员分享,可在线阅读,更多相关《SVN版本控制软件.docx(27页珍藏版)》请在冰点文库上搜索。
SVN版本控制软件
svn文档
1svn:
版本控制软件
在现实的软件开发中有可能遇到的问题:
代码管理混乱
备份多个版本,占用磁盘空间大
解决代码冲突困难
容易引发BUG
难于追溯问题代码的修改人和修改时间
难于恢复至以前正确版本
无法进行权限控制
项目版本发布困难
2Svn的安装
参照SVN安装界面.doc文件
3创建仓库
3.1仓库的位置
F:
\work\course\svn\repository\svn
3.2利用svnadmin–create命令创建仓库
上面的命令指的是在指定的目录下创建一个仓库。
3.3库里的文件
存放版本控制产生的数据
脚本代码的存放位置
4svn仓库的启动
4.1两种启动-1-命令行
4.1.1启动命令
Svnserve–d–r文件路径
4.1.2检查是否启动
上面的这个命令可以检查端口号,一般svn默认的端口号是3690.
说明该端口号正在被监听
4.1.3说明
当把命令窗口关闭以后,监听就没有了,所以这种启动方式必须把命令窗口打开。
4.2两种启动-2-windows服务
4.2.1执行启动命令
sccreateSVN-Servicebinpath="F:
\work\course\svn\bin\svnserve.exe--service-rF:
\work\course\svn\repository\svn"displayname="SVN-Service"start=autodepend=Tcpip
binpath为执行命令所在的路径
-r为仓库的路径:
这里配置的多仓库
也就是说可以在svn下建立很多仓库,例如建立itcast仓库
访问的时候:
svn:
//localhost/itcast。
建立oa,则访问的时候
svn:
//localhost/oa
如果路径改为F:
\work\course\svn\repository\svn\itcast,只能访问itcast这一个仓库。
4.2.2Window服务
当成功执行上述的命名以后,就可以在window的服务下面看到类似的内容。
4.2.3删除服务
scdeleteSVN-Service
5svn命令
5.1svncheckout命令
说明:
把仓库中的某一个项目checkout出来
svncheckoutsvn:
//localhost/itcastF:
\develop\workroom\user
5.1.1建立用户
创建一个客户端操作文件夹
F:
\work\course\svn\develop
在该文件夹下建立两个文件夹,代表两个用户user1和user2
5.1.2利用命令
利用命令把itcast仓库checkout到user1目录
创建完毕以后user1下会多一个文件夹
这说明创建完毕了。
5.2svnadd命令
在客户端创建一个文件,把该文件加入到该仓库中,加入到版本控制中
5.2.1执行命令
在客户端user1中新建一个txt文件:
a.txt
说明:
把a.txt加入到了itcast仓库,加入到了版本控制中
5.3svncommit
说明:
当把一个文件加入到指定仓库以后,接下来的操作就是提交。
在提交的时候必须写一些说明(可以写这次提交都做了一些什么内容)
5.3.1执行命令
说明:
当执行这个命令的时候失败了。
因为用的是匿名用户登录的。
在F:
\work\course\svn\repository\svn\itcast\conf路径下有一个文件:
svnserve.conf
该文件有一句这样的描述:
#anon-access=read
说明:
匿名用户只能有读的权限,所以这里应该改一下:
anon-access=write
当改完以后再次执行次命令的时候:
说明命令执行成功了。
在itcast仓库中加了一个文件a.txt,版本号为1
5.3.2user2用户执行checkout命令
把a.txt文件checkout到user2中,并且版本为1
5.3.3User2用户修改a.txt文件
5.3.4User2用户commit文件
文件a.txt在user2下再次进行修改
5.3.5User1用户进行更新
把user1下的a.txt文件更新到版本2
5.3.6当删除掉客户端的一个文件时
当删除掉客户端的一个文件时,可以使用svnupdate命令把服务器上的版本download下来。
6Tortoisesvn的使用
6.1建立仓库
1、在F:
\work\course\svn\repository\svn路径下建立一个文件夹为itcast
2、进入itcast目录,如图所示
3、执行完第二步后,在itcast目录中产生了
这个目录和用命令行创建的工程的目录是一样的。
6.2建立用户
在F:
\work\course\svn\develop目录下创建两个用户user1和user2,即两个文件夹。
6.3点击user1用户,选中checkout
把itcast仓库放入到user1中
执行完上述操作以后itcast仓库就被下载到了user1中
6.4在user1的itcast仓库中创建一个a.txt文件
6.5利用svnadd把a.txt添加到版本控制
添加完毕以后会出现如下的图标:
6.6利用svncommit上传到服务器
在执行commit之前还要修改权限的部分。
6.7在user2中创建itcast仓库
这个时候,user2的icast仓库中已经存在a.txt文件了
6.8修改a.txt文件
6.9执行commit操作
6.9.1在user1用户下针对itcast库的a.txt执行update操作
6.10上锁
可以针对user1用户中的a.txt文件进行上锁的操作。
当输入用户名和密码的时候,就上锁了,上锁的突变如下所示:
当用户user2试图再次修改此文件时,会报如下的错误:
6.11解锁
6.12needs-lock
6.12.1a.txt变成needs-lock
a.txt作如下的操作:
添加一个属性:
svn:
need-lock,值为true,确定以后变成如下的图标:
这个图标表明再次修改必须上锁。
6.12.2a.txt上锁
6.12.3进行修改
6.12.4进行commit操作
6.13去掉needs-lock属性
点击remove就可以了
6.14冲突问题
6.14.1user1更新a.txt文件
6.14.2user2更新a.txt文件
6.14.3user1更改a.txt文件
6.14.4user2更改a.txt文件
6.14.5user1对a.txt进行commit操作
6.14.6user2对a.txt进行commit操作
当user2对a.txt进行操作的时候,user2操作的a.txt文件并不是最新的。
所以报如下的错误。
6.14.7对a.txt执行update操作
该图标表示文件有冲突了。
a.txt.mine表示user2用户最新的
a.txt.r11表示提交之前的
a.txt.t12表示服务器上最新的
6.14.8解决冲突
Theirs表示服务器上的
Mine表示自己的
Merged表示合并以后的版本
可以在冲突的那一行点击右键,选择这四个选项中的其中一个。
这个时候,Merge就会发生变化。
这样就可以解决冲突的问题。
6.14.9Resolved
当解决完毕以后,告诉svn已经解决完了
6.14.10commit
7权限
7.1权限的配置
在itcast库的config目录下有授权的相关内容。
7.1.1svnserve.config
定义所有认证和授权政策。
7.1.1.1anon-access
匿名用户的访问权限,应该是什么访问权限都没有
anon-access=none
7.1.1.2auth-access
认证用户授权
auth-access=write
7.1.1.3password-db
指定用户的认证文件为passwd文件
password-db=passwd
7.1.1.4authz-db
authz-db=authz
指定用户的授权文件为authz。
7.1.2password
存放项目成员账户信息
[users]
#harry=harryssecret
#sally=sallyssecret
等号左边代表用户名,等号右边代表密码,所以可以这么添加:
user1=user1pwd
user2=user2pwd
这样系统中有两个用户user1,user2,密码分别是user1pwd,user2pwd。
7.1.3authz
复杂的群主授权控制
[groups]
#harry_and_sally=harry,sally
#harry_sally_and_joe=harry,sally,&joe
groups是组的意思
等号左边的是组名,等号右边的是组的成员
所以可以写
svn_group=user1把user1加入到svn_group组中
#[repository:
/baz/fuz]
#@harry_and_sally=rw
#*=r
#[repository:
/baz/fuz]:
指出针对哪个仓库
#@harry_and_sally=rw:
针对某一个仓库,对组进行授权
#*=r:
对除了这个组以外的其他用户进行授权
[itcast:
/]:
针对itcast仓库
@svn_group=rw针对svn_group组进行授权
user2=rw针对user2用户进行授权
*=除了以上用户以外的其他用户都不能授权
[itcast:
/doc]
user1=rw
*=
以上配置说明:
针对itcast仓库的doc目录,只有user1有读写权利,其他的用户都没有。
7.2权限的使用
当配置完成权限以后,当在user1用户下或者user2用户下修改了一个文件,进行commit的时候,系统会自动提示如下:
这个时候只有输入正确的用户名和密码信息才能提交。
8svn嵌入myeclipse
8.1插件的下载
从官网上下载插件http:
//subclipse.tigris.org,可以从这个网站下载到最新的svn插件。
8.2创建插件目录
在F:
\work\course\svn下创建插件目录myplugins\svn\eclipse,把下载完的解压后的两个文件夹放入到该目录下
8.3创建svn.link文件
在myeclipse安装的dropins目录下创建svn.link文件
Link文件中的path
path的值就是svn插件的目录所在。
8.4重启myeclipse
9svn在myeclipse中的使用
9.1把库添加到myeclipse中
打开如下的视图:
准备新建一个资源库的位置
输入库的url:
itcast库就被导入进来了
9.2把svn的项目检出到myeclipse
在新建项目的时候,选择从svn上检出项目
选择现有资源库的位置
检出的项目在myeclipse中
9.3对a.txt进行编辑
9.4对a.txt进行commit操作
9.5Comparewith
可以利用Comparewith的功能的子功能
基本修订版
最新版本的上一个版本
利用这个功能可以和以往的版本做对比。
9.6RepleaseWith
可以选择某一个版本的内容覆盖当前版本的内容
9.7把项目添加到svn中
新建一个项目,做如下的操作:
选择svn
把项目保存在itcast资源库
9.8分支、合并、切换
9.8.1Trunk
存放开发的主线,团队成员在开发的时候一直要用这个库中的内容
9.8.2Branches
存放支线副本:
当项目稳定以后,先发布到tags下,如果发现了bug,再从tags下检出到branches下。
在该版本下进行bug的修复,把修复完毕的稳定的版本重新发布到tags下。
9.8.3Tags
存放标签副本,也就是存放稳定版本
9.8.4问题:
一个公司开发了一个oa系统,随后发布了一个版本v1.0,由于这个版本还是比较成功的,然后客户提出了更多的需求,随后开发团地准备开发下一个版本v2.0,当开发团队
在如火如荼的工作的时候,客户突然提出了在v1.0版本有一个bug,需要改进,而且必须把这个改进引入到v2.0版本中。
用svn怎么样解决这个问题呢?
9.8.5解决
9.8.5.1在svn库中建立一个项目oa
9.8.5.2让oa成为svn项目
9.8.5.3修改权限,让匿名用户具有写的权限
9.8.5.4在客户端准备一个oa文件夹
9.8.5.5在oa文件夹下建立三个文件夹
9.8.5.6把oa里面的内容导入到svn库中
9.8.5.7查看仓库的结构
从上面可以看出,branches,tags,trunk已经被加入到仓库中了。
9.8.5.8把正在开发的一个项目导入到trunk(主线)中。
这样该项目的基本代码就加入到了trunk中。
9.8.5.9把trunk的项目checkout到myeclipse中。
经过以上几步,trunk中的目录就被导入到了oa中。
9.8.5.10发布v1.0版本
选择发布到tags目录
在tags下建立一个文件夹V1.0
9.8.5.11开发V2.0的功能
在A.java类上稍微做一下修改即可。
9.8.5.12现在V1.0有bug,对V1.0的版本做检出
9.8.5.13对V1.0的版本进行修改
9.8.5.14对修改后的内容提交
9.8.5.15以上操作不对,因为tags的内容不能进行修改
9.8.5.16
9.8.5.17对tags中的V1.0做分支
对tags中的V1.0做分支,然后移动到branches中,为V1.0_fixup。
9.8.5.18切换版本库的路径
把路径切换到branches/V1.0_fixup。
9.8.5.19提交
因为版本库已经切换到了branches/V1.0_fixup,所以这个时候可以提交了。
9.8.5.20把修复好的V1.0_fixup发布
选择branches中的版本做分支标记。
发布到稳定库中(tags),并且版本的名字为V1.1
9.8.5.21把V1.1版本加入到原来的版本中
在trunk版本中,选择合并。
从tags/V1.1中进行merge
9.8.5.22在企业的应用
1、项目经理会发一个word文档
1、svn的仓库的地址
2、使用svn的用户名和密码
3、把svn上的项目导入到myelicpse中
4、做自己的模块,把自己写的东西上传到svn上
5、版本的对比,合并版本
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SVN 版本 控制 软件