安装步骤如下:
1、yum install subversion
2、输入rpm -ql subversion查看安装位置,如下图:
我们知道svn在bin目录下生成了几个二进制文件。
输入 svn --help可以查看svn的使用方法,如下图。
3、创建svn版本库目录
mkdir -p /var/svn/svnrepos
4、创建版本库
svnadmin create /var/svn/svnrepos
执行了这个命令之后会在/var/svn/svnrepos目录下生成如下这些文件
5、进入conf目录(该svn版本库配置文件)
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件
6、设置帐号密码
vi passwd
在[users]块中添加用户和密码,格式:帐号=密码,如dan=dan
7、设置权限
vi authz
在末尾添加如下代码:
[/]
dan=rw
w=r
意思是版本库的根目录dan对其有读写权限,w只有读权限。
8、修改svnserve.conf文件
vi svnserve.conf
打开下面的几个注释:
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /var/svn/svnrepos # 认证空间名,版本库所在目录
9、启动svn版本库
svnserve -d -r /var/svn/svnrepos
修改过要重新
关闭SVN: killall svnserve
启动SVN:svnserve -d -r /var/svn/svnrepos
myeclipse10连接svn
首先要给你myeclipce安装插件有几种方式
我用的是下载site-1.6.10.zip
下载地址http://subclipse.tigris.org/
解压到你的myeclipse安装目录下的E:\java\MyEclipse 10\dropins 的dropins 下解压重启就可以了
下面是连接
other
右键--》新建资源库位置
创建库文件
创建svn版本库目录
mkdir -p /var/svn/svnrepos
创建版本库
svnadmin create /var/svn/svnrepos
细化权限看着
在/var/svn/svnrepos/conf> vi passwd添加用户
morson = ooo
xiaojinlu = xiaojinlu123
xiaochenggong = xiaochengdong123
admin = admin123
在/var/svn/svnrepos/conf> vi authz
添加权限信息
//分组
g_manager = xiaojinlu
g_beijing = xiaochenggong
g_shanghai = admin
//可操作的文件下
[/]
@g_manager = rw
*=rw
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件
在 /var/svn/svnrepos/conf> vi svnserve.conf
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /var/svn/svnrepos # 认证空间名,版本库所在目录
遇到的问题
一、问题描述
今天需要细化设置SVN的权限,结果同事使用分配的权限更新自己的文件时出现了问题(截图如下):
二、探索解决方法
1、初步分析
在网上查找资料,分析svnserve.conf文件,网上有资料说将“anon-access = read”,修改为“anon-access = none”。查看自己的svnserve.conf文件,其实我已经设置为“anon-access = none”了。可依然不能更新。
2、深入思考
查看svnserve.conf文件附带的说明:
### 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
原来是这样的:
anon-access = read-->表示匿名访问的权限,为只读。
auth-access = write -->表示认证用户访问的权限,为可写。
再查看自己的authz文件,发现虽然给同事的帐号分配了指定目录的读写权限,但没有给该帐号设置那个指定目录的上级目录的权限,这样,默认情况下该账号就没有访问指定目录的上级目录的权限,所以这样设置的权限其实是冲突的。
3、解决方法
其实解决上述问题,有两种方法:
(1) 将默认的访问权限设置为只读(即anon-access = read),这样所有的用户都能访问该配置库目录,缺点是配置库的安全性降低,所以选择第二种方法。
(2) 给该帐号分配只读权限,使之对 指定目录的上级目录拥有只读权限。
三、总结
使用上述第二种方法,问题得到解决。在使用SVN过程中发现问题时,还是要自己查看SVN所带文件的说明内容,会有很大帮助,同时也给我们这些开发人员一个提示,在我们的开发过程中,写注释或说明文件一定要详细、周全。
如果还有问题的话请@我 或把问题发我邮箱[email protected]