subversion 资料

所有项目的根目录(这个里面存很多版本库用svnadmin创建的,不是普通的dir文件夹)
/var/www/svnrepos


根目录下存密码文件和用户读写权限分配文件(这两个文件是建立文件夹也就是项目根目录的时候建的空文件)
 accessfile passwdfile




然后是项目也就是库的结构,具体项目例子
branches  为分支开发目录
tags      tag存档目录(不允许修改)
trunk      主开发目录
conf      存放版本库所用配置文件的目录
dav      供mod_dav_svn使用
db       版本数据存储目录
format  存储一个整数的文件,此整数代表库层次结构版本
hooks    存放版本库勾子目录
locks    存储库锁目录,用来跟踪库的访问者
README.txt  


项目里面要修改的文件
第一个:就是hooks里面的post-commit
#!/bin/sh
chown -R apache:apache /var/www/html/ebay_erp
export LANG=zh_CN.UTF-8
/usr/bin/svn update --username=111111 --password=111111 svn://localhost/1erp/trunk  /var/www/html/erp


第二个:/var/www/svnrepos/erp/conf/svnserve.conf
anon-access = none
auth-access = write




修改:
vi /etc/httpd/conf.d/subversion.conf
内容:
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so


#
# Example configuration to enable HTTP access for a directory
# containing Subversion repositories, "/var/www/svn".  Each repository
# must be both:
#
#   a) readable and writable by the 'apache' user, and
#
#   b) labelled with the 'httpd_sys_content_t' context if using
#   SELinux
#


#
# To create a new repository "http://localhost/repos/stuff" using
# this configuration, run as root:
#
#   # cd /var/www/svn
#   # svnadmin create stuff
#   # chown -R apache.apache stuff
#   # chcon -R -t httpd_sys_content_t stuff
#



      DAV svn
      SVNParentPath /var/www/svnrepos
      AuthType Basic
      AuthName "please Login Svn System"
      AuthUserFile /var/www/svnrepos/passwdfile
      AuthzSVNAccessFile /var/www/svnrepos/accessfile   (如果使用了 AuthzSVNAccessFile 设置,就无法在浏览器里显示根目录下的 svn repository list,即当你尝试访问 http://localhost/svn 时,就会出现下列错误:You don't have permission to access /svn/ on this server)
      Require valid-user
      SVNListParentPath on



注释:
  (apache下的位置)http://localhost/svn用来这样访问的
      DAV svn 
      SVNPath /home/svn/myproject   (指明资源库的路径)
      或
      SVNParentPath /home/svn   (如果有多个库,多库和单库的区别,使用该选项)*
      SVNListParentPath on     (打开这个选项可以列出ParentPath下面的所有库)
      AuthType Basic   (认证类型为基本认证 )
      AuthName "Subversion Repository"    (认证名称,将在IE界面弹出一个对话框,其标题)
      AuthUserFile /etc/apache2/dav_svn.passwd    (认证密码文件)
      # AuthzSVNAcessFile /etc/apache2/dav_svn.authz     (目录权限文件)
      Require valid-user    (要求验证用户,即不能匿名访问)
      SSLRequireSSL 禁用无 SSL的 http访问方式,而只允许通过 https访问**********







多库


一般都是指在一个根目录下创建多个子目录,每个子目录作为一个库,但这些库又共用根目录(也可以是其它目录)下的配置文件 
优点:不需要修改 apche 的配置文件,也不需要重新启动 apache ,每次要添加新的库的时候只要在根目录下创建一个新的子目录,然后修改根目录下的配置文件就可以了,并且各个库的版本号是独立的 。 
缺点:如果不是 apache 的服务器,可能看不到根目录,也就是说不能浏览到所有的库列表,另外就是备份、配置起来要复杂些。 


单库


一个根目录就是一个库,下面的子目录对应不同的项目,只有一个配置文件,所以对项目的控制也就是对子目录的控制。 
优点:不需要修改 apche 的配置文件,也不需要重新启动 apache,每次要添加新的库的时候只要在根目录下创建一个新的子目录,然后修改根目录下的配置文件就可以了,并且备份起来方便。 
缺点:版本号更新不是独立的,所有的项目共用一个版本号,只要有一个项目更新,版本号就会更新,不利于单独项目的版本控制和操作。 


多个单库


则是每个目录是一个库,对应一个项目,包括一个配置文件。 
优点:把目录、配置、版本号与项目统一起来 
缺点:添加库的时候需要修改 apache 的配置文件

你可能感兴趣的:(subversion,centos,Linux服务器技术)