centos搭建svn

Subversion 官网
http://subversion.tigris.org/
http://subversion.apache.org
svn客户端
http://tortoisesvn.net
svn中文网站
http://www.iusesvn.com

中文常见问题解答AQ
http://subversion.apache.org/faq.zh.html

官方手册
http://svnbook.red-bean.com/ 中英文都有

svn 服务端运行方式(3种)
1.独立服务器访问
访问地址如: svn://svn.etiantian.org/sadoc
2.借助apache等http服务
a.单独安装 apache+svn(不要用)。坑多
b.CSVN(apache+svn)是一个单独整合的软件,带web界面管理的SVN软件。
3.本地直接访问(file://application/svndata/sadoc/)

4.SVN客户端访问方式

5.搭建SVN
yum install -y subversion

rpm -qa subversion 查看版本

卸载svn
rpm -e --nodeps 版本号

6.创建svn数据存储目录
mkdir -p /application/svndata

7.创建用户,密码,权限目录

mkdir -p /application/svnpasswd

8.创建一个项目的目录

svnadmin create /application/svndata/sadoc

9.cd /application/svndata/sadoc/conf
备份svnserve.conf配置文件。
cp svnserve.conf svnserve.conf.ori

vim svnserve.conf

10.对比两个配置文件,更改前后
vimdiff svnserve.conf.ori svnserve.conf 不保存退出。

11配置权限和密码
mv authz passwd /application/svnpasswd/

12.查看svnserve 帮助。

13.启动svn,看到3690端口说明启动成功。

svnserve -d -r /application/svndata

14.杀掉svn进程
pkill svnserve

15.配置用户名和密码
cd /application/svnpasswd
vim passwd
[users]
oldboy26 = stu001,stu002

david = david123
bella = bella123
stu001 = 123
stu002 = 456

16.授权
vim authz

oldboy26 = stu001,stu002

[sadoc:/] ##sadoc:/为项目的根
david = rw
bella = r
@oldboy26 = r

=====至此服务端配置完毕。

17.在客户端创建目录 sadoc (window下管理)
我的电脑-D盘,新建文件夹 sadoc
svn客户端安装教程window版:
https://www.cnblogs.com/ygj0930/p/6623148.html

18.右键 选择文件夹sadoc选择svn checkout
填写svn地址:
svn://111.230.129.198/sadoc

不保存密码。

如出现下面界面则为成功了。

18.SVN目录与权限管理
创建如下目录与文件

SVN -Commit 提交更新

19.svn 预览,输入用户名和密码,可以看到服务端文件被提交成功。

20.细分权限,stu001只管理stu001目录,stu002只管理stu002目录。
[sadoc:/stu001]
david = rw
stu001 = rw

[sadoc:/stu002]
david = rw
stu002 = rw

新建一个txt ,用stu002提交,不同用户管理不同目录。实验成功。

21.svn 批量引入目录

svn import /tmp/dir/ svn://111.230.129.198/sadoc/ -m "import svntree"

  1. svn 客户端管理(linux)
    另外一台linux 服务器
    yum install -y subversion

mkdir -p /home/svntest

cd /home/svntest

svn checkout svn://111.230.129.198/sadoc --username=david --passwd=david123

这样就可以把服务器的目录下载更新下来。

23.提交
mkdir stu{011..020}
更新到服务器端

svn add *

提交 -m 里面是提交的标签 的意思

svn ci -m "david"

清除已保存的用户和密码,切换用户用

24.svn钩子技术应用详解

钩子目录。

钩子 脚本触发注意事项。

SVN服务器端新建一个文件夹 backup

mkdir backup

同步svn里的目录到backup

svn checkout file:///application/svndata/sadoc/ /backup

服务端,做一个钩子
cd /application/svndata/sadoc/hooks/

cp post-commit.tmpl post-commit

给权限
chmod 755 post-commit

编辑钩子脚本
vim post-commit

export LANG=en_US.UTF-8
LOGPATH="/app/log"
[! -d ${LOGPATH} ] && mkdir &{LOGPATH} -p
SVN=/usr/bin/svn
$SVN update --username david --passwd david123 /backup
if [ $? -eq 0 ]
then
rsync -avz /backup/ ::backup/ --passwd-file=/etc/rsync.password
fi

==============================(上面脚本只做了解,生产中不建议使用)

25.SVN 的备份
把svndata 目录备份

tar -cvf svndata.tar.gz svndata

26.大中型企业级代码发布上线详细原理流程。