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 保存
添加执行权限
测试一下从脚本启动
将此脚本设置为开机默认启动
重启之后你就会发现 svn 默认启动了。
添加执行权限
chmod u+x /etc/init.d/subversion
测试一下从脚本启动
/etc/init.d/subversion start
将此脚本设置为开机默认启动
update-rc.d -f subversion defaults
重启之后你就会发现 svn 默认启动了。
好