- A+
什么是subversion
Apache Subversion 是一个功能齐全的版本控制系统,最初旨在成为更好的 CVS。 此后,Subversion 已经超越了取代 CVS 的最初目标,但它的基本模型、设计和界面仍然受到该目标的严重影响。 即使在今天,CVS 用户仍然应该对 Subversion 感到非常熟悉。
客户端TortoiseSVN
TortoiseSVN 是一个 Apache™ Subversion (SVN)® 客户端,实现为 Windows shell 扩展。 它直观且易于使用,因为它不需要 Subversion 命令行客户端来运行。
即使在商业环境中,它也可以免费使用。 简直就是(子)版本控制的最酷接口!
服务器端
linux
windows(VisualSVN Server)
VisualSVN Server:适用于 Windows 的企业级 Subversion 服务器。
linux:apt源上的svn server
安装前的准备
购买轻量级服务器
添加防火墙规则并放行SVN服务的默认端口3690
安装svn
sudo apt-get update
sudo apt-get install subversion
查看版本
svnserve --version
配置SVN
1创建版本库根目录。
mkdir /var/svn
2创建版本库
svnadmin create /var/svn/svnrepos
3查看自动生成的版本库文件。
cd svnrepos
ls
版本库下的各个目录
db 存放所有的版本控制数据文件。
hooks 放置hook脚本文件。
locks 用来追踪存取文件库的客户端。
format 一个文本文件,文件中只包含一个整数,表示当前文件库配置的版本号。
conf SVN版本库的配置文件(版本库的访问账号、权限等)
4设置SVN版本库的账号和密码
cd conf
编辑passwd文件
移动光标至[users]下,添加用户账号和密码
5设置账号的读写权限
编辑 authz
移动光标至文件末尾,并添加如下代
[/]
username=rw
6修改SVN服务配置
编辑svnserve.conf 打开SVN服务配置文件
anon-access = read #匿名用户可读,您也可以设置 anon-access = none,不允许匿名用户访问。设置为 none,可以使日志日期正常显示
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /var/svn/svnrepos #认证空间名,版本库所在目录
7启动SVN版本库
svnserve -d -r /var/svn/svnrepos/ 客户端只能checkout到svn://x.x.103.x/,不能checkout到具体的仓库
svnserve -d -r /var/svn/ 客户端可checkout到svn://x.x.103.x/svnrepos
svn://xx./svnrepos
8查看SVN是否启动
ps -ef |grep svn
9关闭SVN
kill -9 pid
常见错误及解决方法;
错误1
不能查看log:请先确保网络畅通,之后改anon-access = none。
错误2:
checkout的仓库不存在,确保svnserve -d -r /var/svn/,而不是svnserve -d -r /var/svn/svnrepos/
错误3:
语法错误 请确保修改的所有配置文件的每行最前面没有空格。
错误4
Can't open file '/var/svn/esvurepos/db/txn-current-lock': Permission denied
加控制权限
chmod -R o+rw /home/svn
这里的路径是你项目库的根目录