| 组访问权处理 | 对于用户的 umask 设置十分敏感,最好只由一个用户访问。 | 对 umask 设置不敏感 |
| 功能成熟时间 | 2001 年 | 2004 年 |
确定了具体的数据存储类型,只要在命令行当中执行 svnadmin 命令就可以创建一个 Subversion 版本库,命令如下
# 创建文件夹 $ mkdir /etc/svn/ $ mkdir /etc/svn/repos # 运行创建版本库的命令,指定数据存储为 FSFS,如果要指定为 Berkeley DB,则将 fsfs 替换为 bdb $ svnadmin create --fs-type fsfs /etc/svn/repos |
如果一切正常,命令执行后不会有任何反馈信息而迅速返回,这样,一个新的版本库就被创建出来了。我们来查看一下生成的版本库结构:
$ ls -l /etc/svn/repos 总用量 56 drwxrwxr-x 2 robert robert 4096 8月 27 17:27 conf drwxrwxr-x 2 robert robert 4096 8月 27 17:27 dav drwxrwsr-x 5 robert robert 4096 8月 27 17:27 db -r--r--r-- 1 robert robert 2 8月 27 17:27 format drwxrwxr-x 2 robert robert 4096 8月 27 17:27 hooks drwxrwxr-x 2 robert robert 4096 8月 27 17:27 locks -rw-rw-r-- 1 robert robert 229 8月 27 17:27 README.txt |
其中,conf 目录下存放了版本库的配置文件,包括用户访问控制和权限控制等内容,文件本身的注释说明十分详细,读者可以根据注释自行配置;dav 目录是提供给 Apache 相关模块的目录,目前为空;db 目录下存放着 Subversion 所要管理的所有受版本控制的数据,不同的存储方式(Berkeley DB 或者 FSFS)下有着不同的目录结构,不过我们一般不用直接修改和查看这个目录下的内容,Subversion 的命令可以安全的操作这个目录;另外,hooks 目录存放着钩子脚本及其模版(一种版本库事件触发程序),locks 目录存放着 Subversion 版本库锁定数据,format 文件记录了版本库的布局版本号。
有了新建的版本库,就可以往里面添加项目了。不过,管理员必须考虑的问题是,应该将每一个项目分别放在不同的版本库里面,还是应该将它们放在统一的版本库里面。统一的版本库可以让管理员更加容易的升级和备份,不过,由于访问权限控制是针对整个版本库的,所以,统一的版本库也为不同项目配置不同的访问权限带来了麻烦。所以,管理员应该根据实际情况权衡考虑。
我们以统一的版本库为例,添加两个项目 project_luni 和 project_test。要做到这个,最好的办法就是用 svn import 命令导入已有的目录树。
首先,我们在一个临时目录下,根据 Subversion 版本控制的一般布局结构,创建出两个项目的主要目录树,如下:
/etc/svn/tmp | ――project_luni | | | ――branches | | | ――tags | | | ――trunk | ――project_test | ――branches | ――tags | ――trunk |
然后,用 svn import 命令来进行项目的导入:
$ svn import /etc/svn/tmp/ file:///etc/svn/repos/ --message "init" 新增 /etc/svn/tmp/project_test 新增 /etc/svn/tmp/project_test/trunk 新增 /etc/svn/tmp/project_test/branches 新增 /etc/svn/tmp/project_test/tags 新增 /etc/svn/tmp/project_luni 新增 /etc/svn/tmp/project_luni/trunk 新增 /etc/svn/tmp/project_luni/branches 新增 /etc/svn/tmp/project_luni/tags 提交后的修订版为 1。 |
作为版本库管理员,我们经常需要查看 Subversion 版本库的状况,这就需要一些“只读”的查看工具。
在上述项目导入完成以后,我们可以用 svn list 确认导入的项目是否正确:
$ svn list --verbose file:///etc/svn/repos/ 1 robert 8月 27 18:24 project_luni/ 1 robert 8月 27 18:24 project_test/ |
另外,如果要查看最新修订版本的信息,可以使用 svnlook info 命令:
$ svnlook info /etc/svn/repos/ robert 2006-08-27 18:24:27 +0800 (日, 27 8月 2006) 0 |
命令输出了这个版本库的最新修订版本信息,包括作者、时间、日志字数和日志内容等。除开最新修订版以外,我们还可以在命令后面接上 “--revision 版本号” 来指定某一个修订版的显示。
另外,我们还可以用如下命令来显示版本库的具体树形结构,后面的 “--show-ids” 选项指定显示每一个显示元素的修改版本 ID。
$ svnlook tree /etc/svn/repos/ --show-ids / <0.0.r1/1007> project_test/ <1.0.r1/333> trunk/ <2.0.r1/0> branches/ <3.0.r1/74> tags/ <4.0.r1/152> project_luni/ <5.0.r1/793> trunk/ <6.0.r1/454> branches/ <7.0.r1/530> tags/ <8.0.r1/609> 上一篇:用新的PHP插件实现MySQL为基础的事务 下一篇:AIX 中Paging Space使用率过高分析与解决 更多相关文章
|
推荐文章
精彩文章
|