昨天的那篇博文恰恰是实验室所干的事儿
但是那是一种很投机取巧的方式完成的多project管理方式
来看看我建立环境的方法
首先,找一个比较闲的公用服务器(为什么不用自己的?有公共资源不用,你傻啊?),这里我用的是wl22这台服务器
找到这个服务器上的一个闲置用户(就是没人用的账号,其实只是利用这个账号真身在这台服务器上的特性,好操作罢了)
之后比如我用的是junze这个用户,要把我的svn的服务器建起来,只需要根据下面几个步骤来就好
cd ~
mkdir svn_root
svnadmin create --fs-type fsfs /home/junze/svn_root/project_1
svnadmin create --fs-type fsfs /home/junze/svn_root/project_2
这里要注意的是,只需要建立母目录/home/junze/svn_root 之后用svn的命令去建立底下的project目录,接下来import进内容
svn import /home/ql/project_1 file:///home/junze/svn_root/project_1 -m "Import initial"
svn import /home/ql/project_2 file:///home/junze/svn_root/project_2 -m "Import initial"
这里,这两个项目就建立完成了,接着来操作权限。把每个project下面的conf/svnserve.conf中的相应注释去掉,之后由于我比较懒,想共享passwd和authz,那就这么改一下,对多个project,改掉相应的realm就可以了,使用同样的passwd和authz就可以,后面附上
### This file controls the configuration of the svnserve daemon, if you
### use it to allow access to this repository. (If you only allow
### access through http: and/or file: URLs, then this file is
### irrelevant.) ### Visit http://subversion.tigris.org/ for more information. [general]
### These options control access to the repository for unauthenticated
### and authenticated users. Valid values are "write", "read",
### and "none". The sample settings below are the defaults.
anon-access = none
auth-access = write
### The password-db option controls the location of the password
### database file. Unless you specify a path starting with a /,
### the file's location is relative to the conf directory.
### Uncomment the line below to use the default password file.
password-db = /home/junze/svn_root/passwd
### The authz-db option controls the location of the authorization
### rules for path-based access control. Unless you specify a path
### starting with a /, the file's location is relative to the conf
### directory. If you don't specify an authz-db, no path-based access
### control is done.
### Uncomment the line below to use the default authorization file.
authz-db = /home/junze/svn_root/authz
### This option specifies the authentication realm of the repository.
### If two repositories have the same authentication realm, they should
### have the same password database, and vice versa. The default realm
### is repository's uuid.
realm = project_1 Repository
passwd
### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line. [users]
admin = admin
user_vip = user_vip
guest = guest
而此时authz需要小心一点,我用的parent+path的格式
### This file is an example authorization file for svnserve.
### Its format is identical to that of mod_authz_svn authorization
### files.
### As shown below each section defines authorizations for the path and
### (optional) repository specified by the section name.
### The authorizations follow. An authorization line can refer to a
### single user, to a group of users defined in a special [groups]
### section, or to anyone using the '*' wildcard. Each definition can
### grant read ('r') access, read-write ('rw') access, or no access
### (''). [groups]
project_1RW = admin, user_vip
project_1R = guest
project_2RW = admin
project_2R = user_vip, guest [project_1:/]
@project_1RW = rw
@project_1R = r
* = [project_2:/]
@project_2RW = rw
@project_2R = r
* =
这里要注意的是你开启svnserve的时候的路径和你现在指定的路径是有关系的,反正按照我说的来总是没错的,下一步就是开启svnserve服务器就可以开始访问svn了
svnserve -d -r /home/junze/svn_root/
好了,可以开始使用svn了
svn ls svn://wl22/project_1 --username user_vip --password user_vip
good luck, guys