SVN 1.6的配置与使用指南

SVN1.6配置与使用指南

1 创建SVN用户

       #useradd -d /opt/svn -m svn

#passwd svn

1.2 建立版本库目录

       [root@testbed1 ~]# su - svn

       [svn@testbed1 ~]$ mkdir -p /opt/svn/svndata/repos

       可建多个,如:

[svn@testbed1 ~]$ mkdir -p /opt/svn/svndata/repos1

[svn@testbed1 ~]$ mkdir -p /opt/svn/svndata/repos2

1.3 建立版本库

       [svn@testbed1 ~]$ svnadmin create /opt/svn/svndata/repos

       建立版本库,默认为FSFS数据存储方式,也可以显示指定

       [svn@testbed1 ~]$ svnadmin create --fs-type fsfs /opt/svn/svndata/repos

       可以建立多个版本库,如:

       [svn@testbed1 ~]$ svnadmin create /opt/svn/svndata/repos1

[svn@testbed1 ~]$ svnadmin create /opt/svn/svndata/repos2

这样,一个新的版本库就被创建出来了。我们来查看一下生成的版本库结构:

[svn@testbed1 repos]$ ls -l /opt/svn/svndata/repos

total 48

drwxrwxr-x 2 svn svn 4096 Jul 15 15:39 conf

drwxrwsr-x 6 svn svn 4096 Jul 15 12:41 db

-r--r--r-- 1 svn svn    2 Jul 15 12:02 format

drwxrwxr-x 2 svn svn 4096 Jul 15 12:02 hooks

drwxrwxr-x 2 svn svn 4096 Jul 15 12:02 locks

-rw-rw-r-- 1 svn svn  229 Jul 15 12:02 README.txt

其中,conf 目录下存放了版本库的配置文件,包括用户访问控制和权限控制等内容,文件本身的注释说明十分详细,读者可以根据注释自行配置;dav 目录是提供给 Apache 相关模块的目录,目前为空;db 目录下存放着 Subversion 所要管理的所有受版本控制的数据,不同的存储方式(Berkeley DB 或者 FSFS)下有着不同的目录结构,不过我们一般不用直接修改和查看这个目录下的内容,Subversion 的命令可以安全的操作这个目录;另外,hooks 目录存放着钩子脚本及其模版(一种版本库事件触发程序),locks 目录存放着 Subversion 版本库锁定数据,format 文件记录了版本库的布局版本号。

 

1.4 修改版本库配置文件

       [svn@testbed1 ~]$ vi /opt/svn/svndata/repos/conf/svnserve.conf

       内容修改为:

[general]

anon-access = none

auth-access = write

password-db = passwd

authz-db = authz

realm = repos

1.5 配置允许访问的用户

       [svn@testbed1 ~]$ vi /opt/svn/svndata/repos/conf/passwd

       文件格式如下:

[users]

<用户1> = <密码1>

<用户2> = <密码2>

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

[users]

User1 = password

User2 = 123456

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

1.6 配置用户访问权限

       [svn@testbed1 ~]$ vi /opt/svn/svndata/repos/conf/authz

       用户组格式:

[groups]

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

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

版本库目录格式:

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

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

<用户名> = <权限>

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

[/]表示根目录及以下。根目录是svnserve启动时指定的,我们指定为/opt/svn/svndata,这样,[/]就是表示对全部版本库设置权限。

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

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

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

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

示例

[groups]

admingroup = user1,user2,user3

[/]

@admingroup = rw

[repos1:/abc/aaa]

user1 = rw

[repos2:/pass]

user2 =

注意:权限配置文件中出现的用户名必须已在用户配置文件中定义,对权限配置文件的修改立即生效,不必重启svn

 

1.7 SVN服务器的启动与停止

       [root@testbed1 ~]# su - svn

[svn@testbed1 ~]$ svnserve -d --listen-port 8009 --listen-host 200.95.160.202 -r /opt/svn/svndata

       Binding Port: --listen-port 8009

Binding IP: --listen-host 200.95.160.202

Setting start path: -r /opt/svn/svndata, used for hiding the local path in SVN URL

Full path: svn://200.95.160.202:8009/opt/svn/svndata/repos/AMX_HUB

Hidden path: svn://200.95.160.202:8009/repos/AMX_HUB

       [svn@testbed1 ~]$ ps -ef | grep svnserve

svn       1985     1  0 12:38 ?        00:00:00 svnserve -d --listen-port 8009 --listen-host 200.95.160.202 -r /opt/svn/svndata

svn      14549 13477  0 14:42 pts/1    00:00:00 grep svnserve

[svn@testbed1 ~]$kill -9 1985

 

1.8 在版本库里面添加项目

       Subversion 的灵活性允许用户自由布局版本库,但有一套推荐的方式,创建一个 trunk

目录来保存开发的“主线”,一个 branches 目录存放分支拷贝,tags 目录保存标签拷贝,当然,SVN也不限于代码库的管理,用户完全可以自定义布局用以共享文件。

       添加项目最好的办法就是用svn import命令导入已有的目录树,首先,在一个临时目录下,根据 Subversion 版本控制的一般布局结构,创建出项目的主要目录树。

       /opt/svn/tmp                             

|

――demo_project                                  

|      |

|      ――branches

|      |

|      ――tags

|      |

|      ――trunk

[svn@testbed1 ~]$ mkdir tmp

[svn@testbed1 ~]$ mkdir -p /opt/svn/tmp/demo_project/branches

[svn@testbed1 ~]$ mkdir -p /opt/svn/tmp/demo_project/tags

[svn@testbed1 ~]$ mkdir -p /opt/svn/tmp/demo_project/trunk

[svn@testbed1 ~]$ svn import /opt/svn/tmp/ file:///opt/svn/svndata/repos/ --message "init"

Adding         /opt/svn/tmp/demo_project

Adding         /opt/svn/tmp/demo_project/trunk

Adding         /opt/svn/tmp/demo_project/branches

Adding         /opt/svn/tmp/demo_project/tags

 

Committed revision 2.

 

1.9版本库查看

[svn@testbed1 ~]$ svn list --verbose file:///opt/svn/svndata/repos

      4 svn                   Jul 15 16:02 ./

      4 svn                   Jul 15 16:02 AMX_HUB/

      2 svn                   Jul 15 15:56 demo_project/

查看最新修订版本的信息,可以使用svnlook info命令

       [svn@testbed1 ~]$ svnlook info /opt/svn/svndata/repos/

svn

2010-07-15 16:02:18 -0500 (Thu, 15 Jul 2010)

4

Init

命令输出了这个版本库的最新修订版本信息,包括作者、时间、日志字数和日志内容等。除开最新修订版以外,我们还可以在命令后面接上 --revision 版本号” 来指定某一个修订版的显示。

另外,我们还可以用如下命令来显示版本库的具体树形结构,后面的 --show-ids 选项指定显示每一个显示元素的修改版本 ID

[svn@testbed1 ~]$ svnlook tree /opt/svn/svndata/repos/ --show-ids

/ <0.0.r4/154>

 AMX_HUB/ <0-4.0.r4/0>

 demo_project/ <0-2.0.r2/345>

  trunk/ <2-2.0.r2/0>

  branches/ <4-2.0.r2/76>

  tags/ <5-2.0.r2/156>

[svn@testbed1 ~]$

1.10 TortoiseSVN客户端访问版本库

       Windows常用客户端下载地址:http://tortoisesvn.net/downloads

       安装并配置好SVN服务器后,就可以在客户端通过svn协议来访问svn服务器了。如果希望通过浏览器或HTTP协议进行访问,则需要安装配置Apache HTTP Server

 

    大多数时候,我们会使用 checkout 从版本库取出一个新拷贝,开始使用 Subversion,这样会在本机创建一个项目的“本地拷贝”,这个拷贝包括了命令行指定版本库中的 顶点(最新的)版本。因为可以使用版本库的 URL 作为唯一参数取出一个工作副本,也可以在版本库 URL 之后指定一个目录,这样会将工作目录放到你的新目录。

你可能感兴趣的:(SVN,user,subversion,Path,binding,tortoiseSVN)