linux svn服务器的搭建

一、修改SVN服务器的配置文件 

安装

Yum install subversion

在库创建完成之后会在conf下会生成svnserve.conf, passwd, authz三个文件。

1)svnserve.conf

anon-access = none

auth-access = write

password-db = passwd (svn密码文件,若有多个库,可将文件放到公共位置)

authz-db = authz   (目录权限文件,建议同上)

realm = /svn/project/  (认证域,相同认证域下的项目使用相同的passwd和authz,暂时不用理会)注意顶格写不要留空白这个配置完必须重启SVN服务器,而下面两个则不需要。

注:anon-access 未认证用户(简配为none,否者认证用户查看日志还需增加一些设置)

auth-access 经认证用户

password-db 指定用户及密码的配置文件,可以是相对路径

authz-db指定用户权限的配置文件,可以是相对路径

2)passwd文件: 

在[users]字段下增加用户及密码,例:

[users]

user1 = 123456

user2 = 123456

3)authz文件: 

[aliases]

joe = DC=red-bean, Joe Average [groups]

manager = gli developer = sli

[/]

* =

$anonymous =

$authenticated = r

szhang = r

&joe = r

@developer = r

@manager = rw

[testrepo:/]

* =

$anonymous =

$authenticated = r

szhang = r

&joe = r

@developer = r

@manager = rw

注:[aliases]字段为别名

[groups]将用户归类到组

[testrepo:/]指定具体目录的用户权限,可以为组,也可以为单独用户;组前以@开头,别名用户以&开头,单独用户不需要加前缀;*表示其他用户,$authenticate代表验证通过的用户,$anonymous代表未验证通过的用户。权限有rw、r和空,空表示没有任何权限。这里的路径[/]表示版本库根目录(svnserve时指定的路径),然后具体的版本库需写明路径,如[testrepo:/],需注意的是testrepo是一个版本库,其位于svn版本库根目录下,不可以写成[/testrepo:/]或[./testrepo:/],及版本库名之前为具体的linux下存放路径(如另一个版本库[mtk/mt6575:/]),另外由于版本库里面的内容目录结构是受SVN数据库管理的,不同于linux直接的文件目录,故需加[:/],例如需对testrepo版本库里的trunks分支增加权限控制,应写成[testrepo:/trunks/]

注:当[anon-access = read]将导致认证用户无法获取日志,此时设为[anon-access = none]即可导致认证用户无法获取日志

4) 建立svn版本库目录 

可建多个:

mkdir -p /opt/svndata/repos1

mkdir -p /opt/svndata/repos2

建立svn版本库

svnadmin create /opt/svndata/repos1

svnadmin create /opt/svndata/repos2

修改svn版本库配置文件 版本库1:

vi /opt/svndata/repos1/conf/svnserve.conf 内容修改为:

[general]

anon-access = none

auth-access = write

password-db = /opt/svn/conf/passwd.conf

authz-db = /opt/svn/conf/authz

realm = repos1

版本库2:

vi /opt/svndata/repos2/conf/svnserve.conf 内容修改为:

[general]

anon-access = none

auth-access = write

password-db = /opt/svn/conf/passwd

authz-db = /opt/svn/conf/authz

realm = repos2

即除realm = repos2外,其他与版本库1配置文件完全相同。如果有更多的版本库,依此类推。

5)配置允许访问的svn用户 

vi /opt/svn/conf/passwd

为了简化配置,2个版本库共用1个用户配置文件。如有必要,也可以分开。文件路径在svnserver.conf文件中passwd-db中定义。

注意:对用户配置文件的修改立即生效,不必重启svn。 

文件格式如下:

[users]

<用户1> = <密码1>

<用户2> = <密码2>

其中,[users]是必须的。下面列出要访问svn的用户,每个用户一行。示例:

[users]

alan = password

king = hello

6)配置svn用户访问权限 

vi /opt/svn/conf/authz

为了简化配置,2个版本库共用1个权限配置文件/opt/svn/conf/passwd。如有必要,也可以分开。文件中定义用户组和版本库目录权限。

注意:

* 权限配置文件中出现的用户名必须已在用户配置文件中定义。

* 对权限配置文件的修改立即生效,不必重启svn。

用户组格式:

[groups]

<用户组名> = <用户1>,<用户2>

其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。

版本库目录格式:

[<版本库>:/项目/目录]

@<用户组名> = <权限>

<用户名> = <权限>

其中,方框号内部分可以有多种写法:

/,表示根目录及以下。根目录是svnserve启动时指定的,我们指定为/opt/svndata。这样,/就是表示对全部版本库设置权限。(就是在svnserve –d –r /opt/svndata指定了)

repos1:/,表示对版本库1设置权限

repos2:/abc, ,表示对版本库2中的abc项目设置权限

repos2:/abc/aaa, ,表示对版本库2中的abc项目的aaa目录设置权限

权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。

示例:

[groups]

admin = alan

[/]

@admin = rw

[repos1:/abc/aaa]

king = rw

[repos2:/pass]

king =

注:svnserve配置文件概述

svnserve.conf,svn服务配置文件;passwd,用户名口令文件,该文件名在文件svnserve.conf中指定,缺省为同目录下的;auth,权限配置文件,缺省为同目录下。这两个文件路径都可以在svnserve.conf中指定。更改svnserve.conf 时,需要重起SVN,更改authz,passwd 文件时不需要重启

7)导入文件源代码

svn import /share/www file:///opt/svndata/repos1/test1 -m“注释”

将/share/www下的代码导入repose1库中,项目名称为test1。

8)重启SVN 命令

[[email protected] ]# lsof -i:3690

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

svnserve 13027 root    3u IPv4 122994      0t0  TCP *:svn (LISTEN)

[[email protected] ]# kill -9 13027

[[email protected] ]#svnserve -d -r /svn/project

提示:当更改svnserve.conf 时,需要重起SVN,更改authz,passwd 文件时不需要重起

9) 客户端  

到此服务配置完毕,在windows安装TortoiseSVN就能用了

10)Apache的配置 

如果想使用apache登录的话就需要添加一下配置

安装Apache的svn模块

$yum install mod_dav_svn

修改Apache配置,确认httpd.conf中包含Include conf.d/*.conf

vi /etc/httpd/conf.d/subversion.conf  默认subversion.conf是有的,没有的话就在modules文件夹中看看有没有mod_dav_svn.so,mod_authz_svn.so 如果有就在http.conf中添加

LoadModule dav_svn_module     modules/mod_dav_svn.so

LoadModule authz_svn_module   modules/mod_authz_svn.so

如果没有就说明模块安装不正确。

单个版本库:

<Location /svn>     #这个应该定位用的,在浏览器地址栏的地址在哪里

DAV svn

SVNPath  /svn/project/www        (指明资源库的路径)

AuthType Basic                    (认证类型为基本认证 )

AuthName "Subversion repository”(密码认证时的标题,随意)

AuthUserFile  /svn/passwd          (认证密码文件位置htpasswd密码)

AuthzSVNAccessFile /svn/authz   (目录权限文件位置)

Require valid-user                 (要求验证用户,即不能匿名访问)

</Location>

多个版本库:

<Location /svn>

DAV svn

SVNListParentPath on          (打开这个选项可以列出ParentPath下面的所有库)

SVNParentPath /svn/svnroot      (如果有多个库,使用该选项)

AuthType Basic

AuthName " Subversion repository "

AuthUserFile /svn/passwd

AuthzSVNAccessFile /svn/authz

Require valid-user

</Location>

注意:

(1)单个版本库就是SVNPath /svn/project/www【这个是对单个版本库】,多个版本库知道的主目录,我这就是 SVNParentPath /svn/project

(2)AuthzSVNAccessFile是权限控制文件,单个版本库不需要,多个版本库要设置不同版本库的权限要重启apache服务器

11)Apache验证方式

htpasswd -c /svn/passwd abc创建用户abc并按照提示设置密码,网页认证的时候使用该用户名和密码登录。后面再添加用户的时候去掉-c选项。       配好以后就可以通过Http页面来访问SVN了。注意密码和SVN服务器提供的是不一样的哦。

注:下面是一些htpasswd语法在apache安装目录下找到bin目录,该目录下有htpasswd执行文件 htpasswd -cmb /svn/passwd abc 123456

c  :create m:md5

b :在命令行上输入密码

解释:创建userfile文件,增加用户名为abc的用户,密码为md5加密的123456 更新密码

htpasswd userfile abc 添加新用户

htpasswd userfile xyz 删除用户

htpasswd -D userfile xyz 生成.htaccess

htpasswd -c .htaccess user

如果通过网页登录不了的话,可能要关掉selinux 关闭的方法:  setenforce 0

实际上关了好像不太好

二、Svn常用命令

导出项目:svnadmin dump/var/svn/pro1 > /mydata/pro1.backup

导入项目:

新建项目库:svnadmin create/var/svn/pro1/

执行导入:svnadmin load/var/svn/pro1/ < /mydata/pro1.backup

导入版本:svn import 需要导入的版本路径file://svn/test/aa -m”aa”

svn cat       # 显示特定版本的某文件内容。

svn list      # 显示一个目录或某一版本存在的文件列表。

svn log       # 显示svn 的版本log,含作者、日期、路径等。

svn log test.c  #查看文件test.c的日志修改信息。

svn diff      # 显示特定修改的行级详细信息。

svn diff -r 15:16 file:///svn/test1/   #版本15与版本16之间的差异

svn diff -r 5:6 text.c #比较版本5和版本6之间的text.c文件的变化。

svn cat -r 4 test.c     #查看版本4中的文件test.c的内容。

linux svn服务器的搭建

时间: 2024-10-28 11:32:57

linux svn服务器的搭建的相关文章

linux(centos7)下SVN服务器如何搭建

linux(centos)下SVN服务器如何搭建?说到SVN服务器,想必大家都知道,可以是在LINUX下如何搭建SVN服务器呢?那么今天给大家分享一下linux(centos)搭建SVN服务器的思路! 虽然在windows上搭建SVN很简单,但是效能却不高,这当然是和linux相比了.然而在linux上搭建SVN却非常繁琐,所以今天这篇文章就来一步一步教您如何在Centos上搭建SVN. 安装步骤如下: 1.yum install subversion 2.输入rpm -ql subversio

linux下svn服务器的搭建

网上的教程实在是太恶心了,不是太老,就是有问题,刚参考的一篇文章也有问题.自己记录下来,以后用就方便了,现在一边重新安装一遍,一边记录.笔者亲测,今天是5月29号深夜. linux用的是centos6.2,yum install subversion,安装svn服务端.本篇操作均为root用户权限. 1.建立svn库目录. mkdir -p /opt/svndata/repos1 2.建立版本库 svnadmin create /opt/svndata/repos1 3.修改配置文件 (1)服务

Linux(centos)下SVN服务器的搭建及简单配置和使用

Linux下Subversion(SVN服务器)的搭建: 1.安装Subversion #查看本机是否已安装subversion [[email protected] etc]# rpm -qa subversion [[email protected] etc]# #卸载旧版 [[email protected] etc]# yum remove subversion #安装SVN 为了便于以后操作同时安装其他服务  可以仅安装SVN [[email protected] etc]# yum

linux svn服务器搭建、客户端操作、备份与恢复

Subversion(SVN)是一个开源的版本控制系統,管理着随时间改变的数据.这些数据放置在一个中央资料档案库中,这个档案库很像一个普通的文件服务器,它会记住每一次文件的变动,这样就可以把档案恢复到旧的版本,或是浏览文件的变动历史. 本文目录: linux svn服务器部署 linux svn客户端命令操作 linux svn备份与恢复 一.linux svn服务器部署 1.安装svn [[email protected]~]#yum install -y subversion [[email

centos7下SVN服务器如何搭建

Centos7 搭建svn服务器 linux(centos)下SVN服务器如何搭建?说到SVN服务器,想必大家都知道,可以是在LINUX下如何搭建SVN服务器呢?那么今天给大家分享一下linux(centos)搭建SVN服务器的思路! 虽然在windows上搭建SVN很简单,但是效能却不高,这当然是和linux相比了.然而在linux上搭建SVN却非常繁琐,所以今天这篇文章就来一步一步教您如何在Centos上搭建SVN. 安装步骤如下: yum install subversion 查看安装位置

svn服务器的搭建以及利用svn hook与web根目录同步

svn原理图示 2.SVN服务器的搭建 1.查看是否安装svn   rpm -qa | grep subversion   2.安装 yum install subversion 3.测试是否安装成功   /usr/bin/svnserve --version   如提示以下内容,说明已安装成功   --------------------------------------   svnserve,版本 1.6.11 (r934486)      编译于 Apr 11 2013,17:28:04

svn 服务器的搭建 on Ubuntu

Subversion 如何在Ubuntu下安装配置Subversion服务器.已经配置好,不过没有配置开机自启动, 需要的时候,使用如下命令开启svn服务svnserve -d  -r  /opt/svn 1.首先需要安装Subversion软件:sudo apt-get install subversion2.创建仓库svnadmin create /opt/svn/var/svn 为所创建仓库的路径,理论上可以是任何目录3.修改配置文件/opt/svn/conf/svnserve.conf#

Linux FTP服务器的搭建与配置+基于关系型数据库实现用户认证

一.服务器端的安装: yum install vsftpd 1)查看安装后生成的哪些文件 [[email protected] ~]# rpm -ql vsftpd /etc/logrotate.d/vsftpd  <==========主志日志文件 /etc/pam.d/vsftpd<==================认证文件 /etc/rc.d/init.d/vsftpd<=============服务脚本 /etc/vsftpd<======================

SVN服务器本地搭建与使用

转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6623026.html  使用SVN进行代码管理,需要搭建服务端资源库,然后在使用SVN的电脑安装SVN客户端或者在Myeclipse集成SVN插件来下载资源库项目或提交项目修改.下面分步讲解: 1:下载SVN服务端软件并安装 下载地址:http://subversion.apache.org/packages.html 在最下面找到 VisualSVN ,点击进入下载页面,选择 VisualSVN serv