SVN服务器
安装svn
yum install subversion
添加环境变量
which svn
/usr/bin/svn
export PATH=$PATH:/usr/bin/svn
查看svn版本
svnserve --version
创建svn仓库
mkdir /moudle/svnrepo
初始化
Linux系统IP和svn版本库根目录绑定完成
svnserve -d -r /moudle/svnrepo
svnadmin create project
一般根目录下面放的就是想要创建的项目对应的版本库
)
conf目录:存放仓库的配置文件(仓库的用户访问账号、权限、密码等)。
db目录:所有版本控制的数据存放文件。
format文件:文本文件,里面只放了一个整数,表示当前文件库配置的版本号。
hooks目录:放置hook脚本文件的目录。
locks目录:放置 subversion 锁定数据的目录,用来追踪存取文件库的客户端。
修改配置文件,一定要在[general]下
vim /moudle/svnrepo/project/conf/svnserve.conf
anon-access = none #表示禁止匿名用户访问
auto-access = write #表示授权用户拥有读写权限
password-db = passwd #指定用户名口令文件,即passwd文件
authz-db = authz #指定权限配置文件,即authz文件
realm = /moudle/svnrepo #版本库所在目录,认证空间名
编辑角色权限
格式说明:
版本库目录格式:
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>
vim /moudle/svnrepo/project/authz
yf = rw #用户名=权限[r:读,w:写]
* =
使用分组
[groups]
group1 = yf
group2 = test1,test2
[/]
@group1 = rw
@group2 = r
* =
编辑用户名和密码
vim /moudle/svnrepo/project/passwd
yf = yf123456 #用户名=密码
启动服务
svnserve -d -r /moudle/svnrepo
svnserve -d -r /moudle/svnrepo --listen-port 3691
查看svn运行状态和端口号
netstat -nltp
停止服务
killall svnserve
还可以采用杀死进程方式,ps -ef查看所有进程,grep筛选出需要信息
ps -ef|grep svnserve
kill -9 4704
window下TortoiseSVN连接SVN服务器
输入地址svn://版本库根目录/创建的项目版本库目录名
svn://10.177.33.45/project
新建立空文件夹svnrepo
空白处右击,选择svn checkout
输入账号密码
建立成功后svnrepo文件夹上面会有绿色标志
至此完成SVN服务器部署
svn Authorization failed错误
出现这个错误需要仔细排查三个配置文件设置的是否正确
补充TortoiseSVN清空历史账号数据的方法
SVN服务器文件存储方式
SVN服务器端不是简单将上传的文件一个一个存放起来的。
SVN服务器端默认采用的FSFS格式是将每次commit的内容增量方式存放的,每个增量包存成1个文件,这个增量包中包括了这次commit的全部数据。
也就是说你不可能在服务器端存放该版本库的文件夹下找到你上传的某个文件。
SVN服务器版本库有两种格式:FSFS,BDB
把文件上传到SVN版本库后,上传的文件不再以文件原来的格式存储,而是被svn以它自定义的格式压缩成版本库数据,存放在版本库中。
如果是FSFS格式,这些数据存放在版本库的db目录中,里面的revs和revprops分别存放着每次提交的差异数据和日志等信息 。