我也不知道我们用的SVN服务器软件叫什么,不是我所熟知的TortoiseSVN,整个内容放在一个SVN的文件夹下,用户名是authz文件里添加的,密码是在passwd文件中。也不知道是什么服务器,这里姑且叫SVN吧。
先来说说添加账号、设置权限和密码的问题吧。
1、添加账户:
在authz文件中添加用户,形如:test=wjl,wjl2,其中test可以随便取名(我通常设置为项目名称,方便区分),wjl为访问test项目SVN资源时使用的用户名,可以设置多个,用逗号隔开即可。
这一步的定义有点像分组,将wjl,wjl2添加到test组中,后面设置权限的时候直接给这个组赋权限,这个组下的所有成员也有就权限了。
(PS:authz没有后缀名,就叫这个)
2、设置权限:
必须为SVN上的资源设置了访问权限其他账户才能访问,而且赋予权限时以组为单位,也就是必须先将账户添加到一个组然后为这个组赋权限。方法我目前琢磨到的有三种:
第一种:为指定的组赋予“操作SVN上所有资源”的权限(将“操作SVN上所有资源”的权限赋予指定的组)
形式如下:
manager=wjl,wjl2,test,test2,test3
@manager=rw
这样账户,manager组中所有成员都有“读”“写”SVN上所有资源的权限了。
(PS:这样的权限最好谨慎设置,毕竟权限太大了。
PPS:虽说此处只写了rw,但是经本人测试,还可以删,不知道这个权限词汇是怎么定义权限的。)
第二种:为指定的组赋予“操作SVN指定目录下的资源”(将“操作SVN指定目录下的资源”赋予指定的组)
形如:
[/svn/trunk/test]
@manager = rw
@test = rw
其中:[/svn/trunk/test]为SNV中的一个目录(通常是项目所在SVN目录,可以精确到一个文件),manager和test为两个组,都赋予rw读写权限,其他组的成员没有任何权限。
第三种:在第二种的基础上,为其他组赋予基本权限。
第二种方法当中,不在指定组内的成员不能访问指定目录,这里为其添加“只读”权限。
形式如下:
[/svn/trunk/test]
@manager = rw
@test = rw
* = r
3、设置密码:
打开passwd文件,添加形如:wjl:123456的内容,其中wjl为authz当中的账户名,123456为密码,两者当中有“英文状态下的冒号”隔开,末尾没有逗号,一个账号一行。
(PS:与authz文件一样,也没有后缀名)
再来说说去除MyEclipse中记住的SVN用户名和密码。
主要有两种方法:
第一种:通过tortoisesvn来删除。
在安装了tortoisesvn客户端的电脑桌面空白处(或别的能右击的地方)右击---->TortoiseSVN---->Settings,在打开的Settings对话框的左侧找到Saved Data,点击之后找到右侧的“Authentication data”,后面有Clear...或者Clear all的按钮。若是电脑上只有一个IDE使用tortoisesvn,就只有一个Clear按钮,若是有多个就会多出一个Clear all,我的电脑上至少有两个IDE用到了tortoisesvn所以有个Clear all。
先说只有一个Clear按钮的,点一下这个按钮,tortoisesvn中记住的用户名和密码就全没了。
有两个按钮的,若是点Clear...,会弹出框来让你选要删除的用户名和密码,勾选之后点OK就删除了。Clear all点一下,所有的用户名和密码就都没了,不管是哪个IDE中记住的用户名和密码。
第二种:手动删除
我的电脑是win7 64位的,其他电脑我没找过,所以这里就只说我这种形式的。
找到C:\Users\用户名\AppData\Roaming\Subversion\auth\svn.simple,删除底下的全部文件就OK了。
我本地的是:C:\Users\Administrator\AppData\Roaming\Subversion\auth\svn.simple
PS:注意用户名,我这里用的是Administrator,大家可能登陆的用户不一样,这点一定要注意,不然找不到文件的。
有可能电脑上没有这个目录,但是Subversion\auth\svn.simple的基本结构不会变,找不到的可以试着找找这个。
另外,我在帮同事弄这个时,发现一个怪现象:
第一种方法当中的clear按钮时灰色的点不了,第二种方法的目录也能找到但是svn.simple文件夹下没有数据。这说明tortoisesvn没有记住用户名和密码因为记住了这里应该有记录。但是同事确实是记住了,因为ta每次提交都不用输入用户信息。这两个有点矛盾,也不知道为什么,到目前为止也没找到原因和解决的办法,有知道的请务必留个言(不然不能切换账户,ta只能一直用别人的账户),谢谢!