使用SVN协议访问仓库方法揭秘

开发 项目管理
在学习SVN的过程中,你可能会遇到如何使用SVN协议问题 ,这里就向大家介绍一下使用SVN协议访问仓库的方法,希望本文的介绍对你的学习有所帮助。

本节和大家一起学习一下使用SVN协议访问仓库的方法,主要包括建立仓库,设置授权和访问仓库几个步骤,希望通过本节的介绍大家能够掌握使用SVN协议访问仓库的方法。

使用SVN协议访问仓库

1、创建仓库
正如访问本地仓库一样,开始必须先用svnadmin在存放仓库的目录中创建必须的文件,以形成仓库。
在远端,存放仓库的机器行运行: # svnadmin create /var/svn/repos/
创建的文件和目录有:
  引用
# ll -a /var/svn/repos/

总计 36

drwxr-xr-x 7 root root 4096 07-01 15:21 .
drwxr-xr-x 3 root root 4096 07-01 11:00 ..
drwxr-xr-x 2 root root 4096 07-01 15:21 conf
drwxr-xr-x 2 root root 4096 07-01 15:21 dav
drwxr-sr-x 5 root root 4096 07-01 15:21 db
-r--r--r-- 1 root root    2 07-01 15:21 format
drwxr-xr-x 2 root root 4096 07-01 15:21 hooks
drwxr-xr-x 2 root root 4096 07-01 15:21 locks
-rw-r--r-- 1 root root  229 07-01 15:21 README.txt
一般不要手动去更新、删除、添加上述这些目录或文件的内容,应通过svn客户端来进行管理的工作。

2、设置授权

若通过svn协议访问远端的仓库,必须建立授权关系。svnserve对于每个仓库,都有一个独立的配置文件和独立的用户、权限管理。该文件存放在:
 
引用
repository-path/conf/svnserve.conf
也就是对应在每个仓库的目录下面。使用svnadmin create创建仓库后,就会在对应的位置创建一个示范文件。
以下是一个简单的例子:
  引用
# vi /var/svn/repos/conf/svnserve.conf
[general]
anon-access = read # 允许匿名用户只读访问,若设置为none表示不允许匿名访问
auth-access = write # 通过验证的用户可以读和写
password-db = passwd # 用户保存文件,也可以使用绝对路径来指定位置
authz-db = authz # 权限管理文件
realm = My First Repository # 仓库名称

可通过man svnserve.conf 获取帮助信息。
※ 注意,配置项前面不能有前置空格,否则后续执行svn命令时,会报Option expected错误
然后,在上面指定的用户、权限配置文件中加入相关信息:
  引用
# vi /var/svn/repos/conf/passwd
[users] # 这是固定格式
linuxing = redflag # linuxing是用户名,redflag是明文表示的密码
harry = harryssecret

SVN协议允许访问该仓库的用户都可以在这文件中定义,而对应用户的权限,则在权限配置文件中定义:
  引用
# vi /var/svn/repos/conf/authz
[groups] # 这也是固定格式
users1 = linuxing,harry # 定义属于组的用户
# 可定义仓库中的某个相对路径,如[/],或[/project1]
# 若是多个仓库共享一个权限文件,可以用仓库名加“:”开头来定义,如:[project2:/]
# 这个project2必须是已经由svnadmin create /path/project2 创建好的仓库
[/]
linuxing = rw # 定义某个用户的权限,r是只读、w是可写、留空是不允许访问
@users1 = rw # 定义某个组的权限
* = r # 用“*”号表示其他用户

用户和权限配置文件必须与svnserve.conf中设置的路径相同。若把这两个配置文件放在仓库外,例如:/etc/svn/目录,则允许多个仓库共享同样的配置文件。
用户和权限配置文件保存后即可生效,不需重启svnserve服务。下一步就可以使用SVN协议访问仓库了。#p#

3、访问仓库
在保证远端svnd服务已经启动的情况下: 
引用
# service svnd start
Starting svnd:                                             [确定]
# service svnd status
svnserve (pid 21869) 正在运行...
# netstat -ln|grep 3690
tcp       0      0 :::3690                     :::*                        LISTEN

参考前一篇日志的内容,使用svn客户端即可进行访问: 
引用
# svn import /root/perl svn://localhost/project1 -m 'initialization'
“root”的密码:
认证领域:<svn://192.168.228.135:3690> My First Repository
用户登录名:linuxing
“linuxing”的密码:
新增           /root/perl/tcp_socket_cli.pl
新增           /root/perl/connect.pl
新增           /root/perl/tcp_socket_dt_srv.pl

提交后的修订版为 1。
# svn list svn://localhost/project1
connect.pl
tcp_socket_cli.pl
tcp_socket_dt_srv.pl
※ 注意:Linux下,默认会先以当前用户去验证,若用户名不匹配,可在后续的提示中输入指定的用户名。输入一次用户名后,svn会把验证结果保留在本地的~/.subversion/auth/svn.simple目录中,下次使用svn时,就不需要再做验证工作了。(除非修改了远端的验证用户名和密码)

Checkout到本地: 
引用
# svn checkout svn://localhost/project1
A    project1/tcp_socket_cli.pl
A    project1/connect.pl
A    project1/tcp_socket_dt_srv.pl
取出修订版 1。
# cd project1/
# svn list
connect.pl
tcp_socket_cli.pl
tcp_socket_dt_srv.pl,本节关于通过svn协议访问仓库方法介绍到这里。

【编辑推荐】

  1. 技术分享: 如何使用SVN协议
  2. SVN版本控制器安装的那些事
  3. 术语汇编:SVN版本控制详解
  4. 名师课堂:Eclipse中安装SVN版本控制插件方法详解
  5. 学习笔记: 如何删除SVN版本控制信息
责任编辑:佚名 来源: csdn.net
相关推荐

2010-05-31 18:35:22

访问SVN

2010-05-20 18:52:06

Eclipse使用SV

2010-06-02 14:41:46

SVN建库

2010-05-31 13:00:49

MyEclipse配置

2010-05-31 19:02:17

访问SVN

2010-06-02 16:09:05

SVN协议

2010-06-01 09:54:23

SVN客户端安装

2010-06-01 17:03:59

SVN用户

2010-05-26 18:52:12

SVN库

2010-05-28 18:53:36

配置SVN1.4.5

2010-05-31 14:06:24

SVN同步测试服务器

2010-05-24 12:53:38

子命令SVN merg

2011-07-26 17:47:13

2010-05-25 16:52:39

SVN中使用Git

2010-06-01 19:55:30

SVN使用

2010-06-01 15:00:00

SVN仓库

2010-05-20 10:04:05

集成MyEclipse

2010-05-25 14:02:54

Http访问SVN服务

2010-05-25 13:49:11

访问SVN服务器

2010-05-25 17:35:12

SVN代理
点赞
收藏

51CTO技术栈公众号