您的位置:软件测试 > 开源软件测试 > 开源配置管理工具 > SVN
建立一个安全的Subversion服务器
作者:网络转载 发布时间:[ 2013/1/30 13:59:48 ] 推荐标签:

  创建仓库
  
  既然环境搭好了,那你可以创建仓库了。用svn用户登录以保证svn用户和svn组拥有你在仓库中创建的文件。在 /usr/home/svn/目录中,键入:
  % svnadmin create repository
  
  在这个例子中,我的仓库名为repository。你可以选择任何对你有帮助的名字。svnadmin create 仅仅创建了Subversion工具所需要的目录结构。
  % ls -F repository
  README.txt dav/ format locks/
  conf/ db/ hooks/
  
  注意目录db是默认生成的。因为Subversion使用数据库跟踪仓库中文件的变化,所以你必须把你的数据放到数据库中。然后,我把备份文件解压缩,这样有的一些可以放进去的数据。但是要注意这么做的时候,不要把备份文件直接恢复到~svn/repository目录下。(记得否,它是个数据库)。相反,我新建了个目录结构:
  % pwd
  /usr/home/svn
  % mkdir www && cd www
  % mkdir branches tags trunk
  % cd trunk
  % tar xzvf /full/path/to/www.tar.gz .
  % cd
  
  这样,svn用户的主目录结构像这样:
  % ls -F ~svn
  repository/ www/
  
  导入数据
  
  下一步,应该把~svn/www/的数据导入到Subversion服务器了。为了实现这个目的,可以使用 svn import 命令:
  % svn import www file:///usr/home/svn/repository/www -m "initial import"
  
  svn import 是svn的许多命令中用户可以使用的一条。键入 svn help 可以看到所有可以使用的命令的名字。如果你在svn和help中插入命令,比如 svn import help,你可以看到那条命令的语法帮助。在svn import后面的是包含要导入数据的目录的名字(www)。你的数据不一定非得在相同的目录下,它仅仅是定义了到数据的完整路径,但必须保证你的svn组用户拥有访问导入数据的权限。注意:如果你已经导入的数据,原始数据没有必要留在硬盘上了。在我的例子中,我使用了这条命令:
  rm -Rf www。
  
  接下来,请注意当我定义仓库的完整路径时所使用的语法。Subversion支持多URL模式或者RA(repository aclearcase/" target="_blank" >ccess)模块。检验你的Subversion支持哪种模式:
  #svn --version
  svn, version 1.1.3 (r12730)  compiled Mar 20 2005, 11:04:16Copyright (C) 2000-2004 CollabNet.Subversion is open source software, see http://subversion.tigris.org/This product includes software developed by CollabNet http://www.Collab.Net/.The following repository access (RA) modules are available:* ra_dav : Module for accessing a repository via WebDAV (DeltaV) protocol. - handles 'http' schema - handles 'https' schema* ra_local : Module for accessing a repository on local disk. - handles 'file' schema* ra_svn : Module for accessing a repository using the svn.network protocol. - handles svn schema
  因为我想要在本地路径访问仓库,所以我使用了file模式。我还可以在这URL后面加上www,因为我想访问仓库中名为www的目录。当然,你能在同一个仓库中导入多个目录结构,并且用容易记住的名字命名。
  
  后,我使用了 -m 消息开关把注释:"initial import"加入仓库日志中。如果我不包括这个参数,svn将使用默认编辑器(vi)打开日志并要求我填入注释,否则无法进入下一步。
  
  这是非常关键的一个地方。安装一个版本控制系统的全部原因是为了允许许多用户修改文件,并且有可能是并发的。每一个用户都应该负责任的记录清楚他们对哪些文件作了哪些改动。你的工作是让他们明白为什么svn命令总是提示他们加入注释。
  
  确定如何访问仓库
  
  恭喜你!你现在拥有了一个可以工作的仓库!现在到了仔细比较各种不同的URL模式并选出适合你需求的访问方法的好的时间。
  
  免费电子文档Version Control with Subversion第六章详细介绍了各种可能的配置。你可以在编译FreeBSD port的时候,在 make 命令后添加参数 -DWITH_BOOK,把书安装上。
  
  如果你的用户通过本地或ssh登录系统,可以使用 file:///访问。因为用户对于仓库时本地(local)的,所以这种情况下,系统不会打开一个 TCP/IP端口监听Subversion连接。然而,它却要求每个用户有一个活动的shell帐号并且假定你的用户可以登录Unix服务器。和别的shell帐户一样,其安全性能由这几方面决定:用户密码的健壮性;仓库权限以及组成员的正确配置。让用户通过ssh登录系统并不保证session已被加密。
  
  另一种方案是把Subversion整合进apache服务器。默认情况下,Subversion 的FrssBSD port支持SSL编译,这意味着你的用户可以在浏览器中使用 https:// 模式访问仓库。然而,如果你的apache版本是2.X而不是1.X,要记得在编译的时候把参数-DWITH_MOD_DAV_SVN 加入到 make后面。
  
  如果你考虑让用户通过浏览器访问,要先仔细阅读Subversion文档关于apahce httpd配置部分,然后你要配置不少东西。幸运的是,文档很完整!
  
  第三种方案时使用 svnserve 监听网络连接。文档建议采用这种模式,无论是通过inetd还是独

上一页12下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd