Linux搭建SVN服务器详细教程

Linux搭建SVN服务器详细教程前言本文讲解Linux系统下如何搭建SVN服务器,详细说明各配置项的功能,最终实现可管控多个项目的复杂配置SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的

大家好,又见面了,我是你们的朋友全栈君。

前言

 

本文讲解Linux系统下如何搭建SVN服务器,详细说明各配置项的功能,最终实现可管控多个项目的复杂配置

<span role="heading" aria-level="2">Linux搭建SVN服务器详细教程

 

 

 

SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,实现最终集中式的管理。

目前很多互联网公司在使用SVN,优点在于使用方便、易于管理。与之对应的分布式的版本控制系统Git则更加灵活。

搭建

安装SVN

  //Ubuntu

        apt-get install subversion

        //Centos

        yum install subversion   

 

查看是否安装成功,可以查看版本。

         svnserve –version

 

<span role="heading" aria-level="2">Linux搭建SVN服务器详细教程

 

 

 提示版本1.13.0,说明已安装成功。

创建版本库目录

创建SVN版本库目录,为后面创建版本库提供存放位置,也是最后启动SVN服务的根目录。

我们在/usr路径下创建svn目录作为版本库目录。

cd /usr mkdir svn

Linux系统各目录知识延伸:

<span role="heading" aria-level="2">Linux搭建SVN服务器详细教程

 

 

 所以,将SVN库存放在用户文件目录/usr下比较合理

创建SVN版本库

在上一步建立路径基础上,创建版本库,如dev。

cd /usr/svn

svnadmin create dev

创建成功后,可以查看到dev目录下生成的文件。

 <span role="heading" aria-level="2">Linux搭建SVN服务器详细教程

 

 

 

修改SVN配置

进入conf目录,查看需要修改的配置文件。

cd /usr/svn/dev/conf

ls

<span role="heading" aria-level="2">Linux搭建SVN服务器详细教程

 

 

 配置文件:

  • authz:权限配置文件,控制读写权限
  • passwd:账号密码配置文件
  • svnserve.conf:svn服务器配置文件

修改svnserve.conf文件

vim svnserve.conf

<span role="heading" aria-level="2">Linux搭建SVN服务器详细教程

 

 

去掉anon-access、auth-access、password-db、authz-db、realm几项前的注释符号“#”。

配置项含义:

  • anon-access = none|read|write 决定非授权用户的访问级别。none 表示无访问权限,read 表示只读,write 表示可读可写,默认为 read。
  • auth-access = none|read|write 决定授权用户的访问级别,使用与上面相同的访问级别。默认为 write。
  • password-db = filename 指定账号密码数据库文件名。filename 是相对仓库中 conf 目录的位置,也可以设置为绝对路径,默认为passwd。
  • authz-db = filename 指定权限配置文件名,filename 是相对仓库中 conf 目录的位置,也可以设置为绝对路径,默认为authz。
  • realm = realm-name 指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的账号密码数据库文件passwd。

认证域知识延伸:

在SVN客户端登录时,会提示realm认证域,如下图的认证域My First Repository。

<span role="heading" aria-level="2">Linux搭建SVN服务器详细教程

 

 vim passwd

<span role="heading" aria-level="2">Linux搭建SVN服务器详细教程

 

 只需在末尾添加账号和密码,格式 账号 = 密码,如user1 = 123456,可添加多个。

修改authz文件

vim authz

在根目录下设置user1、user2读写权限:

<span role="heading" aria-level="2">Linux搭建SVN服务器详细教程

 

 

如果用户比较多,可以使用groups形式设置分组team1,并在根目录下指定分组@team1的权限:

<span role="heading" aria-level="2">Linux搭建SVN服务器详细教程

 

 如果想设置其他用户的权限,可以通过*设置,如设置除@team1分组外其他用户只读权限:

[/]

@team1 = rw

* = r

启动SVN服务

执行SVN启动命令,其中参数-d表示以守护进程的方式启动, -r表示设置的根目录。

svnserve -d -r /usr/svn/

关闭svn命令:

killall svnserve

本地访问SVN服务

在windows系统中,安装TortoiseSVN软件,创建一个本地目录,右键选择SVN Checkout测试下,URL填写svn://IP/dev,dev替换成你创建的版本库名称。

<span role="heading" aria-level="2">Linux搭建SVN服务器详细教程

 

 

输入passwd配置好的用户。

<span role="heading" aria-level="2">Linux搭建SVN服务器详细教程

 

 

Checkout completed,SVN访问成功,这就Nice了~

<span role="heading" aria-level="2">Linux搭建SVN服务器详细教程

 

 

 

扩展

设置查看log日志

想查看提交的svn log日志,需要进一步配置。

编辑svnserve.conf,设置:

anon-access = none 

编辑authz文件中添加:

[/]
* = 

这样通过鼠标右键TortoiseSVN->show log就可以查看svn提交的历史记录了。

多个项目管控配置

SVN配置文件是很灵活的,如果想使用统一的账户和权限去管控多个项目,可以将多个项目的authz和passwd文件统一放在一处,在多个项目的svnserve.conf文件中配置这两个文件的绝对路径,并在authz中对不同的项目设置用户访问权限。

如:a、b、c、d这4个用户,p1、p2两个项目,其中a、b只能访问p1,c、d只能访问p2。

创建版本库目录

mkdir /usr/svn 

创建多个版本库

cd /usr/svn svnadmin create p1 svnadmin create p2 

创建管理用户权限目录

mkdir /var/svn/conf cd /p1/conf cp authz passwd /var/svn/conf 

修改配置文件

修改p1的svnserve.conf文件:

anon-access = none auth-access = write password-db = /var/svn/conf/passwd authz-db = /var/svn/conf/authz realm = p1 

修改p2的svnserve.conf文件:

anon-access = none auth-access = write password-db = /var/svn/conf/passwd authz-db = /var/svn/conf/authz realm = p2 

password-db和authz-db都使用统一管理用户权限目录,使用绝对路径。

修改password-db文件

[users] a = 123 b = 123 c = 123 d = 123 

修改authz文件

[groups] //分组 p1user = a,b p2user = c,d [/] * = #以上没有定义的用户都没有任何权限 [p1:/] //p1的访问控制,c、d无法访问 @p1user = rw [p2:/] //p2的访问控制,a、b无法访问 @p2user = rw 

对password-db和authz文件的修改立即生效,不必重启svn。

启动svn服务

svnserve -d -r /usr/svn/

访问不同项目SVN

同样TortoiseSVN软件,选择SVN Checkout测试。

访问项目p1 URL svn://IP/p1 访问项目p2 URL svn://IP/p1 

统一的配置文件,不同项目限定了不同用户访问,这样就实现了管控多个项目的SVN配置。

以上就是Linux系统搭建SVN服务器详细教程的所有内容,希望对大家有所帮助。

你学“废”了么?

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154649.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SOAP 协议「建议收藏」

    SOAP 协议「建议收藏」参考链接SOAP教程http协议与soap协议之间的区别SOAPSOAP是基于XML的简易协议,可使应用程序在HTTP之上进行信息交换SOAP提供了一种标准的方法,使得运行在不同的操作系统并使用不同的技术和编程语言的应用程序可以互相进行通信SOAP协议可以简单地理解为:SOAP=RPC+HTTP+XML采用HTTP作为通信协议RPC(RemoteProcedureCallProtocol远程过程调用协议)作为一致性的调用途径XML作为数据传送的格式,从而允许服务提供

    2022年7月12日
  • SpringBoot入门(个人总结)

    @纯属个人学习总结,不喜勿喷哈。(学习来自慕课网)我觉得学习SpringBoot需要具备的前置知识熟悉maven构建项目;懂得Spring注解开发的知识;了解restful API的理论知识(http://www.ruanyifeng.com/blog/2011/09/restful.html)一、SpringBoot介绍我们在做java的项目中经常被xml的配置搞得头大…

    2021年11月30日
  • BindingNavigator控件[通俗易懂]

    BindingNavigator控件[通俗易懂]WinForm之中BindingNavigator控件的使用在微软WinForm中,BindingNavigator控件主要用来绑定数据。可以将一个数据集合与该控件绑定,以进行数据联动的显示效果。如图下图所示:那么,下面我们就来用BindingNavigator控件做一下上图所示的效果。分析:该案例以BindingNavigator控件为主线,我们定义一个实体类

    2022年7月12日
  • python社交网络分析_python编程:从入门到实践

    python社交网络分析_python编程:从入门到实践NLP之情感分析:基于python编程(jieba库)实现中文文本情感分析(得到的是情感评分)输出结果1、测试对象data1=’今天上海的天气真好!我的心情非常高兴!如果去旅游的话我会非常兴奋!和你一起去旅游我会更加幸福!’data2=’今天上海天气真差,非常讨厌下雨,把我冻坏了,心情太不高兴了,不高兴,我真的很生气!’data3=’美国华裔科学家,祖籍江苏扬州市高邮县,…

    2022年8月10日
  • 俄罗斯方块(C语言实现)

    俄罗斯方块(C语言实现)文章目录游戏说明游戏效果展示游戏代码游戏代码详解游戏框架构建隐藏光标光标跳转初始化界面初始化方块信息颜色设置画出方块空格覆盖合法性判断游戏主体逻辑函数判断得分与结束主函数游戏说明俄罗斯方块相信大家都知道,这里就不再介绍什么游戏背景了,我这里对本代码实现的俄罗斯方块作一些说明:按方向键的左右键可实现方块的左右移动。按方向键的下键可实现方块的加速下落。按空格键可实现方块的顺时针旋转。按Esc键可退出游戏。按S键可暂停游戏,暂停游戏后按任意键继续游戏。按R键可重新开始游戏。除此之外,本游戏还

    2022年5月19日
  • 微信公众平台域名设置「建议收藏」

    微信公众平台域名设置「建议收藏」微信公众平台域名设置微信公众平台的开发目前可在三个地方配置域名,域名所起到的作用不尽相同,本篇文章将讲解微信公众平台如何配置、以及配置后的域名各有什么样的作用(注:文章中的图片来源于个人的微信订阅号、接口测试号)。基本配置登录微信公众平台后,在“开发”菜单下有个“基本配置”菜单;图1基本配置点开后可看到“公众号开发信息”、“服务器配置(未启用)”、“已绑定的微信开放平…

    2022年6月18日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号