1.创建SVN版本库根目录
mkdir /opt/svnroot
2.使用svnadmin创建一个仓库
svnadmin create /opt/svnroot/ppt
初始化目录结构
sudo svn mkdir --parents file:///path/to/repo/{trunk,tags,branches} -m "initial dir creation"
目录结构如下
cd /opt/svnroot/ppt
ll
总计 24
conf <----存放配置文件,设置认证和授权策略
db <----数据库
format <----
hooks <----hooks脚本,例如基于post-commit的hook,完成一些动作
locks <----
README.txt
3.配置认证和授权策略
4.启动svn服务器
svnserve -d -r /opt/svnroot/ --listen-port 3389
可以使用nmap或者telnet确认端口是否已经开启
telnet 127.0.0.1 3389
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
( success ( 2 2 ( ) ( edit-pipeline svndiff1 absent-entries commit-revprops depth log-revprops partial-replay ) ) )
这样SVN://协议已经起来了
5.配置SVN访问权限
我们可以使用svnserve.conf来配置权限
要配置的东西很少:
nano conf/svnserve.conf
[general]
### Valid values are "write", "read",and "none".
#The sample settings below are the defaults.
# 匿名用户权限
anon-access = none
# 认证用户权限
auth-access = write
### The password-db option controls the location of the password db file.
#存储SVN用户名和密码的数据库文件,其实和Linux系统的passwd一个意思
password-db = passwd
### The authz-db option controls the location of the authorization
### rules for path-based access control.
#基于路径的访问控制
#authz-db = authz
#下略SASl选项
6.配置用户密码
nano conf/passwd
[users]
username = passwords
7.尝试进行文件检出
在SVN客户端输入
svn co svn://ip:port/repositoryname
8.有效选项
有效选项:
-d [--daemon] : 后台模式
--listen-port ARG : 监听端口(后台模式)
--listen-host ARG : 监听主机名或IP地址(后台模式)
--foreground : 在前台运行(调试用)
-h [--help] : 显示本帮助
--version : 显示程序版本信息
-i [--inetd] : inetd 模式
-r [--root] ARG : 服务的根目录
-R [--read-only] : 强制只读;覆盖版本库配置文件
-t [--tunnel] : 隧道模式
--tunnel-user ARG : 隧道用户名(默认是当前UID对应的用户名)
-T [--threads] : 使用线程代替进程
-X [--listen-once] : 监听一次(调试用)
--config-file ARG : 从文件 ARG 读取配置
--pid-file ARG : 将服务进程ID写入文件ARG中
9.安全加密设置
可以使用低权限来运行svnserve 不过前提是,repository的所有权要先更改
此外。可以使用SSH+SVN来解决~