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
Windows-Linux下的SVN服务器搭建及SVN操作_第1张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第2张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第3张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第4张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第5张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第6张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第7张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第8张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第9张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第10张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第11张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第12张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第13张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第14张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第15张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第16张图片

接下来我们要修改配置文件:
Windows-Linux下的SVN服务器搭建及SVN操作_第17张图片

  • authz:负责账号权限的管理,控制账号是否读写权限
  • passwd:负责账号和密码的用户名单管理
  • svnserve.conf:svn服务器配置文件

将红框前的#删除
Windows-Linux下的SVN服务器搭建及SVN操作_第18张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第19张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第20张图片

在浏览器中查看创建的仓库:
Windows-Linux下的SVN服务器搭建及SVN操作_第21张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第22张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第23张图片
SVN服务端安装成功了!

2、第二个安装TortoiseSVN-1.9.6.27867-x64-svn-1.9.6.msi
Windows-Linux下的SVN服务器搭建及SVN操作_第24张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第25张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第26张图片
在右键菜单中可以看见安装好的客户端:
Windows-Linux下的SVN服务器搭建及SVN操作_第27张图片

3、第三个安装TortoiseSVN中文语言包
Windows-Linux下的SVN服务器搭建及SVN操作_第28张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第29张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第30张图片
原先的英文变成了汉字:
Windows-Linux下的SVN服务器搭建及SVN操作_第31张图片

我们可以向仓库中上传文件,并在浏览器中查看:
Windows-Linux下的SVN服务器搭建及SVN操作_第32张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第33张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第34张图片


二、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-Linux下的SVN服务器搭建及SVN操作_第35张图片

第四步:修改配置
      修改配置和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默认端口)
Windows-Linux下的SVN服务器搭建及SVN操作_第36张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第37张图片


三、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文件,并提交。
    Windows-Linux下的SVN服务器搭建及SVN操作_第38张图片
    此时JACK本地中的版本已经过时了,JACK要进行更新操作。
svn update

这里写图片描述
JACK本地中edits.txt内容更新为:
Windows-Linux下的SVN服务器搭建及SVN操作_第39张图片

  • 版本回退:
    使用SVN我们可以很方便的回退到上一个版本,从而放弃对文件的修改。
svn revert xxx

修改edits.txt文件
Windows-Linux下的SVN服务器搭建及SVN操作_第40张图片
查看工作副本状态:
这里写图片描述
M表示edits.txt修改了。
现在我使用命令进行版本回退:
这里写图片描述
回退成功!
这里写图片描述

3.3、Eclipse安装SVN插件及使用
Eclipse安装SVN插件:

1. 离线安装:
svn插件:https://pan.baidu.com/s/1UO0v7bQWxFv1TqbPH5qgeQ
安装方法十分简单,将svn插件压缩包解压后直接放到eclipse根目录下dropins文件夹下。
Windows-Linux下的SVN服务器搭建及SVN操作_第41张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第42张图片

2. 在线安装:
(1)、点击 Help –> Install New Software
Windows-Linux下的SVN服务器搭建及SVN操作_第43张图片
(2)、在弹出的窗口中点击add按钮,输入Name(任意)和Location(插件的URL),点击OK
http://subclipse.tigris.org/update_1.6.x
Windows-Linux下的SVN服务器搭建及SVN操作_第44张图片
(3)、勾选出现的插件,一步步安装即可。
Windows-Linux下的SVN服务器搭建及SVN操作_第45张图片
安装成功!!

Subclipse插件的使用:
  • 分享项目:
    Windows-Linux下的SVN服务器搭建及SVN操作_第46张图片
    Windows-Linux下的SVN服务器搭建及SVN操作_第47张图片
    输入自己资源库的URL
    Windows-Linux下的SVN服务器搭建及SVN操作_第48张图片
    一路next后将项目分享至资源库。
    在SVN资源库视图我们可以看见分享的工程:
    Windows-Linux下的SVN服务器搭建及SVN操作_第49张图片
    现在我们要进行提交:
    Windows-Linux下的SVN服务器搭建及SVN操作_第50张图片

现在查看要分享的工程,出现黄色圆柱体图标:
这里写图片描述

现在我们在工程中新建一个文件:
Windows-Linux下的SVN服务器搭建及SVN操作_第51张图片

将新增文件添加至版本控制:
Windows-Linux下的SVN服务器搭建及SVN操作_第52张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第53张图片
将新增文件提交至版本库:
Windows-Linux下的SVN服务器搭建及SVN操作_第54张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第55张图片

实际上我们不需要手动进行add操作,直接提交就行了,插件会自动帮我们add。

  • 检出操作:
    Windows-Linux下的SVN服务器搭建及SVN操作_第56张图片
    Windows-Linux下的SVN服务器搭建及SVN操作_第57张图片
    Windows-Linux下的SVN服务器搭建及SVN操作_第58张图片
    Windows-Linux下的SVN服务器搭建及SVN操作_第59张图片
    Windows-Linux下的SVN服务器搭建及SVN操作_第60张图片
    Windows-Linux下的SVN服务器搭建及SVN操作_第61张图片
    Windows-Linux下的SVN服务器搭建及SVN操作_第62张图片

  • 更新操作:
    Windows-Linux下的SVN服务器搭建及SVN操作_第63张图片
    将修改后的版本提交至版本库中,那么其他人的本地版本就是过时了。
    我们要进行更新操作:
    Windows-Linux下的SVN服务器搭建及SVN操作_第64张图片
    Windows-Linux下的SVN服务器搭建及SVN操作_第65张图片

  • 解决冲突:
    制造冲突:
    修改第5行并提交。
    Windows-Linux下的SVN服务器搭建及SVN操作_第66张图片

另外一人也修改第5行并提交
Windows-Linux下的SVN服务器搭建及SVN操作_第67张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第68张图片
冲入制造成功,现在我们要解决冲突。

解决冲突的第一步:进行更新操作。
我们会发现以下变化:
Windows-Linux下的SVN服务器搭建及SVN操作_第69张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第70张图片
第二步编辑冲突:
Windows-Linux下的SVN服务器搭建及SVN操作_第71张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第72张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第73张图片
标记为解决:
Windows-Linux下的SVN服务器搭建及SVN操作_第74张图片
再次提交:
Windows-Linux下的SVN服务器搭建及SVN操作_第75张图片

  • 代码还原:
    在某次操作中我将Demo01修改了:
    Windows-Linux下的SVN服务器搭建及SVN操作_第76张图片
    现在我们想将Demo01还原回历史版本:
    Windows-Linux下的SVN服务器搭建及SVN操作_第77张图片

    • 分支:
            Branch 选项会给开发者创建出另外一条线路。当有人希望开发进程分开成两条不同的线路时,这个选项会非常有用。
            比如项目 SVNTestDemo下有两个小组,svn 下有一个 trunk 版(主分支)。
            由于客户需求突然变化,导致项目需要做较大改动,此时项目组决定由小组 1 继续完成原来正进行到一半的工作(某个模块),小组 2 进行新需求的开发。
            那么此时,我们就可以为小组2建立一个分支,分支其实就是 trunk 版(主干线)的一个copy版,不过分支也是具有版本控制功能的,而且是和主干线相互独立的,当然,到最后我们可以通过(合并)功能,将分支合并到 trunk 上来,从而最后合并为一个项目。

新建分支:
Windows-Linux下的SVN服务器搭建及SVN操作_第78张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第79张图片
切换至另外一个分支:
Windows-Linux下的SVN服务器搭建及SVN操作_第80张图片
两个分支进行开发:
Windows-Linux下的SVN服务器搭建及SVN操作_第81张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第82张图片
Demo05这个文件在SVNTestDemo这一分支中是不存在的,它在另外的分支中,我们要进行合并操作:
Windows-Linux下的SVN服务器搭建及SVN操作_第83张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第84张图片

3.4、TortoiseSVN客户端的使用

使用方法大同小异,这里只重点介绍一下解决冲突。
产生冲突:
Windows-Linux下的SVN服务器搭建及SVN操作_第85张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第86张图片
同样生成三个文件:
这里写图片描述
编辑冲突:
Windows-Linux下的SVN服务器搭建及SVN操作_第87张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第88张图片
Windows-Linux下的SVN服务器搭建及SVN操作_第89张图片

冲突解决,再次提交!

你可能感兴趣的:(SVN)