参考:http://blog.csdn.net/lpdx111/article/details/17161751
一,安装svn
#yum install subversion
二,步骤
1,新建一个目录用于存储SVN所有文件
# mkdir /home/svn
2,新建一个版本仓库
# svnadmin create /home/svn/project
3,进入project/conf/passwd配置svn的账号密码
格式:账号 = 密码
可以配置多个账号密码
[users]
# harry = harryssecret
# sally = sallyssecret
marttinli = xxxxxxpws
congtian = xxxxpws
xiujiang = xxxxpws
zhangjing = xxxxxpws
4,配置svn账号的访问权限
admin = marttinli
devs = congtian,xiujiang,zhangjing
[funwall3:/]
@admin = rw
@devs = r
* =
[funwall3:/trunk]
@admin = rw
@devs = r
* =
[funwall3:/branch]
@admin = rw
@devs = rw
* =
说明:以上信息表示,只有project_p用户组有根目录的读写权。r表示对该目录有读权限,w表示对该目录有写权限,rw表示对该目录有读写权限。最后一行的* =表示,除了上面设置了权限的用户组之外,其他任何人都被禁止访问本目录。这个很重要,一定要加上!
6,修改svnserve.conf文件,让用户和策略配置升效.
svnserve.conf内容如下:[general]
anon-access = none
auth-access = write
password-db = /home/svn/project/conf/passwd
authz-db = /home/svn/project/conf/authz
7,启动服务器
# svnserve -d -r /home/svn
注意:如果修改了svn配置,需要重启svn服务,步骤如下:
# ps -aux|grep svnserve
# killall svnserve
# svnserve -d -r /home/svn
注意:配置项所有的行都必须顶格,否则报错。
注意:必须是/home/svn目录,不能是他的子目录。否则可能会报错
svn出现Authorization failed
或者doesn't exist
8,自动同步svn的内容到你server所在的工程目录(最好严格按照如下顺序执行)
1)
cd /home/svn/project/hooks/
#vi post-commit
内容如下:
#!/bin/sh
#设定环境变量,如果没有设定可能会出现update报错
export LANG=zh_CN.UTF-8
#设定语言,根据系统语言设置,如果是UTF-8 就设置为 LANG=zh_CN.UTF-8
SVN_PATH=/usr/bin/svn #不要改
WEB_PATH=/home/svn/project/code #一定要改成对应上面那个server运行环境中的目录
$SVN_PATH update svn://127.0.0.1/project $WEB_PATH --username 用户名 --password 密码 --no-auth-cache
退出编译:esc
保存退出:ZZ
2)输入下面2个命令
export LANG="zh_CN.UTF-8"
chmod -R 755 post-commit
3)重要:你先得手动checkout一份到指定目录
svn co svn://localhost/project /home/svn/project/code --username lsgoweb1(SVN账号) --password lsgoweb1(SVN密码)
其中/home/www/project/code是你自己想存储代码的位置
9,最后你可以在你本地checkout svn://... ip..../project
试着提交一次看看
其他问题
0,重要,若你玩了一段时间突然有一天上传有utf8问题
大概率是某些文件的问题,你还有可能删不掉。
你需要rm -rf 删除整个目录的文件夹。
然后svn co svn://localhost/project /xxx/xxx --username xxx --password xxx
如果还不行,再考虑下面的方案
1,若报错utf8编码问题,大胆在命令行输入
export LANG="zh_CN.UTF-8"
必要的时候,需要重新create一个仓库,重新配置
2,svn自动上传后得文件名是中文乱码,而内容并没有乱码
中文乱码的文件,都不能正常下载和打开。
这个时候要先设置
export LANG="zh_CN.UTF-8"
然后,hooks里的post-commit也修改"zh_CN.UTF-8"
然后,需要重新checkout一个仓库。
3. Warning: post-commit hook failed (exit code 255) with no output.
如果执行提交时SVN提示255错误,则是 post-commit 脚本文件的权限不对,post-commit 脚本必须有 +x 权限。
chown svn:svn post-commit
chmod +x post-commit
待确认点
1,/home/www是可以任意指定的吧
2,自动update svn的脚本,如果有冲突怎么办,貌似该问题会很严重。
解决方案:
把服务器需要修改的配置文件,在本地务必igore,保证服务器修改的文件,本地是绝对不会提交。
3,如何删除彻底之前建立的svn仓库
来源:CSDN
作者:marttinli
链接:https://blog.csdn.net/aa841538513/article/details/78185897