安装
# yum install subversion -y
# 安装常用文件有:
# /etc/rc.d/init.d/svnserve 服务启动程序
# /usr/bin/svn svn客户端命令程序
# /usr/bin/svnadmin svn服务器管理程序
# /usr/bin/svnserve svn服务器启动程序
# /usr/bin/svnsync svn仓库同步工具(可实现备份,主备)
# /usr/bin/svndumpfilter svn过滤器(例如:一个仓库包含三个项目,需要将三个项目独立,或者删除仓库某些文件时可能会用到)
# /usr/bin/svnlook svn仓库测试工具
仓库管理
# svnadmin create project 创建仓库
# conf db format hooks locks README.txt 包含目录文件
# conf 配置目录,用户信息与授权
# db 仓库数据库目录
# hooks 钩子函数目录
# 简单配置
# anon-access = none
# password-db = /data/svndata/svn_all_conf/passwd
# authz-db = /data/svndata/svn_all_conf/authz
# 用户信息配置passwd
# read=123456
# admin=123456
# 授权配置authz
# [groups]
# project_r=read
# project_rw=admin
# [project:/]
# *=
# @project_r=r
# @project_rw=rw
# 本地输出svn仓库
# svn co svn://127.0.0.1/project --username=read 输出仓库内容至当前路径下
# svn info 查看当然目录的svn详细信息
# svn log 查看svn仓库版本信息,
# svn log -r 100:102 指定查看svn 100至102版本的信息
svn仓库异机同步(实验)
# 环境:目标库是空库需要同步源库的代码版本信息
# 源库:10.0.0.254 project 用户:admin 123456 (已经存在,admin的权限可以是只读)
# 目库:10.0.0.2 project2 用户:admin 123456 (新库,不能有过更新操作,admin的权限必须是读写)
# 创建新的空仓库
# svnadmin create project2 (配置好用户admin的读写权限)
# cp project/hooks/pre-revprop-change.tmpl project/hooks/pre-revprop-change 同步使用的钩子 (里面的内容:exit 0)
# chmod +x project/hooks/pre-revprop-change
# 目标库暂时如此
# 源库
# svnsync init svn://10.0.0.2/project2 svn://10.0.0.254/project --sync-username admin --sync-password 123456
# --sync-username 连接目标库的用户
# --source-username 连接源库的用户
# 准备好svnsync,就开始同步
# svnsync sync --non-interactive svn://10.0.0.2/project2 --sync-username admin --sync-password 123456 --source-username admin --source-password 123456
# 注意喔,这里是需要填写源库用户信息和目标库信息
# 此时会从0版本一直依次同步,直到最后一个版本同步完成
# 源库的post-commit钩子添加此项,这样每次有代码提交,就会自动同步到目标库实现备份
# svnsync sync --non-interactive svn://10.0.0.2/project2 --sync-username admin --sync-password 123456 --source-username admin --source-password 123456
# 这是在源库操作同步,如果需要在目标库操作同步,init 与 sync步骤类似
svn备份
# svnadmin dump /data/svndata/project > pro_svn.dump 备份
# svnadmin load /data/svndata/project_new < pro_svn.dump 恢复