项目添加
有了新建的版本库,就可以往里面添加项目了。不过,管理员必须考虑的问题是,应该将每一个项目分别放在不同的版本库里面,还是应该将它们放在统一的版本库里面。统一的版本库可以让管理员更加容易的升级和备份,不过,由于访问权限控制是针对整个版本库的,所以,统一的版本库也为不同项目配置不同的访问权限带来了麻烦。所以,管理员应该根据实际情况权衡考虑。
我们以统一的版本库为例,添加两个项目 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>
|
其他
这里有一个需要新手,尤其是习惯了 Subversion 客户端命令 “svn” 的用户注意的问题,那就是,“svnadmin” 和 “svnlook” 都被认为是服务器端的管理工具,只被用于版本库所在的机器,用来检查和维护版本库,不能通过网络来执行任务。所以,试图将 URL 甚至本地 file 路径传递给这两个程序,都是错误的。
Subversion 还有很多管理工具可供管理员应用,需要了解这项工具的使用方法,读者们可以用 svn help, svnadmin help, svnlook help 等等命令查看帮助信息,另外,Subversion 参考手册提供了更为全面和详细的使用介绍。
基本的服务器配置
Subversion 设计了一个抽象的网络层,版本库建立完毕之后,可以通过各种服务器向外公布。svnserve 是 Subversion 自带的一个小型的服务器,它使用独立的协议与客户端。我们可以通过
svnserve –i
|
作为 inetd 启动或者
svnserve –d
|
作为守护进程启动一个服务。服务器启动后,客户端即可以通过绝对路径访问。如上例可以访问 svn://服务器IP/etc/svn/repos。同时可以指定一些选项,常用的如 -r,用来指定版本库的根路径,例如假设版本库位于 /etc/svn/repos:
svnserve –d -r /etc/svn
|
则客户端可以通过如下 URL 访问服务器:svn://服务器IP/repos, 这样可以有效的避免暴露本地路径。另外如 --listen-port,--listen-host 可以指定绑定的地址和端口,-R 可以强制设定为 Read-Only 模式。如果在 Windows 操作系统下,可以将版本库设定在 C 分区,如 c:\svnroot\repos 可以通过 svn://服务器IP/svnroot/repos访问,如果在其他分区,就必须要通过 -r 选项来指定 root 位置。
svnserve 可以通过配置 svnserve.conf 来进行一些简单的访问权限控制。你可以在版本库的 conf 子文件夹下发现这个文件。文件的初始内容大致如下:
[general]
# anon-access = read
# auth-access = write
password-db = passwd
# authz-db = authz
# realm = My First Repository
|
其中 anon-access 表示匿名用户的权限,auth-access 表示认证用户的权限设置,password-db 指向保存用户帐号密码的文件的位置,可以使用相对路径。svnserve 只能对全局提供简单的访问控制,如果想要更加灵活的方式,可以使用 Apache Http Server 作为向外公布版本库的方式。
通告:http://www.qqread.com/network/server/n208847.html相关专题
- 路由安全配置专题 (11650篇文章)
- 系统安全设置 (23149篇文章)
- 配置安全的操作系统 (9658篇文章)
- Apache配置专题 (840篇文章)
- 打造安全服务器 (13058篇文章)
- Apache技术专题 (840篇文章)
- MySQL安全 (9696篇文章)
- 电子邮件安全 (8226篇文章)
- SSH安全技术 (8063篇文章)
- 数据库安全技术专题 (12951篇文章)
- 板载RAID功能制作磁盘阵列并安装操作系统 (64821次浏览)
- 教你如何用双SATA硬盘组建RAID系统 (26307次浏览)
- DHCP 服务器的安装和配置 (16852次浏览)
- Win2003服务器安全配置技巧 (15903次浏览)
- WEB专用服务器的安全设置的实战技巧 (14550次浏览)
- PERC5 RAID配置中文手册 (13536次浏览)
- 手把手教你玩转windows远程控制终端服务 (812次浏览)
- 配置DHCP服务器(1) (771次浏览)
- 如何给SQL SERVER存储过程传递数组参数 (752次浏览)
- IIS常见问题和错误及其解决方案 (736次浏览)



