话不多说直接上步骤!
1.下载镜像,创建容器
docker pull elleflorio/svn-server mkdir -p /var/svn docker run -d
2.在服务器创建代码仓库
docker exec -t svn-server svnadmin create /home/svn/test
以上代码中,在容器中的/home/svn/test目录创建代码仓库,会同步到本机的/var/svn目录。我们先进行svn仓库配置。
SVN库中的配置目录 conf 有三个文件:
authz 是权限控制文件 passwd 是帐号密码文件 svnserve.conf 是SVN服务综合配置文件
配置权限配置文件 authz
编辑 authz ,内容参考如下:
[groups] admin = master,master [/] @admin = rw *=r 第一种方式:单个添加: [test/] admin = rw test = r 第二种方式(后面采用此方式配置):用户分组,再设权限 [groups] admin = admin,admin1 test = test1, test2 [/] @admin = rw @test = r [/test1] @test = rw * = 备注:版本库的目录格式如下: [<版本库>:/项目/目录] @<用户组名> = 权限 <用户名> = 权限 其中[]內容有許多写法: [/],表示根目录及其一下的路径,根目录是svnserver启动时指定好的,上述实例中我们指定为:/svn/svndata([/]=/svn/svndata).[/]就是表示对全部版本设置的权限 [test:/],表示对版本库test设置权限; [test:/svnadmin],表示对版本库test中的svnadmin项目设置权限; [test:/svnadmin/second],表示对版本库test中的svnadmin项目的目录设置权限; 权限的主体可以是用户组,用户或者*,用户组在前面要以@开头,*表示全部用户 权限分为:r ,w, rw和null ,null空表示没有任何权限。 auhtz配置文件中的每个参数,开头不能有空格,对于组要以@开头,用户不需要。
配置账号密码文件 passwd
编辑 passwd ,内容参考如下:
[users] master = master admin = admin
配置 SVN 服务综合配置文件 svnserve.conf
编辑 svnserve.conf ,内容参考如下:
[general] anon-access = none auth-access = write password-db = passwd authz-db = authz realm = /var/svn/test [sasl]
3.同步代码到服务器项目目录
(1)在PC上将代码上传到svn仓库(PC上必须安装SVN)
svn checkout svn: cd test echo "hello" >> test.txt svn add test.txt svn commit test.txt -m 'test'
(2)服务器同步代码
docker exec -t svn-server svn checkout svn:
(3)自动同步代码
实际上,如果我们用于开发的PC每一次向服务器提交一次代码,服务器都需要手动执行一下同步命令,本地代码才会同步到服务器的项目目录。想必很麻烦,于是我们可以使用SVN提供的钩子去实现代码自动更新。
cd /var/svn/test/hooks cp post-commit.tmpl post-commit
我们将post-commit.tmpl钩子文件的后缀名去掉即可生效,于是我们复制一份。接下来我们编辑post-commit文件,注释掉发送邮件的代码。然后在下面加上两行代码即可,如下:
REPOS="$1" REV="$2" TXN_NAME="$3" export LANG="en_US.UTF-8" svn update
编辑完成配置文件之后,我们只需要保存即可,自动生效。此时在PC上修改项目内容,再次提交到代码仓库,服务器会自动同步到服务器的项目目录。不再需要手动执行svn checkout指令
使用svn小乌龟连接时,注意url:svn://ip/项目名

原文链接:https://blog.csdn.net/weixin_43431218/article/details/131729918?ops_request_misc=%257B%2522request%255Fid%2522%253A%25229ffa1337a04e82e903fa7eee6a39d9b7%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=9ffa1337a04e82e903fa7eee6a39d9b7&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-5-131729918-null-null.nonecase&utm_term=%E7%BB%BF%E8%81%94nas













