【Umezawa's Jitte】真正用起来svn来管理版本
之前用过一次 但是没有真正的用起来 只是知道了一些基本概念
好了 决定开始真正的用这个svn了
参考大神http://www.cnblogs.com/wrmfw/archive/2011/09/08/2170465.html
搞来搞去发现其实是建立一个svn之后把每个项目都装在这个svn目录下的不同文件夹里(也是试出来的小领悟)
一切以实例为主,开始吧
我的svn目录建在 /home/user/svn/下
则先建立了这个文件夹后,在这下面建立svn目录结构
mkdir /home/user/svn svnadmin create --fs-type fsfs /home/user/svn
之后,我以管理两个项目为例,一个叫pro_1,一个叫pro_2,他们分别在/home/user/projects/pro_1和/home/user/projects/pro_2下面。
svn mkdir file:///home/user/svn/pro_1 -m "Initial create pro_1 directory" svn import /home/projects/pro_1 file:///home/user/svn/pro_1 -m "Initial import pro_1"
svn mkdir file:///home/user/svn/pro_2 -m "Initial create pro_2 directory" svn import /home/projects/pro_2 file:///home/user/svn/pro_2 -m "Initial import pro_2"
这里有个小细节,就是在import的时候,是将pro_1/pro_2下的文件进行import,所以需要事先建好文件夹来import。
接着这两个文件已经搞定了,来开始配置不同文件的访问权限。在/home/user/svn下找到conf文件夹,下面开始来。
先改svnserve.conf,去掉所有有效的注释行,就可以了
### 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 = read 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 = 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 = 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 = Welcome to my svn
anon-access = read 代表的是未验证通过用户的权限;auth-access = write代表的是验证通过用户的权限;password-db = passwd代表的是用户名密码文件所在地址,通常就放在了conf文件夹下,就不用改了;authz-db = authz代表的是访问权限的配置文件所在地,默认也是在conf文件夹下,也默认不改,realm = Welcome to my svn就是默认的一个欢迎语,在访问的时候会出现,随意。
接着,来搞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] root = root tom = tom helen = helen
大概就是这个意思,再来看authz
### 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] admin = root user0 = tom user1 = helen [/pro_1] @admin = rw @user0 = r * = [/pro_2] @admin = rw @user1 = r * =
这里的pro_1和pro_2是根据马上的开启svn服务器的指令相关的,反正意思就是pro_1可以root和tom访问,pro_2可以root和helen访问。
接下来开启svn服务器就好了
svnserve -d -r /home/user/svn
用户tom想要访问pro_1,则
svn ls svn://172.25.31.153/pro_1
好像第一次进入要输入用户名和密码,如果想要更换身份的话
svn ls svn://172.25.31.153/pro_2 --username helen --password helen
这个好像进入一次用这个用户名,接下来的访问都默认用这个身份,除非新的--username XXX --password XXX出现。
祝各位玩的顺利