SVN 第3章 linux创建svn版本库 SVN 第3章 linux创建svn版本库

2021-06-10

一、安装svn

yum install subversion

二、创建版本库test

mkdir -p /var/svndata/test
svnadmin create /var/svndata/test

进入conf目录

cd /var/svndata/test/conf

①、用户名口令文件passwd

用户名口令文件由svnserve.conf的配置项password-db指定,缺省为conf目录中的passwd。该文件仅由一个[users]配置段组成。

[users]配置段的配置行格式如下:

 =

添加一个用户为zhangsan密码123456

vi passwd

添加zhangsan=123456

②、权限配置文件:设置权限

权限配置文件由svnserve.conf的配置项authz-db指定,缺省为conf目录中的authz。该配置文件由一个[groups]配置段和若干个版本库路径权限段组成。

[groups]配置段中配置行格式如下:

 =

版本库路径权限段的段名格式如下:

[:]
vi authz

添加如下信息

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
admin=zhangsan
[/]
@admin=rw
*=r

将zhangsan设置为admin用户组
在本库中,用户组为admin的用户有读写权限,其他用户只有读权限。

移动passwd和authz 到/var/svndata

③、全局配置:svn服务配置文件svnserve.conf

vi svnserve.conf

在最底下添加如下信息

[general]
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = ../../passwd #使用哪个文件作为账号文件
authz-db = ../../authz #使用哪个文件作为权限文件
realm = test #仓库名称
  • anon-access: 控制非鉴权用户访问版本库的权限,取值范围为"write"、"read"和"none"。 即"write"为可读可写,"read"为只读,"none"表示无访问权限。 缺省值:read

  • auth-access: 控制鉴权用户访问版本库的权限。取值范围为"write"、"read"和"none"。 即"write"为可读可写,"read"为只读,"none"表示无访问权限。 缺省值:write

  • authz-db: 指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。 除非指定绝对路径,否则文件位置为相对conf目录的相对路径。 缺省值:authz

  • realm: 指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的 认证域相同,建议使用相同的用户名口令数据文件。 缺省值:一个UUID(Universal Unique IDentifier,全局唯一标示)

启动svn版本库:

svnserve -d -r /var/svndata/

服务器检出:

svn co http://路径(目录或文件的全路径) [本地目录全路径]  --username 用户名 --password 密码
svn checkout http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名
cd /var/www 进入你的www目录
svn co svn://localhost/test

先输入服务器root密码再输入svn的账号密码然后再选择yes

④、客户端检出

svn checkout svn://139.199.201.210/test --username=zhangsan

三、自动更新

cd /var/svndata/fengyu/hooks
cp post-commit.tmpl post-commit
chmod 755 post-commit
vi post-commit
export LANG=zh_CN.UTF-8
REPOS="$1"
REV="$2"
WEB_PATH=/var/www/test
/usr/bin/svn update $WEB_PATH --username zhangsan--password 123456

四、SVN 启动模式

①、方法一:指定到版本库的上级目录(称之为多库svnserve方式)

比如在 2.2.2 中

svnserve -d -r /var/svndata/

这种情况,一个svnserve可以为多个版本库工作。

服务器检出:

svn co svn://localhost/test

②、方法二:直接指定到版本库(称之为单库svnserve方式)

svnserve -d -r /var/svndata/test

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

authz配置文件中对版本库权限的配置应这样写:

[test:/]
@admin=rw
user2=r

[test01:/]
@admin=rw
user2=r

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

服务器检出:

svn co svn://localhost

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开微信扫一扫,即可进行扫码打赏哦

阅读 838