Ubuntu安装svn

目录

安装svn和创建版本库...…………..1

用户权限管理... ………………………2

启动SVN.. ………………………………3

客户端访问...…………………………. 4

附加:单版本库和多版本库的配置

安装svn和创建版本库

1、  安装:sudo apt-get  install subversion.            //安装的内容一般存放在/usr/bin/

2、  检查安装是否成功:/usr/bin/svnserve --version

以下已创建MCD项目版本库(单版本库)为例

3、创建文件夹:mkdir –p /opt/src/repositories/          //存放版本库

4、进入repositories目录:cd /opt/src/repositories/,创建MCD版本库

   a、创建文件夹 mkdir MCDRE,

   b、创建版本库并指定数据存储模式为FSFS:

/usr/bin/svnadmin create --fs-type fsfs /opt/src/repositories/MCDRE/

   c、检查是否创建成功:ls  /opt/src/repositories/MCDRE/,显示以下内容创建成功

            conf  db  format  hooks  locks  README.txt

5、创建项目临时目录:mkdir –p /opt/src/temps/MCD/{trunk,tags,branches}

6、复制项目文件到trunk目录下:cp –r MCD /opt/src/temps/MCD/trunk/  //这一步可以忽略

7、导入所需要的项目到版本库MCDRE中:

   /usr/bin/svn import /opt/src/temps/MCD/  file:///opt/src/reposiories/MCDRE/ -m “MCD repository” 

8、检查是否导入成功:/usr/bin/svn list –verbose file:///opt/src/repositories/MCDRE/

9、修改版本库文件权限:

chmod 770 /opt/src/repositories/MCDRE

chmod –R g+w /opt/src/repositories/MCDRE

用户权限管理

涉及的主要由三个文件:svnserve.conf、passswd、authz 

//存放于/opt/src/repositories/MCDRE/conf/

1、  Svnserve.conf: 版本库的配置文件;passwd: 允许访问版本库的用户文件;authz: 用户访问版本库的权限

a、 修改svnserve.conf文件:vi /opt/src/repositories/MCDRE/conf/ svnserve.conf,该文件的内容包括(注意:每一行前面不能有空格,否则会出现Option expected错误):

[general]

#anon-access = none                   //设置是否允许匿名登录

auth-access = write                     //设置用户密码登陆

password-db = passwd                //指定passwd文件的位置

authz-db = authz                        //指定authz文件的位置

realm = repository

[sasl]

b、修改passwd文件:vi /opt/src/repositories/MCDRE/conf/ passwd,该文件的内容包括:

[users]

 wshijun1=wshijun1                         //用户名=密码,每个用户一行

wshijun2=wshijun2

c、修改authz文件:vi /opt/src/repositories/MCDRE/conf/authz,该文件的内容包括:

         用户组格式:

[groups]

qianqiu=wshijun1,wshijun2//用户间以逗号分割

版本库目录格式:

[/]   

@qianqiu=permissions  //用户组名=权限

[/trunk/doc]   //指定该用户只能访问该目录

Lwchuhao2=permissions  //用户名=权限

[]可以有多种定义 /表示对全部的版本库设置权限,repos1:/表示对repos1设置权限,repos2:/www表示对repos2中的www项目设置权限,repos2:/www/example.com表示对repos2中的www项目的example.com目录设置权限。(注:svn客户端访问时也许按照设置的路径进行访问,如:svn://192.168.0.9/trunk/doc)可以用*来表示所有用户。

权限可以设置为w,r,wr和空,空表示没有任何权限。

注意:权限配置文件中出现的用户名必须在passwd文件中有定义过,对权限配置文件authz的修改会立即生效。

启动SVN

至此配置已完成。

1、启动SVN:

/usr/bin/svnserve –d –listen-port 9999 –r /opt/src/repositories/MCDRE

-d 以daemon方式运行

--listen-port 监听端口号,默认端口3690

-r 指定目录

2、检查是否启动成功:netstat –tunlp | grep 9999

  tcp       0             0 0.0.0.0:9999               0.0.0.0:*         LISTEN 出现以上信息说明启动成功

3、停止SVN服务:killall svnserve

客户端访问

1、  Windows下安装TortoiseSVN:使用svn://192.168.0.9: 9999/访问

2、  Linux下# svn checkout svn://192.168.50.10:9999

 

附加:单版本库和多版本库的配置

权限文件authz在apche与svnserve服务器上的配置不同,单版本库和多版本库上的配置也有不同。

 

1.配置authz时,如果svnserve的启动参数 -r 所指定的目录为直接指定到版本库(称之为单库svnserve方式)

  例如:svnserve -d -r d:\svn\project1

 

在这种情况下,一个svnserve只能为一个版本库工作。

authz如果配置成下面这样就是错的:

 

CODE:

[groups]

admin=user1

dev=user2

[project1:/]

@admin=rw

@doc=r

 

应该配置成

CODE:

[groups]

admin=user1

dev=user2

[/]

@admin=rw

@dev=r

 

因为[project1:/]表示project1的根目录,而按上面的启动参数,是没有库的概念的。

使用类似这样的URL:svn://192.168.0.1/  即可访问project1

2.-r指定到版本库的上级目录(称之为多库svnserve方式)

如果使用以下命令启动svnserve:

CODE:

svnserve -d -r d:\svn


这种情况,一个svnserve可以为多个版本库工作,这是如果想限制指定库的指定目录,就应该指定具体的库,想像这样:

 

CODE:

[groups]

admin=user1

dev=user2

[project1:/]

@admin=rw

@doc=r

 

如果此时你还用[/],则表示所有库的根目录,同理,[/src]表示所有库的根目录下的src目录

使用类似这样的URL:svn://192.168.0.1/project1 即可访问project1

这样的URL:svn://192.168.0.1/project2 即可访问project2

3.对中文目录进行权限控制时,应该将权限文件authz改为utf-8格式。

参考

http://who0168.blog.51cto.com/253401/579061

 

 

 

 

posted @ 2013-01-05 20:12  wangshijun  阅读(328)  评论(0编辑  收藏  举报