UML软件工程组织

 

 

subversion的apache模式用户及权限管理
 
2008-10-31 来源:ncnynl.com
 
0.说明各种项目应用事例

1.单人单项目

  对于单人,提供密码认证才能进入仓库目录,然后才能访问仓库文件.维护工作就集中于trunk的主流版本目录.

  对与想开发其中模块再集合到主流版本,可以利用brances.

  如果开发到一个固定版本,就可以用tags目录来建立一个可用版本的标记.

  存在如下的目录结构

  -website  //根目录

         -trunk  //主流版本目录

         -brances //分支目录

         -tags    //版本标记目录

   A.建立仓库

     //建立仓库的根目录.

     #mkdir /usr/local/repo

     //建立仓库

     #/usr/local/subversion/bin/svnadmin create /usr/local/repo/website

     //改写目录的权限,要不其他人没法存取

     #cd /usr/local/repo

     //目录及子目录对所有人都可以读写

     #chmod -R 777 .

   B.添加仓库信息到httpd.conf. Subversion 的 Repository 目錄不要放到 apache 設定的文件根目錄裡面.

    这样可以避免出现 301 Moved Permanently 的错误提示.

   //httpd.conf for subverion 部分的设置

        <Location /repo>

                  DAV svn

                  # any "/svn/foo" URL will map to a repository /usr/local/svn/foo

                  SVNParentPath /usr/local/repo

        </Location>
       
    //建立密码文件和用户test1

    #/usr/local/apache2/bin/htpasswd -c conf/passwd.conf test1

    //添加信息到httpd.conf的subvesion部分

    <Location /repo>

                  DAV svn

                  # any "/svn/foo" URL will map to a repository /usr/local/svn/foo     

                  SVNParentPath /usr/local/repo

                  #for auth

                  AuthType Basic

                    AuthName "Subversion repositories"

                    AuthUserFile /usr/local/apache2/conf/passwd.conf

                    Require valid-user

        </Location>

    //windows平台下导入文件.假设安装了tortoisesvn

    1.建立四个目录

       -website  //根目录

         -trunk  //主流版本目录

         -brances //分支目录

         -tags    //版本标记目录

    2.退出website,右键->import

    3.填写url为 http://localhost/repo/website/trunk.导入于主流版本目录

    4.确定

    //windows平台下导出文件.

    1.其他地方建立一个新的文件夹website.

    2.右键->checkout.需要提供用户和密码访问

    3.填写url为 http://localhost/repo/website/trunk.

    4.确定

2.多人单项目

  1.项目说明

  单人维护一个主流版本.放于trunk目录里面

  多人开发通过单人或者是多人维护代表不同的模块.每个模块就是一个分支brances,

  某个时期出现了一个稳定版本,就标记为一个发布版本,tags来做标记.

  2.密码认证和权限管理.

      有密码认证.trunk目录对项目经理是可以读写,其他人只读.

    建立的分支,分配给开发人员.可以针对某一个或多个开发人员有读写权限,其他开发人员有只读,或者是不可以读.

  //存在如下的目录结构:

       -website  //根目录

         -trunk  //主流版本目录

         -brances //分支目录

         -tags    //版本标记目录

  //建立多个用户

  #/usr/local/apache2/bin/htpasswd conf/passwd.conf test0            //项目经理

  #/usr/local/apache2/bin/htpasswd conf/passwd.conf test1            //小组组长

  #/usr/local/apache2/bin/htpasswd conf/passwd.conf test2            //开发人员

  #/usr/local/apache2/bin/htpasswd conf/passwd.conf test3            //开发人员

  #/usr/local/apache2/bin/htpasswd conf/passwd.conf test4            //开发人员

    //建立目录结构

    1.建立四个目录

       -website  //根目录

         -trunk  //主流版本目录

         -brances //分支目录

         -tags    //版本标记目录

    2.退出website,右键->import

    3.填写url为 http://localhost/repo/website/ 导入目录结构

    4.确定

  //导入维护的主流版本

  1.退出website,右键->import

  2.填写url为 http://localhost/repo/website/trunk

  3.确定

  //导出一个工作副本.

  如前单项目的导出

  //建立一个分支.在副本目录下

  1.退出website,右键->branch/tags

  2.填写url为 http://localhost/repo/website/brances/website_v1.0

  3.确定

  //建立权限控制文件auth.conf

  [groups]                                     //建立两个小组developer0 和 developer1.其中包括用户

  developer0 = test1 ,test2

  developer1 = test3 ,test4

  [website:/]                                  //根目录,对项目经理test0可读写.其他人可读

  test0 = rw

  @developer0 = r

  @developer1 = r

  [website:/trunk]

  test0 = rw

  @developer0 = r

  @developer1 = r

  [website:/branches/website_v1.0]             //分支目录对于项目经理可读写,对于组developer0可读写,其他组只读

  test0 = rw

  @developer0 = rw

  @developer1 = r
  
  //添加信息到httpd.conf的subvesion部分

    <Location /repo>

                  DAV svn

                  # any "/svn/foo" URL will map to a repository /usr/local/svn/foo

                  SVNParentPath /usr/local/repo

                  #for auth

                  AuthType Basic

                    AuthName "Subversion repositories"

                    AuthUserFile /usr/local/apache2/conf/passwd.conf

                    #for access

                    AuthzSVNAccessFile /usr/local/apache2/conf/auth.conf              

                    #for who to access

                    Require valid-user      

    </Location>

3.多人多项目

  有两个项目.website 和 website2

  每个项目有项目经理.负责维护主流版本的更新.主流版本放于根目录里面的trunk中.

  对于开发人员,建立一个分支,作为主流版本的副本,在副本上开发自己的模块.

  模块开发完成,项目经理和开发人员商议.合并到主流版本中
 
  多个开发人员开发同一个模块,需要一个小组负责人,统一每天各小组提供的代码,解决冲突问题.

  更新最新版本的分支副本.

  也会出现一个开发人员.参与一个以上的模块的开发.需要对多个模块都有读写权限
 
  存在如下的目录结构:

       -website  //根目录

         -trunk  //主流版本目录

         -brances //分支目录

         -tags    //版本标记目录

       -website2  //根目录

         -trunk  //主流版本目录

         -brances //分支目录

         -tags    //版本标记目录

   权限控制如前的,修改!

###############################################

问题集:

1.复制和移动的仓库不是被使用?

  只能是svnadmin create 来创建
 

组织简介 | 联系我们 |   Copyright 2002 ®  UML软件工程组织 京ICP备10020922号

京公海网安备110108001071号