昨天的那篇博文偏偏是實驗室所幹的事兒服務器
可是那是一種很投機取巧的方式完成的多project管理方式less
來看看我創建環境的方法ide
首先,找一個比較閒的公用服務器(爲何不用本身的?有公共資源不用,你傻啊?),這裏我用的是wl22這臺服務器svn
找到這個服務器上的一個閒置用戶(就是沒人用的帳號,其實只是利用這個帳號真身在這臺服務器上的特性,好操做罷了)ui
以後好比我用的是junze這個用戶,要把個人svn的服務器建起來,只須要根據下面幾個步驟來就好this
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進內容spa
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就能夠,後面附上code
### 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
passwdorm
### 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的格式blog
### 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