本文主要讲述了在CentOS6.5中安装SVN Server的整体过程,希望对大家能有一定的帮助。
安装Svn Server
采用yum安装:
yum install subversion
输入y确认,然后进行subversion安装过程:
输入svn –version,验证subversion是否安装成功:
svn --version
SVN服务的启动和停止
启动:
svnserve -d -r /home/svnrepo
- -d 表示以守护进行运行
- -r 表示svn根目录位置,访问时不需要输入全路径就可以访问代码库
停止:
killall svnserve
创建SVN仓库
使用命令svnadmin create创建SVN仓库:
svnadmin create /home/svnrepo/test --fs-type fsfs
参数–fs-type的值可以为Berkeley DB和FSFS,分别具有以下特性:
特性 | Berkeley DB | FSFS |
---|---|---|
对操作中断的敏感 | 很敏感;系统崩溃或者权限问题会导致数据库“塞住”,需要定期进行恢复。 | 不敏感 |
可只读加载 | 不能 | 可以 |
存储平台无关 | 不能 | 可以 |
可从网络文件系统访问 | 不能 | 可以 |
版本库大小 | 稍大 | 稍小 |
扩展性:修订版本树数量 | 无限制 | 某些本地文件系统在处理单一目录包含上千个条目时会出现问题。 |
扩展性:文件较多的目录 | 较慢 | 较慢 |
检出最新代码的速度 | 较快 | 可以 |
大量提交的速度 | 较慢,但时间被分配在整个提交操作中 | 较快,但最后较长的延时可能会导致客户端操作超时 |
组访问权处理 | 对于用户的umask设置十分敏感,最好只由一个用户访问。 | 对 umask设置不敏感 |
功能成熟时间 | 2001年 | 2004年 |
- conf : 配置文件所在目录,主要是权限控制配置文件
- db : 存放仓库数据
- hooks : 钩子程序目录
SVN仓库的权限配置
进入仓库的conf目录,有3个文件:authz,passwd,svnserve.conf。
svnserve.conf为SVN服务配置文件:
注意将配置项前的空格删掉,否则会报错:svnserve.conf:12: Option expected
主要配置项:
anon-access = read(配置匿名用户的权限,如果为read,代表匿名用户的权限为读,如果为none,则代表匿名用户没有权限)
auth-access = write(配置授权用户的权限,此处设置为写权限)
password = passwd (表示用户名密码配置在同级目录下的passwd文件中)
另外要特别注意,该文件中不要写中文内容,包括注释,我在设置权限时,在该文件中增加了中文注释,发现权限设置无效,在checkout时
authz文件的配置:
groups为组用户,配置代表harry_and_sally组,组内成员为harry和sally
[test:/]代表仓库test根目录的权限配置, titan = rw代表titan用户为读写权限
passwd文件的配置:
titan = 123456代表titan用户的密码为123456
仓库checkout并commit
使用svn命令checkout代码库
svn checkout svn://localhost/test
cd test/
touch a.txt
vim a.txt
svn add a.txt
svn commit -m "add a.txt"
提交时输入用户名titan以及密码123456,完成提交。