SVN服务器搭建详解

1 SVN简介:

Subversion是一款自由开放的版本控制软件。Subversion可以管理文件、文件夹以及记录它们的修改状况。Subversion常用来帮助我们管理软件开发的源代码或是公司手册文档。

Subversion通过将文档导入至版本库中进行管理,版本库类似于文件服务器,但比文件服务器更强大的是它可以记录你每一次对文件或目录的修改状况,并提供还原数据至老版本的功能。

2 SVN三种访问模式:

客户端访问服务端时可以通过svnserve访问、svnserver+ssh访问、Apache间接访问。

1.svnserve是一个小巧、轻便的服务器程序,通过它客户端可以使用Subversion专有的协议进行访问,
其特点是设置简单。

2.由于svnserve本身并不提供加密通讯的功能,所以如果你需要更安全的连接,可以使用svnserve+ssh
的方式,通过连接SSH服务器建立在SSH隧道,在通过SSH调用svnserve程序。

3.Apache通过mod_dav_svn访问版本库,使得客户可以通过访问Apache取得版本库资料进行版本控制。

4.svnserver 示例:
安装Subversion
    [root@localhost ~]# yum -y install subversion
创建版本库
    [root@localhost ~]# mkdir /var/svn
    [root@localhost ~]# svnadmin create /var/svn/project1
导入数据到版本库
    [root@localhost ~]# svn import /java  file:#/var/svn/project1 -m "Initial DATA"
      将java目录中的文件导入版本库,使其版本化。-m后跟说明性字符串,可任意输入
    [root@localhost ~]# svn list file:#/var/svn/project1/  #列出版本库中的文件列表
    [root@localhost ~]# mkdir /test; cd  /test          #创建本地拷贝数据目录
将版本库中文件拷贝至本地
    [root@localhost ~]# svn checkout file:#/var/svn/project1 
在本机保存一份本地拷贝后,以后即就当作普通文件对其进行修改,修改完成后随时可以上传回版本库,更新版本库  
    [root@localhost ~]# svn commit -m "JAVA"
守护进程启动svnserve服务    
    [root@localhost ~]# svnserve -d
客户端需要指定据对路径访问版本库如svn:#CentOS.example.com/var/svn/project1

    [root@localhost ~]# svnserve -d -r /var/svn/project1      
限制仅发布project1一个版本库至网络
    客户端可以使用相对路径访问版本库如svn:#centos.example.com/project1

svnserve.conf中定义的认证与授权策略实现权限控制
[root@localhost ~]# vim /var/svn/project1/conf/svnserve.conf
[general]

# anon-access = read      #匿名用户权限为只读,此处可以设置为none,read,write 
# auth-access = write      #经过认证的用户权限为可写 
# password-db = passwd    #指定用户存放用户名与密码的文件,该文件位于conf目录下名为passwd 
# authzauthz-db = authz  #指定基于版本库路径的访问控制(可以对文件或目录设置权限) 
# real = My First Repository  #设置版本库域,如果两个版本库的认证域相同,他们将使用相同的密码数据

修改passwd与authz文件:
[root@localhost ~]# vim /var/svn/project1/conf/passwd
[users] 
# harry = harryssecret      #用户名为harry密码为harryssecret 
# sally = sallyssecret      #用户名为sally密码为sallyssecret 
[root@localhost ~]# cim /var/svn/project1/conf/authz
[groups]

admins = harry,sally        #定义组,组成员有harry与sally 
[/]                  #对版本库根路径设置权限,可以设置为你需要控制的路径 
@admins = rw            #admins组中的用户用户可读,可写权限 
* = r                #其他所有人只读,权限可以设置为只读('r'),读写('rw'),无权限('')
客户端我们使用Windows下的TortoiseSVN图形工具
安装好后,右键 > SVN 检出 > 版本库URL:svn:#192.168.1.6/java 
填好用户名密码,检出到本地

Ubuntu 14.04 下搭建SVN服务器 SVN://  http://www.linuxidc.com/Linux/2015-01/111956.htm

CentOS 7下安装iF.svnadmin实现Web方式管理SVN(源码安装)  http://www.linuxidc.com/Linux/2016-08/134214.htm

CentOS 6.5部署Apache+SVN  http://www.linuxidc.com/Linux/2013-12/94315.htm

Apache+SVN搭建SVN服务器 http://www.linuxidc.com/Linux/2013-03/81379.htm

Windows下SVN服务器搭建和使用 + 客户端重新设置密码 http://www.linuxidc.com/Linux/2013-05/85189p5.htm

CentOS 6.6搭建SVN服务器 http://www.linuxidc.com/Linux/2016-12/137864.htm

CentOS 7.2下Nginx+MySQL+PHP-FPM+SVN配置Walle自动化部署系统详解 http://www.linuxidc.com/Linux/2016-11/137703.htm

CentOS 7.1 下SVN安装与配置 http://www.linuxidc.com/Linux/2016-12/138637.htm

Subversion (SVN) 的详细介绍请点这里
Subversion (SVN) 的下载地址请点这里

本文永久更新链接地址http://www.linuxidc.com/Linux/2017-01/139195.htm

服务器subversion跟客户端tortioseSVN服务器上已经有了, 下边是如果再把我的目录加上去. 首先要创建个版本库(resposity)加权限~~~~~~~~~~ 在目录如E:\repository下"右键->TortoiseSVN->Create Repository here...“, 然后可以选择版本库模式, 这里使用默认即可, 然后就创建了一系列目录和文件。 resposity 目录,里边conf子目录下面有两个文件是控制用户权限的. 修改svnserve.conf: # [general] # password-db = passwd 改为: [general] password-db = passwd 然后修改同目录的passwd文件,去掉下面三行的注释: # [users] # harry = harryssecret # sally = sallyssecret 最后变成: [users] harry = harryssecret sally = sallyssecret 其次是运行svn服务器~~~~~~~~~~ 在cmd下运行 svnserve -d -r E:\repository 我们的服务器程序就已经启动了。 注意不要关闭命令行窗口,关闭窗口也会把svnserve停止。 之后到初始化导入~~~~~~~~~~ 来到我们想要导入的项目根目录,如E:\Project,目录下有一个readme.txt文件: 右键->TortoiseSVN->Import... URL of repository输入“svn://localhost/” ok 完成之后目录没有任何变化,如果没有报错,数据就已经全部导入到了我们刚才定义的版本库中。 需要注意的是,这一步操作可以完全在另一台安装了TortoiseSVN的主机上进行,即在另一台客户端咯。 如运行svnserve的主机的IP是192.168.1.40,则URL部分输入的内容就是“svn://192.168.1.40/” 导入完之后,其他机子只要装上Tortiose svn,之后url上边输入svn://192.168.1.40/就可以checkout咯. 之后用法也很简单
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值