ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
### 1 安装 ~~~ yum -y install subversion ~~~ ### 2 检查SVN是否安装成功   ~~~ svnserve --version ~~~ ### 3 建立SVN版本库 ~~~ mkdir /www/svn/svnrepos 创建一个文件夹 ~~~ ### 4 创建SVN版本库    ~~~ svnadmin create /www/svn/svnrepos/xxxx    (xxxx)为目录(项目或版本库)名称,后面checkout项目时会用到。 ~~~ ### 5 查看该文件夹目录结构 tree /www/svn/svnrepos/xxx (没有tree命令 先安装 yum install -y tree) ├── conf │   ├── authz │   ├── passwd │   └── svnserve.conf ├── db │   ├── current │   ├── format │   ├── fsfs.conf │   ├── fs-type │   ├── min-unpacked-rev │   ├── revprops │   │   └── 0 │   │   └── 0 │   ├── revs │   │   └── 0 │   │   └── 0 │   ├── transactions │   ├── txn-current │   ├── txn-current-lock │   ├── txn-protorevs │   ├── uuid │   └── write-lock ├── format ├── hooks │   ├── post-commit.tmpl │   ├── post-lock.tmpl │   ├── post-revprop-change.tmpl │   ├── post-unlock.tmpl │   ├── pre-commit.tmpl │   ├── pre-lock.tmpl │   ├── pre-revprop-change.tmpl │   ├── pre-unlock.tmpl │   └── start-commit.tmpl ├── locks │   ├── db.lock │   └── db-logs.lock └── README.txt ### 6 目录说明 ~~~ conf:SVN版本库配置文件(帐号密码权限等) conf/authz:负责账号权限的管理,控制账号是否读写权限 conf/passwd:负责账号和密码的用户名单管理 conf/svnserve.conf:svn服务器配置文件 db:版本库数据存储 locks:跟踪目录的访问者 ~~~ ### 7 配置文件修改 ~~~ cd /www/svn/svnrepos/xxxx/conf vi authz 清除原有内容 添加以下内容 [aliases] [groups] [repository:/baz/fuzi/bz] @admin = rw * = r [\]     jiangguowu = rw * = r ~~~ ### 8 修改passwd 文件配置  ~~~ 清除所有内容 添加以下内容 [users] jiangguowu = 123456 ~~~ ### 9 修改svn配置文件 vi svnserve.conf ~~~ 同理 清除所有内容 添加以下内容 [general] anon-access = read auth-access = write password-db = passwd ~~~ ### 10 开启防火墙 多数情况下,配置完SVN后 无法访问通常是防火墙为配置 3690 端口(SVN默认端口) ~~~ /sbin/iptables -I INPUT -p tcp --dport 3690 -j ACCEPT /etc/init.d/iptables save service iptables restart 或者(系统未安装INPUT命令 或者 centOS7 firewall 已经代替 iptables) sudo firewall-cmd --permanent --add-service=telnet sudo firewall-cmd --permanent --add-port=3690/tcp sudo firewall-cmd --reload centOS 7 防火墙开启 关闭 与 查看状态 systemctl start firewalld systemctl stop firewalld systemctl status firewalld ~~~ ### 11 启动svn服务 ~~~ svnserve -d -r /var/svn/svnrepos    (/var/svn/svnrepos 为当初svn版本库根目录) 启动成功后 ps aux | grep svn 可以查看svn进程 ~~~ ### 12 检出项目 ~~~ 进入windows 检出项目 地址栏输入  svn://项目ip:3690/xxxx   项目ip可以通过 ip addr 或者 ifconfig  查看 inet xxxx 为当初建立的SVN版本库 可以从上文 xxxx寻找 ~~~ ### 13 以上成功的话说明svn服务端搭建成功 以下是利用钩子文件上传代码 ~~~ cd /www/svn/svnrepos/xxxx/hooks/ cp poset-commit.tmpl post-commit 或者是重命名 mv poset-commit.tmpl post-commit vi post-commit 修改为以下内容 REPOS="$1" REV="$2" mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf /usr/bin/svn checkout file:///www/svn/svnrepos/xxx/ /www/wwwroot/www.xxx.io/ /usr/bin/svn update --username jiangguowu --password 123456 /www/wwwroot/www.xxx.io chown -R www.www /www/wwwroot/www.xxx.io # 权限组修改 chmod -R 750 /www/wwwroot/www.xxx.io #权限修改 exit 0 ~~~ ### 14 重启svn 服务