- svn 服务器介绍
1.svn 本质是一个数据库,
2.服务器项目文件,也相当于是跟你本地一样的客户端
3.每个成员提交了 svn 代码之后,会触发一个脚本,自动同步服务器上的 svn 代码区,去同步 svn 数据库的数据。
svn 服务器搭建
演示的是 centos 数据库
安装 svn
yum install svn
创建svn 数据库
svnadmin create /从根目录开始的数据库文件
比如 svnadmin create /usr/svn
SVN 服务器配置
svn 三个配置i文件- 添加用户名和密码
/usr/svn/conf/passwd
,比如添加 test用户,密码是 123456
image.png
- 添加用户名和密码
-
打开 svn 服务器的读写权限 -
image.png/usr/svn/conf/svnserve.conf
3.给用户赋值读写权限 r=读权限;w=写权限。注意用户名左边不可以有空格。否则空格也是用户名的一部分
/usr/svn/conf/authz
启动 svn (svn 没有重启指令,需要自己使用 kill 命令结束svn 服务)
关闭 svn:killall svnserve
或者 ps aux |grep svn
然后 kill -9 id
svnserve -d -r /usr/svn 最后地址是 avn 安装的绝对路径
i查看 svn 是否启动
服务器项目检出 SVN 服务器的数据
检出,只需要首次手动操作一次即可
项目从 svn 检出
svn co http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 --password 密码
比如
svn co svn://192.168.10.10 /var/www/laravel --username root --password 123456
/usr/svn/conf/ 文件夹下面的三个配置文件需要配置
写一个脚本,当有客户端提交数据到 svn 的时候,在服务器的项目目录下自动同步数据
/usr/svn/hooks/post-commit
#!/bin/sh
REPOS="$1"
REV="$2"
export LANG=en_US.UTF-8
SVN_PATH=/usr/bin/svn
WEB_PATH=/var/www/laravel
$SVN_PATH update $WEB_PATH --username test --password 123456 --no-auth-cache
给文件赋值权限
chmod -R 777 /usr/svn/hooks/post-commit
如果服务器上有文件冲突
图片.png在服务器上删除文件,然后执行
svn revert --depth=infinity file
命令即可
svn 冲突解决
svn revert --depth infinity filename
svn update
或者
svn remove --force ‘package.json’
svn resolve --accept=working 'package.json'
svn update
我也不清楚哪个更有效,反正尝试这两种方案即可
svn cleanup
网友评论