转载:
https://blog.csdn.net/weixin_39218464/article/details/104093559
https://blog.csdn.net/jctian000/article/details/80623621html
为了之后打算,能够配置多个仓库web
一、先创建总仓库目录:svn
mkdir -p /home/svn/project
二、在总目录中建立仓库的文件夹,以及使用命令建立版本库:post
mkdir -p /home/svn/project/你的项目1 svnadmin create /home/svn/project/你的项目1
之后其余项目有须要的话,能够使用一下命令(以此类推):测试
mkdir -p /home/svn/project/你的项目2 svnadmin create /home/svn/project/你的项目2
三、若是是多个项目的话,方便管理。进入你的项目1目录下的conf文件夹。将其中的authz与passwd文件复制到project目录下(若是是单个项目忽略这一步)编码
cd /home/svn/project/你的项目1 cp authz ../../ cp passwd ../../
四、修改authz和passwd文件
4.一、passwd是用户帐号配置
以下图,等号前是帐号,后是密码
4.二、authz是权限配置
以下图,只是很简单粗暴的配置一下,全部项目下都拥有读写权限。如须要能够百度一下spa
五、最后修改svn服务配置文件svnserve.conf
以下图:
注意图片里的password-db和authz-db是多项目配置表明公用一份用户和权限配置。单项目请把两个../../都删了,只保留英文字母.net
六、启动和关闭svn服务:
6.一、启动:code
svnserve -d -r /home/svn/project/
6.二、关闭:htm
killall svnserve
到这里svn的配置就能够结束了。
第一步:设置钩子自动更新
实现SVN与WEB同步,能够CO一个出来,也能够直接用自动更新web目录的方法,咱们要在svn版本库中配置钩子来实现,就是建立一个post-commit的配置文件,对其进行简单的配置,简简单单的四步就能够实现Linux下SVN自动更新web目录配置。
一、创建你的web程序目录
mkdir -p /home/wwwroot
二、进入你创建的web程序目录(svn checkout能够简写为co)
cd /home/wwwroot
三、检出
不重命名文件夹,直接在当前目录下检出
svn checkout svn://localhost/你的项目1
检出文件而且重命名文件夹
svn checkout svn://localhost/你的项目2 你的项目3
第二步:在项目库的 hooks/ 目录下新建 post-commit 文件 【钩子脚本】
添加脚本内容以下
export LANG=en_US.UTF-8` DIR=/home/wwwroot WEB=/home/wwwroot/你的项目 svn update $WEB --username joy --password 123456 --no-auth-cache chown -R www:www $WEB
WEB=右边改为你实际的web目录
第三步:让post-commit有执行的权限
chmod a+x post-commit
第四步:这里就已经完成了,第四步就是测试了。
说明:
export LANG=en_US.UTF-8是为了解决svn post commit 中文乱码,设置本地化编码,由于个人系统为UTF8编码,其实SVN默认就是UTF-8编码,若是编码是GBK的话不设置将会出现错误,而执行不成功,错误标识为
svn: Can
`'t convert string from native encoding to '`GBK'
/usr/bin/svn update --username cqh --password 123456 /var/www/html/test 执行更新操做
若是提示:
post-commit hook failed (
`exit
code 255) with no output`
赋予post-commit文件可执行权限 若是您的默认编码就是UTF-8的,要上传中文文件,先将文件另存为UTF-8格式在提交