centos7上svn配置

转载:
https://blog.csdn.net/weixin_39218464/article/details/104093559
https://blog.csdn.net/jctian000/article/details/80623621

折腾一下,所以还是记录下来方便以后使用(需要先安装svn)

为了以后打算,可以配置多个仓库

1、先建立总仓库目录:

mkdir -p /home/svn/project

2、在总目录中创建仓库的文件夹,以及使用命令创建版本库:

mkdir -p /home/svn/project/你的项目1
svnadmin create /home/svn/project/你的项目1

以后其他项目有需要的话,可以使用一下命令(以此类推):

mkdir -p /home/svn/project/你的项目2
svnadmin create /home/svn/project/你的项目2

3、如果是多个项目的话,方便管理。进入你的项目1目录下的conf文件夹。将其中的authz与passwd文件复制到project目录下(如果是单个项目忽略这一步)

cd /home/svn/project/你的项目1
cp authz ../../
cp passwd ../../

4、修改authz和passwd文件
4.1、passwd是用户账号配置
如下图,等号前是账号,后是密码
Snipaste_2020-07-29_17-52-54.png

5、最后修改svn服务配置文件svnserve.conf
如下图:
Snipaste_2020-07-29_17-58-49.png
注意图片里的password-db和authz-db是多项目配置代表公用一份用户和权限配置。单项目请把两个../../都删了,只保留英文字母

6、启动和关闭svn服务
6.1、启动:

svnserve -d -r /home/svn/project/

6.2、关闭:

killall svnserve

到这里svn的配置就可以结束了。

下面记录一下和web搭配开发

第一步:设置钩子自动更新

实现SVN与WEB同步,可以CO一个出来,也可以直接用自动更新web目录的方法,我们要在svn版本库中配置钩子来实现,就是创建一个post-commit的配置文件,对其进行简单的配置,简简单单的四步就可以实现Linux下SVN自动更新web目录配置。
1、建立你的web程序目录

mkdir -p /home/wwwroot

2、进入你建立的web程序目录(svn checkout可以简写为co)

cd /home/wwwroot

3、检出

不重命名文件夹,直接在当前目录下检出

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格式在提交

你可能感兴趣的:(svn,linux)