一、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客户端的使用

使用方法大同小异,这里只重点介绍一下解决冲突。
产生冲突:
这里写图片描述
这里写图片描述
同样生成三个文件:
这里写图片描述
编辑冲突:
这里写图片描述
这里写图片描述
这里写图片描述

冲突解决,再次提交!

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐