SVN服务端常用命令,服务配置学习笔记

这是一自己在配置Cent OS SVN 的一些笔记有需要的朋友可参考一下。

1.安装svn服务器端 
 
yum install subversion       
从镜像下载安装svn服务器端 
中间会提示是否ok,输入y,确认 
安装成功提示:.....complete! 
依次执行如下命令: 
cd /usr/local/              //进入目录,准备创建svn目录 
 
mkdir svnRepo                   //创建一个svn目录 
 
chmod -R 777 svnRepo            //修改目录权限为777 
 
svnadmin create /usr/local/svnRepo/first  //创建一个svn版本仓库first(first可以随便起名字) 
 
cd first/conf               //进入first版本仓库下的配置文件目录 
 
 
2.下面要修改这个目录下的三个配置文件 
 
 
(1)vi svnserve.conf    //配置版本库信息和用户文件和用户密码文件的路径、版本库路径 
 
 
把 
 
# anon-access = read 
 
# auth-access = write 
 
# password-db = passwd 
//这四行,前面的#号和空格去掉,变成 
 
anon-access = none      //改成none 
 
auth-access = write 
 
password-db = passwd 
 
realm = first           //改成自己的版本库 
保存退出 
 
 
 
(2)vi authz     //文件,创建svn组和组用户的权限 
 
[group] 
 
first = ddl,shl //创建一个first的组,并制定两个用户ddl和shl 
 
[/]             //制定根目录下的权限 
 
@first = rw     //first组用户权限为读写 
 
* = r           //其他用户只有读权限 
 
保存退出 
 
 
(3) vi passwd   //创建或修改用户密码 
 
[users] 
 
ddl = 123456    //用户名为gep的用户的密码为123456 
 
shl = 123456    //。。。 
 
保存退出 
 
 
3.然后要设置自启动 
 
vi /etc/rc.local     
打开自启动文件 
文件内容如下 
 
#!/bin/sh 

# This script will be executed *after* all the other init scripts. 
# You can put your own initialization stuff in here if you don't 
# want to do the full Sys V style init stuff. 
 
touch /var/lock/subsys/local 
添加下面一行 
svnserve -d -r /usr/local/svnRepo/first 
 
保存退出 
 
 
 
svn命令: 
 
lsof -i :3690   查看svn是否启动 
 
ps aux |grep 'svn'  查找所有svn启动的进程 
 
kill -9 2505    杀死2505这个查找到的svn进程 
 
svnserve -d -r /usr/local/svnRepo/first 启动svn(可以把这个放到/etc/local/rc.local文件中,实现开机自启动) 
 
 
 
 
SVN版本库起动方式,现在svnRepo下面有 first、test 两个版本库 
 
1:单版本库起动    svnserve -d -r /usr/local/svnRepo/first 
2:多版本库起动    svnserve -d -r /usr/local/svnRepo 
区别在于起动svn时候的命令中的启动参数-r指定的目录。 
 
 
 
4.限制不同的用户对不同的版本库操作权限,修改版本库中的conf目录下的 authz文件 
 
以配置 first 版本库为例 
 
vi authz 
 
[groups] 
 
company = user1,user2 
 
[first:/]             //指定版本库跟目录下的权限 
 
@company = rw     //company组用户权限为读写 
 
* = r           //其他用户只有读权限 
保存退出 
 
 
 
vi passwd 设置组中用户的账号和密码 
 
[users] 
 
user1  = 123456 
 
user2 = 123456 
 
5.客户端访问 
假设客户端使用tortoiseSVN 
打开资源库浏览器输入地址, svn://你的svn服务器ip:3690 
输入用户名ddl 密码12345 
因为没有网资源库里放文件所以需要你用客户端右键【create forder】,然后【add forder】 

Linux/Mac 系统所使用的SVN Serve,非Win上的 Visual SVN

搞了个服务器,然后现在想搞点事情,于是乎整个SVN在上面,算是熟悉下svn的操作过程

最近研究了下在Cent OS上配置SVN服务及版本库权限设置,下面是我的配置笔记

 

1、创建SVN服务器端版本库根目录

mkdir /webroot/svn

以下内容转载自:

#安装SVN
yum -y install subversion
#测试SVN是否已经安装好
svn
#创建svn版本库文件夹
mkdir /var/local/svn/
# 编辑自系统启动文件
vi /etc/rc.local
把光标用方向键移动到一个空行
按i输入下面语句
(如果有没有空行,把光标放在任意行按o)
svnserve -d -r /var/local/svn/
按esc,再输入:wq保存退出
启动svn服务
svnserve -d -r /var/local/svn/

2、创建SVN Repository

svnadmin create /webroot/svn/test

=== 创建版本库 ===
#创建新版本库test

3、配置权限

a、配置svnserve.conf

cd /webroot/svn/test/conf

vi svnserve.conf

# anon-access = read
# auth-access = write
# password-db = passwd
# authz-db = authz

前面的#号及空格去掉(注意:如果空格不去掉可能引起权限错误)

再将anon-access = read 改为anon-access = none,这样禁止匿名访问

b、配置passwd

vi passwd

条件用户密码:test=123456

c、配置authz

vi authz

[groups]后面跟的是用户组,可以将passwd里设置的用户添加到不同的用户组里,多个用户用,号分隔

[groups]

group1=test1,test2

group2=test3,test4

之后可以对不同的版本库进行权限设置,如果对所以的版本库设置用[/]

[/]

@group1=rw

@group2=r

[/test2]

@group1=rw


svnadmin create /var/local/svn/test

== 配置版本库权限 ==
# 进入版本库配置文件目录
cd /var/local/svn/test/conf

编辑基本权限文件
vi svnserve.conf
输入:%d a清空文件内容
再按i进入编辑模式,输入
[general]
password-db = passwd
anon-access = none
auth-access = write
authz-db = authz
按esc输入:wq保存并退出编辑器

配置用户和密码
vi passwd
按i进入编辑模式按照下列格式输入用户名和密码
[users]
用户名 = 密码
例如:
[users]
echo = 123456
peter = 8888888
colt = 7788414
按esc输入:wq保存并退出编辑器

配置用户访问权限
vi authz
按照下列模板输入分组信息
[groups]
组名 = 用户名,用户名...
举例
[groups]
manager = echo
developer = colt, echo
client = peter

版本库路径及权限设置
格式
[版本库名称:版本库内部文件夹路径]
@组名称 = 读写权限(r读,w写,rw读写)
* = r (全局读写权限)

举例,版本库根目录
[test:/]
@manager = rw
@developer = rw
* = r

举例,用户反馈目录
[test:/feedback]
@client = rw
* = r

编辑完后文件的所有内容应该如下:
[groups]
manager = echo
developer = colt, echo
client = peter
[test:/]
@manager = rw
@developer = rw
* = r
[test:/feedback]
@client = rw
* = r

编辑完毕后按esc输入:wq保存并退出编辑器

客户端checkout svn版本库地址
svn://服务器IP地址:3690/版本库名
例如
svn://192.168.1.1:3690/test

OS SVN 的一些笔记有需要的朋友可参考一下。 最近研究了下在Cent OS上配置SVN服务及版本库权限设置,下面是我的配置笔...

4、启动SVN服务

svnserve -d -r /webroot/svn

Linux搭建SVN 服务器

作者: 沈小然    日期:2014年 8月 5日

5、停止SVN服务

kill -9 svnserve或

killall svnserve

1          安装SVN

官网下载:

SVN客户端:TortoiseSVN,官网下载:

# yum install subversion

 

1.       新建一个目录用于存储SVN所有文件

# mkdir /svn

 

2.       新建一个资源仓库

# svnadmin create /svn/project

# ls /svn/project/

 

conf  db  format  hooks  locks  README.txt

目录用途说明:

l  hooks目录:放置hook脚本文件的目录

l  locks目录:用来放置subversion的db锁文件和db_logs锁文件的目录,用来追踪存取文件库的客户端

l  format文件:是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号

l  conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)

3.       配置svn服务的配置文件svnserver.conf文件

# vi /svn/project/conf/svnserve.conf

注:

这里可以使用vim编辑器等工具

vim编辑器的使用方法是

打开文件之后,按“I”键

光标定位到相应的位置即可修改

然后按“esc”,输入“:wq”

保存退出

具体还是要查看一下vim的使用说明

[general]

anon-access = none

auth-access = write

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

authz-db = /svn/project/conf/authz

realm = My Test Repository         #这是个提示信息

保存

4.       添加两个访问用户及口令

# vi /svn/project/conf/passwd

 

[users]

xiaoran.shen = 123456

test1 = 123456

test2 = 123456

保存

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

5.       配置新用户的授权文件

# vi /svn/project/conf/authz

 

[groups]

admin = xiaoran.shen,test1

user = test2

 

[/]

@admin = rw

@user = r

* =

保存

格式说明:

版本库目录格式: 

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

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

<用户名> = <权限>

/ 表示对根目录(即/svn/project目录)下的所有子目录范围设置权限;

[/abc] 表示对资料库中abc项目设置权限;

创建一个admin组,组成员包括xiaoran.shen和test1

创建一个user组,成员只有test2;

admin组对目录有读写权限;

单个用户test2有读写权限;

*=表示除了上面设置的权限用户组以外,其他所有用户都设置空权限,空权限表示禁止访问本目录,这很重要一定要加上。

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

6.       启动svn服务

svnserve -d -r /svn/project/

 

注意:不要使用系统提供的 /etc/init.d/svnserve start 来启动,因为系统默认的启动脚本中没有使用 –r /svn/project参数指定一个资源。这种情况下启动的svn服务,客户端连接会提示“svn: No repository found in 'svn://192.168.11.229/project' ”这样的错误。

默认svn服务器端口是3690。

杀死svn服务:

# ps -ef|grep svn

 

root      4642     1  0 16:08 ?        00:00:00 svnserve -d -r /svn/project/

root      4692  3676  0 16:13 pts/2    00:00:00 grep svn

# kill -9 4642

 

若要使用/etc/init.d/svnserve 脚本,可以修改start()函数部分,如下:

start() {

    [ -x $exec ] || exit 5

    [ -f $config ] || exit 6

    echo -n $"Starting $prog: "

    daemon --pidfile=${pidfile} $exec $args -r /svn/project

    retval=$?

    echo

    [ $retval -eq 0 ] && touch $lockfile

    return $retval

}

完成 

2          使用客户端连接

2.1       使用windows的客户端

打开TortoiseSVN Repository Browser工具

在URL中输入:

svn://192.168.11.229回车,提示输入用户名和口令

图片 1

2.2       使用Linux下的命令行

# svn co svn://192.168.11.229

 

3          FAQ

3.1       命令行方式连接,提示svn: No repository found in 'svn://192.168.11.229/project'错误?

解决:启动svn服务的时候没有使用-r /svn/project参数,没有指明资源库的具体路径。使用# svnserve -d -r /svn/project/ 命令来启动就可以了,不要使用/etc/init.d/svnserver脚本。

3.2       执行命令# svn co svn://192.168.11.229/project时提示“svn: Authorization failed”错误?

解决:一般这种授权失败的错误原因都来自conf/authz文件的配置

正确的配置如下:

[groups]

admin = xiaoran.shen,test1

user = test2

[/]

@admin = rw

@user = rw

* =

保存

本文由星彩网app下载发布于星彩网app下载,转载请注明出处:SVN服务端常用命令,服务配置学习笔记

TAG标签: 星彩网app下载
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。