Chinaunix首页 | 论坛 | 博客
  • 博客访问: 342516
  • 博文数量: 66
  • 博客积分: 4010
  • 博客等级: 上校
  • 技术积分: 2204
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-23 12:53
文章分类
文章存档

2010年(20)

2009年(30)

2008年(16)

我的朋友

分类: WINDOWS

2010-03-19 11:57:25

使用 Apache + Subversion 搭建服务


  Subversion 作为新一代的开源版本控制工具,Subversion 以其目录版本化、原子提交、版本化的元数据、更加有效的分支和标签等优良特性,正逐渐受到开源软件社区的重视,并有望取代 CVS,成为开源软件开发中版本控制的首选系统。在服务器端,Subversion 最大的独特之处,在于它可以通过一个扩展模块与 Apache 的 HTTP 服务器相结合,实现很多高级的管理功能和安全特性。与 CVS 相比,Subversion 实现了更加先进和安全的用户认证功能。在 Apache 的支持下,用户可以通过 HTTP 协议访问版本库,管理员可以对用户访问 HTTP 的权限做出具体的设置,同时 Subversion 还可以获得 SSL 传输加密,用户数据加密,以及目录级的访问控制等特性。

Subversion 的版本库(Repository),就是位于服务器端,统一管理和储存数据的地方。要创建一个版本库,首先要确定采用哪种数据存储方式。在 Subversion 中,版本库的数据存储有两种方式,一种是在 Berkeley DB 数据库中存放数据;另一种是使用普通文件,采用自定义的格式来储存,称为 FSFS



特性Berkeley DBFSFS
对操作中断的敏感很敏感;系统崩溃或者权限问题会导致数据库“塞住”,需要定期进行恢复。不敏感
可只读加载不能可以
存储平台无关不能可以
可从网络文件系统访问不能可以
版本库大小稍大稍小
扩展性:修订版本树数量无限制某些本地文件系统在处理单一目录包含上千个条目时会出现问题。
扩展性:文件较多的目录较慢较慢
检出最新代码的速度较快可以
大量提交的速度较慢,但时间被分配在整个提交操作中较快,但最后较长的延时可能会导致客户端操作超时
组访问权处理对于用户的 umask 设置十分敏感,最好只由一个用户访问。对 umask 设置不敏感



确定了具体的数据存储类型,只要在命令行当中执行 svnadmin 命令就可以创建一个 Subversion 版本库,命令如下:

运行创建版本库的命令,指定数据存储为 FSFS,如果要指定为 Berkeley DB,则将 fsfs 替换为 bdb
C:\> svnadmin create --fs-type fsfs D:\Repository

如果一切正常,命令执行后不会有任何反馈信息而迅速返回,一个新的版本库就被创建出来了。

接着我们来查看一下生成的版本库目录结构:

conf
dav
db
format
hooks
locks
README.txt

其中,conf 目录下存放了版本库的配置文件,包括用户访问控制和权限控制等内容,文件本身的注释说明十分详细,读者可以根据注释自行配置;dav 目录是提供给 Apache 相关模块的目录,目前为空;db 目录下存放着 Subversion 所要管理的所有受版本控制的数据,不同的存储方式(Berkeley DB 或者 FSFS)下有着不同的目录结构,不过我们一般不用直接修改和查看这个目录下的内容,Subversion 的命令可以安全的操作这个目录;另外,hooks 目录存放着钩子脚本及其模版(一种版本库事件触发程序),locks 目录存放着 Subversion 版本库锁定数据,format 文件记录了版本库的布局版本号。











阅读(1284) | 评论(0) | 转发(1) |
0

上一篇:这是为什么呢?

下一篇:男人都这样吗?

给主人留下些什么吧!~~