Windows-Linux下的SVN服务器搭建及SVN操作
一、Windows下的SVN服务器搭建
首先准备一下三个软件:
1. VisualSVN-Server-3.8.0-x64.msi(svn服务端)
2. TortoiseSVN-1.9.6.27867-x64-svn-1.9.6.msi(svn客户端)
3. TortoiseSVN中文语言包_1.9.6.27867-x64-zh_CN.msi(TortoiseSVN 的汉化包)
开始安装:
1、第一个安装VisualSVN-Server-3.8.0-x64.msi
接下来我们要修改配置文件:
- authz:负责账号权限的管理,控制账号是否读写权限
- passwd:负责账号和密码的用户名单管理
- svnserve.conf:svn服务器配置文件
将红框前的#删除
在浏览器中查看创建的仓库:
SVN服务端安装成功了!
2、第二个安装TortoiseSVN-1.9.6.27867-x64-svn-1.9.6.msi
在右键菜单中可以看见安装好的客户端:
3、第三个安装TortoiseSVN中文语言包
原先的英文变成了汉字:
我们可以向仓库中上传文件,并在浏览器中查看:
二、Linux下的SVN服务器搭建
系统环境:64位Centos 6.5系统
第一步:通过yum安装SVN服务端:
yum -y install subversion
第二步:创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)
mkdir -p /var/svn/svnrepos
第三步:创建svn版本库,此处我举例创建名为Test的版本库
svnadmin create /var/svn/svnrepos/Test
进入Test目录我们可以发现以下文件:
第四步:修改配置
修改配置和Windows下的一样就可以了,如果出现服务器可以连接,但是“认证失败”这一情况我们就不要将authz-db = authz给取消注释。
多数资料会让大家在realm = My First Repository处填写服务器ip,经过测试,填写后并无什么用处,所以仅仅去掉注释即可。
第五步:防火墙开放3690端口
/sbin/iptables -I INPUT -p tcp --dport 3690 -j ACCEPT
/etc/init.d/iptables save
service iptables restart
第六步:启动SVN服务器
svnserve -d -r /var/svn/svnrepos
七:客户端访问svn服务器
在windows客户端,输入地址:svn://ip地址:3690/xxxx (iP地址为你linux的ip,xxxx为前文创建的版本库名称,3690为svn默认端口)
三、SVN的基本操作
3.1、SVN的一些基本概念
- Repository(仓库):源代码存放的位置;
- Checkout(检出):当你手上没有源代码时你需要从repository中checkout一份;
- Update(更新):当你手上已经有源代码了,Update使你的源代码和repository中的源代码进行同步;
- Commit(提交):当你完成了代码的修改你需要Commit至Repository;
- Conflict(冲突):如果两个人修改了文件的同一行,当SVN合并时不知道此行使用哪个人的,这时就会产生Conflict,我们要进行人工干预。
3.2、命令行操作SVN
- 创建版本库:
svnadmin create Test
- 检出操作:
E:\Users\HCP>svn checkout http://MrHu-PC/svn/Test
将名为Test的版本库检出到HCP文件夹中。
我们将检出的Test称为工作副本。
- 提交操作:
hcp用户新增了一个edit.txt文件,现在将新增文件提交至版本库中:
svn commit edit.txt
提交错误,提示edit.txt尚未加入版本库。
我们使用命令:svn status
来查看工作副本的状态。
此时 edit.txt的状态为?,说明它还未加到版本控制中。
使用命令:svn add xxx
将指定文件加入版本控制
此时 edit.txt的状态为A,说明它已经加到版本控制中。
现在我们可以使用svn commit -m xxx
来提交。
- 更新操作:
JACK将刚刚提交了edit.txt的最新版本库检出到了本地,这时HCP用户再次修改了edit.txt文件,并提交。
此时JACK本地中的版本已经过时了,JACK要进行更新操作。
svn update
JACK本地中edits.txt内容更新为:
- 版本回退:
使用SVN我们可以很方便的回退到上一个版本,从而放弃对文件的修改。
svn revert xxx
修改edits.txt文件
查看工作副本状态:
M表示edits.txt修改了。
现在我使用命令进行版本回退:
回退成功!
3.3、Eclipse安装SVN插件及使用
Eclipse安装SVN插件:
1. 离线安装:
svn插件:https://pan.baidu.com/s/1UO0v7bQWxFv1TqbPH5qgeQ
安装方法十分简单,将svn插件压缩包解压后直接放到eclipse根目录下dropins文件夹下。
2. 在线安装:
(1)、点击 Help –> Install New Software
(2)、在弹出的窗口中点击add按钮,输入Name(任意)和Location(插件的URL),点击OK
http://subclipse.tigris.org/update_1.6.x
(3)、勾选出现的插件,一步步安装即可。
安装成功!!
Subclipse插件的使用:
- 分享项目:
输入自己资源库的URL
一路next后将项目分享至资源库。
在SVN资源库视图我们可以看见分享的工程:
现在我们要进行提交:
现在查看要分享的工程,出现黄色圆柱体图标:
现在我们在工程中新建一个文件:
将新增文件添加至版本控制:
将新增文件提交至版本库:
实际上我们不需要手动进行add操作,直接提交就行了,插件会自动帮我们add。
检出操作:
更新操作:
将修改后的版本提交至版本库中,那么其他人的本地版本就是过时了。
我们要进行更新操作:
解决冲突:
制造冲突:
修改第5行并提交。
另外一人也修改第5行并提交
冲入制造成功,现在我们要解决冲突。
解决冲突的第一步:进行更新操作。
我们会发现以下变化:
第二步编辑冲突:
标记为解决:
再次提交:
代码还原:
在某次操作中我将Demo01修改了:
现在我们想将Demo01还原回历史版本:
- 分支:
Branch 选项会给开发者创建出另外一条线路。当有人希望开发进程分开成两条不同的线路时,这个选项会非常有用。
比如项目 SVNTestDemo下有两个小组,svn 下有一个 trunk 版(主分支)。
由于客户需求突然变化,导致项目需要做较大改动,此时项目组决定由小组 1 继续完成原来正进行到一半的工作(某个模块),小组 2 进行新需求的开发。
那么此时,我们就可以为小组2建立一个分支,分支其实就是 trunk 版(主干线)的一个copy版,不过分支也是具有版本控制功能的,而且是和主干线相互独立的,当然,到最后我们可以通过(合并)功能,将分支合并到 trunk 上来,从而最后合并为一个项目。
- 分支:
新建分支:
切换至另外一个分支:
两个分支进行开发:
Demo05这个文件在SVNTestDemo这一分支中是不存在的,它在另外的分支中,我们要进行合并操作:
3.4、TortoiseSVN客户端的使用
使用方法大同小异,这里只重点介绍一下解决冲突。
产生冲突:
同样生成三个文件:
编辑冲突:
冲突解决,再次提交!
更多推荐
所有评论(0)