SVN是一个开放源代码的版本控制系统,可以记录保存文档的每一次改变,并方便做对比(diff),或者取消改动,回撤到某个历史版本等(Revert)。因此十分适合存放代码、设计、图纸等需要历史记录的文档。
安装 subversion
apt-get install subversion
创建仓库,首先建立svn文档的根目录 svn, 然后创建一个项目 icalc
mkdir /svn
mkdir /svn/icalc
创建新的 icalc 数据仓库
svnadmin create /svn/icalc
启动 svn 服务,并指定 svn 数据存储的根目录
svnserve -d -r /svn
然后就可以用 TortoiseSVN 客户端,在Windows上 Checkout 这个项目了。
Checkout 地址是对应的ip加项目名 svn://192.168.1.101/icalc
权限控制
默认的SVN配置是允许匿名访问的,可以选择只能通过用户名密码登录并提交文档。
此时可编辑对应项目目录下conf 中的 svnserve.conf、passwd.conf 两个文件
编辑配置文件:
nano /svn/icalc/conf/svnserve.conf
全删掉,然后写入以下的即可,不允许匿名,用户密码存放到 passwd 中
[general]
anon-access = none
auth-access = write
password-db = passwd
[sasl]
添加用户名密码
nano /svn/icalc/conf/passwd
全删掉,然后写入一个用户名密码
[users]
newghost = 1234567890
重启 svn 服务
通过名字来停止进程
killall svnserve
或者在启动时添加 pid 进程文件,通过 pid 来停止进程
添加pid进程文件和日志文件svnserve -d -r /var/www --pid-file /var/log/svn.pid --log-file /var/log/svn.log
用pid进程文件停止svn服务kill -9 `cat /var/log/svn.pid`
然后重启之后就可以用新的用户名密码登录了。
开机默认启动
可以添加一个自动启动脚本,设置 svn 服务开机默认启动。
添加启动脚本
nano /etc/init.d/subversion写入内容
#!/bin/sh
# start/stop subversion daemon
test -f /usr/bin/svnserve || exit 0
OPTIONS="-d -T -r /svn"
case "$1" in
start)
echo -n "Starting subversion daemon:"
echo -n " svnserve"
start-stop-daemon --start --quiet --oknodo --chuid root:root --exec /usr/bin/svnserve -- $OPTIONS
echo "."
;;
stop)
echo -n "Stopping subversion daemon:"
echo -n " svnserve"
start-stop-daemon --stop --quiet --oknodo --exec /usr/bin/svnserve
echo "."
;;
reload)
;;
force-reload)
$0 restart
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: /etc/init.d/subversion (start|stop|reload|restart)"
exit 1
;;
esac
exit 0
ctrl + o 保存
添加执行权限
chmod u+x /etc/init.d/subversion
测试一下从脚本启动
/etc/init.d/subversion start
将此脚本设置为开机默认启动
update-rc.d -f subversion defaults
重启之后你就会发现 svn 默认启动了。