快捷安装
网上一大堆,就不重述了,宝塔有一个免费的svn管理器,可以一键安装,如下
安装完成后创建版本库
终端操作
确认好自己要部署的项目路径,打开终端
输入:ps -ef |grep svn 查看当前服务器svn的运行状态
出现如下所示,一般表明svn正常启动中
这里有一个问题,如果你新创建了版本库,当你checkout的时候,
会提示版本库url不存在的错误,这个时候,打开终端,
输入1:killall svnserve 停止服务
输入2:svnserve –d –r 仓库路径 --listen-port 端口号
例如这样:svnserve -d -r /usr/local/svn/repositories (如果只部署了一个svn,端口号可以不写,默认是3690)
检出
做完以上操作,重新checkout
svn checkout svn://ip地址/项目文件夹名
会提示你输入用户名和密码,输入即可,或者在checkout的时候直接带上用户名
添加
接下来正常是往版本库里添加文件夹和文件
svn add 文件名
有时候一个文件夹下不是所有文件都需要添加的,这个时候windows操作直接add就行,但是linux下边会提示失败
可以用以下的操作,在添加文件的时候同时把父文件夹一同添加
svn add 文件名 --parents
提交
svn ci -m “ ” (“”号内加的是文件夹的注释)
至此结束,正常来讲单独开发项目,一般会增加一个自动更新提交的hook
找到仓库地址,进入到对应项目名里边,一般是类似如下路径
/usr/local/svn/repositories/xxx项目/hooks
把post-commit.tmpl 后缀去掉,编辑
拉到最下边,添加如下代码
REPOS="$1"
REV="$2"
BASEPATH=/www/wwwroot/xxx项目名/ (这块是项目文件夹所在的路径)
WEBPATH="$BASEPATH/"
export LANG=zh_CN.UTF-8
svn update $WEBPATH --username 用户名 --password 密码 --no-auth-cache
保存结束,我们重新在本地提交一个版本,服务器会自动更新项目代码,避免了重复的操作。不过这一步操作结束后,也许会出现以下问题:post-commit hook failed (exit code 255) with no output
终极解决办法:把post-commit文件权限改成755,成功解决
总结
以上进行了宝塔上边的svn部署与检出,添加,提交,自动更新等基本操作,和各种问题避雷
补充
一个服务器上如果安装了多个svn,重启服务器会默认开启第一个svn,此时如果不把其他的关掉,可能再更新的时候可能会提示uuid不一致,导致更新与提交失败。开启与关闭的方法参考上边的->终端操作