svn 是一种集中式版本管理系统。最新文件存储在服务器上,用户需要先从服务器下载(检出)最新文件,修改后再提交到服务器。版本信息也是放在服务器上,如果连接不上服务器,则无法提交、还原、对比等操作。 优点是符合一般的思维逻辑,适合做团队内部文档共享、管理系统。
docker run --name svn \
--detach \
--volume /data:/var/opt/svn \
--publish 3690:3690 \
hugohao/subversion
以上命令运行的镜像是 hugohao/subversion,如果本地没有则会下载。
docker exec -it svn svnadmin create repo1
创建一个名为 repo1 的仓库。查看其对应的文件目录,包含如下文件:
ls /data
conf db format hooks locks README.txt
仓库路径下 conf 为配置文件目录,有以下文件:
ls ./repo1/conf
authz hooks-env.tmpl passwd svnserve.conf
修改 svnserve.conf
[general]
anon-access = none # 匿名用户不可读写,也可设置为只读 read
auth-access = write # 授权用户可写
password-db = passwd # 密码文件路径,相对于当前目录
authz-db = authz # 访问控制文件
realm = /var/opt/svn/repo1 # 认证命名空间,会在认证提示界面显示,并作为凭证缓存的关键字,可以写仓库名称
配置账号与密码,修改 passwd,格式为 “账号 = 密码”
[users]
# harry = harryssecret
# sally = sallyssecret
eric = 123456
配置权限,修改 authz
[groups]
owner = eric, user1
[/] # / 表示所有仓库
eric = rw # 用户 eric 在所有仓库拥有读写权限
[repo1:/] # 表示以下用户在仓库 repo1 的所有目录有相应权限
user1 = rw
@owner = rw # 表示 owner 组下的用户拥有读写权限
说明:r 表示读,w 表示写。没有设置的用户默认为无权限。
注意:更改 svnserve.conf,authz 和 passwd 文件时不需要重启。
Content type
Image
Digest
Size
6.3 MB
Last updated
about 8 years ago
docker pull hugohao/subversion