SvnServer安装使用简介
2012-03-16 09:36
204 查看
使用:
svn checkout https://172.16.14.109/svn/HiviewDtvDriver
(1). 安装 svn-1.4.6-setup.exe;
(2). 安装 python-2.5.1.msi
(3). 安装svn-python-1.4.6.win32-py2.5.exe
安装要按上面顺序来。需要注意的是,版本必须对应上来。比如说svn 是1,4,6版本,python是2.5.1版本,那么安装的svn-python版本就要和它俩对应起来。
2.客户端安装
这个比较简单,和安装通用软件差不多。安装完成后,可以选择性安装中文语言包。(不过,奇怪的是,我这边安装了中文包,还是显示英文)
客户端安装完成后,要把config 文件拷贝至“C:\Documents and Settings\Zengxg\Application Data\Subversion”,其中Zengxg是windows用户名,覆盖原文件。config文件对于用户,主要是起两个作用
(1)加入Svn上传文件的默认属性,一般是分文本类和二进制类型的
*.cs = svn:eol-style=native;svn:mime-type=text/plain;svn:keywords="Author Date Id Revision"
*.doc = svn:mime-type=application/doc
.cs是文本类型的,而.doc是二进制类型的
(2)筛选一些不上传的文件,可以在后面加,格式是“*.扩展名”
global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store *.obj *.lst *.bak *.Bak *.BAK *.tds *.opt *.ncb *.plg *.IAB *.IAD *.IMB *.IMD *.PFI *.PRI *.PO *.PR *.PS *.WK3 *.rel *.boj *.pdb *.exp *.ilk *.tde *.top *.mak *.pch *.idb *.suo *map *.lnp
*.omf *.Opt *.SBR *.hex *Hex *.HEX *.h20 *.abs *.BIN *.user *.Load *.suo.* *.cache *.Cache *.log *.LOG *.SearchResults
然后,在项目文件夹下创建版本库:
第一种方式:在DOS命令行中运行svnadmin create D:\ SvnServerRoot\ HS2501
第二种方式:鼠标右键单击HS2501,选择[TotoiseSVN]->[在此创建版本库...]进行创建,默认“本地文件系统(FSFS)”,点击确定,完成创建。
为了操作方便性,我们先在D:\SvnServerRoot文件夹下,新建conf文件夹,把HS2501\conf文件夹下的authz,,passwd两个文件剪切过来。那么,当前三个文件的实际路径为:
1.svnserve.conf文件 D:\SvnServerRoot\HS2501\conf
2.authz文件 D:\SvnServerRoot\conf
3.passwd D:\SvnServerRoot\conf
这样做的目的是,以后新增项目时,只需要重新配制项目文件夹下的svnserve.conf文件,authz文件和pawwwd文件都是共用,各项目中的svnserve.conf通过相对路径来获取它们。下面分别编辑上述三个文件。
编辑版本库D:\SvnServerRoot\Hs2501\conf\svnserve.conf文件,如下:
[general]
anon-access = none #保证只有认证用户可以访问,即关闭匿名访问
auth-access = write #通过认证的使用权限
password-db = ../../conf/passwd #指定了用户密码文件(将该文件放在D:\ SvnServerRoot\conf目录下)
authz-db = ../../conf/authz #指定了授权文件(将该文件放在D:\ SvnServerRoot\conf目录下)
realm = Hiview #客户端凭证缓存
编辑版本库D:\ SvnServerRoot\conf\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]
heyunpeng = hisense
sunshihua = hisense
zhanjiajin = hisense
[users]
huangzhenqiang = hisense
lilei = hisense
liulizhuang = hisense
liuyadong = hisense
liuyi = hisense
liuyong = hisense
liuyuxuan = hisense
liuzhiheng = hisense
liyunfeng = hisense
wangruibing = hisense
xiaolongguang = hisense
zhangjing = hisense
[users]
#liuying = hisense #200712离职
wangxiaohui = hisense
yiyan = hisense
zhangcheng = hisense
zhaodan = hisense
[users]
wangwei = hisense
xianghongqiang = hisense
yangjia = hisense
yangyuancheng = hisense
[users]
chenyongqiang = hisense
huangyi = hisense
jiangxianzhou = hisense
lijianwei = hisense
limin = hisense
liuqifu = hisense
liuyadong = hisense
qiumin = hisense
shichuanqi = hisense
sunerjun = hisense
wuke = hisense
yuhaiqun = hisense
zenglinggang = hisense
zhengchenggen = hisense
[users]
chenshilei = hisense
dengpan = hisense
huahongmin = hisense
maweizhuo = hisense
pengpeng = hisense
wuyupeng = hisense
suixingguang = hisense
sunzhaoquan = hisense
xiaolingli = hisense
yanlei = hisense
zengxiaoguang = hisense
zhouquan = hisense
编辑版本库D:\SvnServerRoot\conf\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]
AdminGroup = liyunfeng
HiviewLeaderGroup = heyunpeng , sunshihua , zhanjiajin
ArithmeticLeaderGroup = liulizhuang
HardwareLeaderGroup = lilei , liuyi , liuyong , xiaolongguang
IcLeaderGroup = huangzhenqiang , liuyadong , liuyuxuan , liuzhiheng , wangruibing
SoftwareLeaderGroup = liyunfeng , zhangjing
ArithmeticGroup = liuying , wangxiaohui , yiyan , zhangcheng , zhaodan
HardwareGroup = wangwei , xianghongqiang , yangjia , yangyuancheng
IcGroup = chenyongqiang , huangyi , jiangxianzhou , lijianwei , limin , liuqifu , liuyadong , qiumin , shichuanqi , sunerjun , wuke , yuhaiqun , zenglinggang , zhengchenggen
SoftwareGroup = chenshilei , dengpan , huahongmin , maweizhuo , pengpeng , suixingguang , sunzhaoquan , wuyupeng , xiaolingli , yanlei , zengxiaoguang , zhouquan
ToolGroup = chenshilei , pengpeng , suixingguang , zengxiaoguang , zhouquan
HS2501Group = dengpan , huahongmin , maweizhuo , sunzhaoquan , xiaolingli , yanlei , zhouquan
HS2503Group = chenshilei , huahongmin , maweizhuo , xiaolingli , yanlei
HS1201Group = maweizhuo , yanlei
[/]
@AdminGroup = rw
@HiviewLeaderGroup = r
#@SoftwareGroup = r
#* = r
* =
[Arithmetic:/]
@ArithmeticLeaderGroup = rw
@ArithmeticGroup = r
* =
[HardWare:/]
@HardwareLeaderGroup = rw
@HardwareGroup = r
* =
[Ic:/]
@IcLeaderGroup = rw
@IcGroup = r
* =
[SoftWare:/]
@SoftwareLeaderGroup = rw
@SoftwareGroup = r
* =
[HS2501:/]
@SoftwareLeaderGroup = rw
@SoftwareGroup = r
* =
[SoftWare:/DeInterlace:/]
@ToolGroup = rw
* =
[SoftWare:/Doc:/]
@SoftwareGroup = rw
* =
[SoftWare:/HS2501:/]
@HS2501Group = rw
* =
[SoftWare:/HS2503]
@HS2503Group = rw
* =
[SoftWare:/HiviewDebugger:/]
@ToolGroup = rw
* =
[SoftWare:/SDKS(Software Development Kit System):/]
@SoftwareGroup = r
* =
[SoftWare:/TMCS(Television Micro Control System)-old:/]
@SoftwareGroup = r
* =
附:
1、 #号表示注释。以上每个文件夹权限设置中对每个组与用户的权限设置顺序可调换,如:
根目录的设置也可以写成:
[/]
@HiviewLeaderGroup = r
@AdminGroup = rw
* =
2.、文件夹权限具有向后继承,但不具有向前效应。简言之就是权限具备继承性,任何子目录,均可继承其父目录的所有权限,除非它自己已被明确设置了其他的权限。如本例:为AdminGroup设置了根目录“[/]”的读写权限,则根目录下的文件AdminGroup均具有读写权限。但是在该目录的下一级目录,如:“[/HS2501/]”为其他用户设置了权限,把默认访问权限设为了可读,(在根目录,默认是不可访问)必须也加上AdminGroup = rw,否则AdminGroup在“[/HS2501/]”中跟其他用户一样也是可读权限。
3、我们发现yanlei这个帐号同时存在“HS2501Group”和“HS2503Group”两个分组里面,这是因为 svnserve.exe 允许我们这样设置。
4、[/HS2501/] 表示这个目录结构的相对根节点,或者说是HS2501资料库的根目录。设置权限时“@”表示组名,设置的是整个组的权限,如果该组只有一个用户,则可将“@组名”替换为“用户名”如:你可以将“@AdminGroup = rw”替换为“liyunfeng = rw” 。
5、如果设置了可读写权限,则在稍后的操作中,我们可以从版本库更新我们的工作拷贝,也可以提交修改;如果设置了可读权限,则只有更新工作拷贝,不能提交修改,如果您提交了,将会得到“Access deny”警告,也就是禁止提交修改。
6、如果一个目录下有多库,则文件夹目录写法有点不一样。如本例中的[/HS2501/],应该改写为[HS2501:/]。但是要是您也是像本例这样只想创建单库单项目的话,则按上面的操作即可。
7、如果像本例这样的单库单项目也照网络上大多数的文章那样,把目录写成[HS2501:/],则会造成严重的权限问题。主要的问题有:①、如果根目录没设可读权限,则对所有文件都没可读权限;②、而如果对根目录设置了可读权限,则对根目录下的所有文件都具有了可读权限。这样就造成了普通员工的权限只有两种可能:要不对所有文件都没有权限;(这肯定不是我们要的)要不就对整个项目库具有可读权限。(造成严重的安全漏洞,毕竟某些关键内容,我们并不希望太多人看到)。
8、关于用户权限的补充说明,如果:
[/]
@AdminGroup=rw
* =
[HS2501:/]
@OtherGroup1=rw
@OtherGroup2=r
* =
AdminGroup是没有权限访问”HS2501”的,因为[HS2501:/]下面有:* = 。表示除了OtherGroup1,OtherGroup2外其它的组都没有读写权限,如果要使AdminGroup可以继承权限(即可以访问[/]下面所有的文件夹),就不能写*=,即:
[/]
@AdminGroup=rw
* =
[HS2501:/]
@OtherGroup1=rw
@OtherGroup2=r
例如我的Subversion安装在" E:\Development\Subversion ",版本库在" D:\ServerRoot\SvnServerRoot ",而我希望对应的Subversion服务名为SVNService,安装这个svn服务的命令就可以这样写:
sc create svnservice
binpath= "D:\Development\Subversion\bin\svnserve.exe --service -r F:\ServerRoot\SvnServerRoot"
displayname= "SVNService" depend= Tcpip
请注意,因为便于察看,上面的命令分为多行,但在实际执行时应该在一行里。另外,在以前启动svnserve时会使用"-d"选项,也就是守护进程模式,在这里不能使用,会导致服务无法启动。同样,"-i"和"-t"选项也不能使用。
在命令行窗口执行完这个命令之后,服务还没有启动,你可以继续运行"net start svnservice"启动这个服务,然后使用"net stop svnservice"停止服务。
另外还有两点需要小心处理。首先,如果路径中包括空格,一定要用“\”处理“"”号,例如上面的例子中Developmen被写为Dev elopment(Dev和elopment中间有个空格),则命令应该写如下,红色部分是改变部分:
sc create svnservice
binpath= "\"E:\Dev elopment\Subversion\bin\svnserve.exe\" --service -r D:\ServerRoot\SvnServerRoot"
displayname= "SVNService" depend= Tcpip
其次,sc对选项的格式还有要求,例如“depend= Tcpip”不能写为“depend = Tcpip”或“depend=Tcpip”,也就是“=”前不能有空格,而后面必须有空格。
sc create svnservice
binpath= "E:\Development\Subversion\bin\svnserve.exe --service -r D:\ServerRoot\SvnServerRoot"
displayname= "SVNService" depend= Tcpip start= auto
sc create svnservice binpath= "\"D:\Program Files\Subversion\bin\svnserve.exe\" --service -r D:\SvnServerRoot" displayname= "SVNService" depend= Tcpip start= auto
当然你也可以使用图形化的工具修改服务的属性,你可以在“开始->运行...”中执行"services.msc",然后在界面中修改。
如果Svn提示上传失败,可以在“安全”选项卡中,新建一个用户名“Everyone”,开放所有权限。(测试下业,删除Everyone后,Svn也可正常工作)
弹出对话框:
1. 版本库在本机上安装,并且假设你电脑的IP地址为:192.168.1.2(上海SvnServer内部IP),则在“版本库URL:”中输入“svn://server-1/HS2501”或“svn://192.168.1.2/HS2501”等效。
2、版本库在服务器上安装:假设服务器的IP地址为:192.168.1.2,则在地址栏中输入:svn://192.168.1.2/HS2501 。
在“最新信息”里,最好填写”import”之类比较切合实际的词组或语句。
此时你可以打开IE或文件夹,在地址栏中输入下面的任意一个:
①、svn://192.168.1.2/HS2501 ②、svn://127.0.0.1/HS2501 ③、svn://server-1/HS2501 此时你可以打开IE或资源管理器的地址栏,甚至运行中输入上述三种方式之一,即可打开如下对话框:
输入用户名和密码,可勾上“保存认证”,免去每次输密码的麻烦,得到如下对话框:
上图是对HS2501目录有权限的用户显示出来的结果,如果您对HS2501目录没有可读权限,则结果不一样。如:您输入的用户是ljp,则显示如下:
说明ljp对HS2501没有可读权限。当然了,ljp用户对HS2501/department/pc下的文件是有权限的,我们可在上图的URL中的HS2501后面加上/department/pc,或者关闭上图,在地址栏中输入:svn://127.0.0.1/HS2501/department/pc再输入密码,显示如下:
我们可在“pc”点右键,选择“创建文件夹”,输入文件名“test”,可以看到test文件夹已添加到pc下面。刚好也验证了我们设置的权限是正确的。Ljp能对pc下的文件进行读写操作。
HS2501 项目名称
├─Department 存放每个部门资料
│ ├─Arithmetic 算法资料目录
│ ├─Hardware 硬件资料目录
│ ├─Ic 电路资料目录
│ ├─Software 软件资料目录
├─com 研发部均可读的公共资料
└─temp 临时文件
svn checkout https://172.16.14.109/svn/HiviewDtvDriver
一、程序安装
1.服务器端安装(1). 安装 svn-1.4.6-setup.exe;
(2). 安装 python-2.5.1.msi
(3). 安装svn-python-1.4.6.win32-py2.5.exe
安装要按上面顺序来。需要注意的是,版本必须对应上来。比如说svn 是1,4,6版本,python是2.5.1版本,那么安装的svn-python版本就要和它俩对应起来。
2.客户端安装
这个比较简单,和安装通用软件差不多。安装完成后,可以选择性安装中文语言包。(不过,奇怪的是,我这边安装了中文包,还是显示英文)
客户端安装完成后,要把config 文件拷贝至“C:\Documents and Settings\Zengxg\Application Data\Subversion”,其中Zengxg是windows用户名,覆盖原文件。config文件对于用户,主要是起两个作用
(1)加入Svn上传文件的默认属性,一般是分文本类和二进制类型的
*.cs = svn:eol-style=native;svn:mime-type=text/plain;svn:keywords="Author Date Id Revision"
*.doc = svn:mime-type=application/doc
.cs是文本类型的,而.doc是二进制类型的
(2)筛选一些不上传的文件,可以在后面加,格式是“*.扩展名”
global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store *.obj *.lst *.bak *.Bak *.BAK *.tds *.opt *.ncb *.plg *.IAB *.IAD *.IMB *.IMD *.PFI *.PRI *.PO *.PR *.PS *.WK3 *.rel *.boj *.pdb *.exp *.ilk *.tde *.top *.mak *.pch *.idb *.suo *map *.lnp
*.omf *.Opt *.SBR *.hex *Hex *.HEX *.h20 *.abs *.BIN *.user *.Load *.suo.* *.cache *.Cache *.log *.LOG *.SearchResults
二、建立版本库
在服务器选择空间足够的分区(目前是D盘),新建SvnServerRoot文件夹,再在SvnServerRoot下新建HS2501文件夹(一般来讲就是项目名)然后,在项目文件夹下创建版本库:
第一种方式:在DOS命令行中运行svnadmin create D:\ SvnServerRoot\ HS2501
第二种方式:鼠标右键单击HS2501,选择[TotoiseSVN]->[在此创建版本库...]进行创建,默认“本地文件系统(FSFS)”,点击确定,完成创建。
三 配置权限
项目文件夹下版本库配制成功后,比如说HS2501文件夹下,生成了conf,dav,db,hooks,locks四个文件夹,以及format,Readme.txt。其中conf文件夹下的三个文件需要配置。为了操作方便性,我们先在D:\SvnServerRoot文件夹下,新建conf文件夹,把HS2501\conf文件夹下的authz,,passwd两个文件剪切过来。那么,当前三个文件的实际路径为:
1.svnserve.conf文件 D:\SvnServerRoot\HS2501\conf
2.authz文件 D:\SvnServerRoot\conf
3.passwd D:\SvnServerRoot\conf
这样做的目的是,以后新增项目时,只需要重新配制项目文件夹下的svnserve.conf文件,authz文件和pawwwd文件都是共用,各项目中的svnserve.conf通过相对路径来获取它们。下面分别编辑上述三个文件。
编辑版本库D:\SvnServerRoot\Hs2501\conf\svnserve.conf文件,如下:
[general]
anon-access = none #保证只有认证用户可以访问,即关闭匿名访问
auth-access = write #通过认证的使用权限
password-db = ../../conf/passwd #指定了用户密码文件(将该文件放在D:\ SvnServerRoot\conf目录下)
authz-db = ../../conf/authz #指定了授权文件(将该文件放在D:\ SvnServerRoot\conf目录下)
realm = Hiview #客户端凭证缓存
编辑版本库D:\ SvnServerRoot\conf\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]
heyunpeng = hisense
sunshihua = hisense
zhanjiajin = hisense
[users]
huangzhenqiang = hisense
lilei = hisense
liulizhuang = hisense
liuyadong = hisense
liuyi = hisense
liuyong = hisense
liuyuxuan = hisense
liuzhiheng = hisense
liyunfeng = hisense
wangruibing = hisense
xiaolongguang = hisense
zhangjing = hisense
[users]
#liuying = hisense #200712离职
wangxiaohui = hisense
yiyan = hisense
zhangcheng = hisense
zhaodan = hisense
[users]
wangwei = hisense
xianghongqiang = hisense
yangjia = hisense
yangyuancheng = hisense
[users]
chenyongqiang = hisense
huangyi = hisense
jiangxianzhou = hisense
lijianwei = hisense
limin = hisense
liuqifu = hisense
liuyadong = hisense
qiumin = hisense
shichuanqi = hisense
sunerjun = hisense
wuke = hisense
yuhaiqun = hisense
zenglinggang = hisense
zhengchenggen = hisense
[users]
chenshilei = hisense
dengpan = hisense
huahongmin = hisense
maweizhuo = hisense
pengpeng = hisense
wuyupeng = hisense
suixingguang = hisense
sunzhaoquan = hisense
xiaolingli = hisense
yanlei = hisense
zengxiaoguang = hisense
zhouquan = hisense
编辑版本库D:\SvnServerRoot\conf\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]
AdminGroup = liyunfeng
HiviewLeaderGroup = heyunpeng , sunshihua , zhanjiajin
ArithmeticLeaderGroup = liulizhuang
HardwareLeaderGroup = lilei , liuyi , liuyong , xiaolongguang
IcLeaderGroup = huangzhenqiang , liuyadong , liuyuxuan , liuzhiheng , wangruibing
SoftwareLeaderGroup = liyunfeng , zhangjing
ArithmeticGroup = liuying , wangxiaohui , yiyan , zhangcheng , zhaodan
HardwareGroup = wangwei , xianghongqiang , yangjia , yangyuancheng
IcGroup = chenyongqiang , huangyi , jiangxianzhou , lijianwei , limin , liuqifu , liuyadong , qiumin , shichuanqi , sunerjun , wuke , yuhaiqun , zenglinggang , zhengchenggen
SoftwareGroup = chenshilei , dengpan , huahongmin , maweizhuo , pengpeng , suixingguang , sunzhaoquan , wuyupeng , xiaolingli , yanlei , zengxiaoguang , zhouquan
ToolGroup = chenshilei , pengpeng , suixingguang , zengxiaoguang , zhouquan
HS2501Group = dengpan , huahongmin , maweizhuo , sunzhaoquan , xiaolingli , yanlei , zhouquan
HS2503Group = chenshilei , huahongmin , maweizhuo , xiaolingli , yanlei
HS1201Group = maweizhuo , yanlei
[/]
@AdminGroup = rw
@HiviewLeaderGroup = r
#@SoftwareGroup = r
#* = r
* =
[Arithmetic:/]
@ArithmeticLeaderGroup = rw
@ArithmeticGroup = r
* =
[HardWare:/]
@HardwareLeaderGroup = rw
@HardwareGroup = r
* =
[Ic:/]
@IcLeaderGroup = rw
@IcGroup = r
* =
[SoftWare:/]
@SoftwareLeaderGroup = rw
@SoftwareGroup = r
* =
[HS2501:/]
@SoftwareLeaderGroup = rw
@SoftwareGroup = r
* =
[SoftWare:/DeInterlace:/]
@ToolGroup = rw
* =
[SoftWare:/Doc:/]
@SoftwareGroup = rw
* =
[SoftWare:/HS2501:/]
@HS2501Group = rw
* =
[SoftWare:/HS2503]
@HS2503Group = rw
* =
[SoftWare:/HiviewDebugger:/]
@ToolGroup = rw
* =
[SoftWare:/SDKS(Software Development Kit System):/]
@SoftwareGroup = r
* =
[SoftWare:/TMCS(Television Micro Control System)-old:/]
@SoftwareGroup = r
* =
附:
1、 #号表示注释。以上每个文件夹权限设置中对每个组与用户的权限设置顺序可调换,如:
根目录的设置也可以写成:
[/]
@HiviewLeaderGroup = r
@AdminGroup = rw
* =
2.、文件夹权限具有向后继承,但不具有向前效应。简言之就是权限具备继承性,任何子目录,均可继承其父目录的所有权限,除非它自己已被明确设置了其他的权限。如本例:为AdminGroup设置了根目录“[/]”的读写权限,则根目录下的文件AdminGroup均具有读写权限。但是在该目录的下一级目录,如:“[/HS2501/]”为其他用户设置了权限,把默认访问权限设为了可读,(在根目录,默认是不可访问)必须也加上AdminGroup = rw,否则AdminGroup在“[/HS2501/]”中跟其他用户一样也是可读权限。
3、我们发现yanlei这个帐号同时存在“HS2501Group”和“HS2503Group”两个分组里面,这是因为 svnserve.exe 允许我们这样设置。
4、[/HS2501/] 表示这个目录结构的相对根节点,或者说是HS2501资料库的根目录。设置权限时“@”表示组名,设置的是整个组的权限,如果该组只有一个用户,则可将“@组名”替换为“用户名”如:你可以将“@AdminGroup = rw”替换为“liyunfeng = rw” 。
5、如果设置了可读写权限,则在稍后的操作中,我们可以从版本库更新我们的工作拷贝,也可以提交修改;如果设置了可读权限,则只有更新工作拷贝,不能提交修改,如果您提交了,将会得到“Access deny”警告,也就是禁止提交修改。
6、如果一个目录下有多库,则文件夹目录写法有点不一样。如本例中的[/HS2501/],应该改写为[HS2501:/]。但是要是您也是像本例这样只想创建单库单项目的话,则按上面的操作即可。
7、如果像本例这样的单库单项目也照网络上大多数的文章那样,把目录写成[HS2501:/],则会造成严重的权限问题。主要的问题有:①、如果根目录没设可读权限,则对所有文件都没可读权限;②、而如果对根目录设置了可读权限,则对根目录下的所有文件都具有了可读权限。这样就造成了普通员工的权限只有两种可能:要不对所有文件都没有权限;(这肯定不是我们要的)要不就对整个项目库具有可读权限。(造成严重的安全漏洞,毕竟某些关键内容,我们并不希望太多人看到)。
8、关于用户权限的补充说明,如果:
[/]
@AdminGroup=rw
* =
[HS2501:/]
@OtherGroup1=rw
@OtherGroup2=r
* =
AdminGroup是没有权限访问”HS2501”的,因为[HS2501:/]下面有:* = 。表示除了OtherGroup1,OtherGroup2外其它的组都没有读写权限,如果要使AdminGroup可以继承权限(即可以访问[/]下面所有的文件夹),就不能写*=,即:
[/]
@AdminGroup=rw
* =
[HS2501:/]
@OtherGroup1=rw
@OtherGroup2=r
四、将svnserve设置为系统服务
1、安装svnservice
在Windows NT中(包括Windows XP, Windows 2000, Windows 2003 Server)本身包含了一个安装服务的工具,叫做"Service Control",也就是sc.exe。例如我的Subversion安装在" E:\Development\Subversion ",版本库在" D:\ServerRoot\SvnServerRoot ",而我希望对应的Subversion服务名为SVNService,安装这个svn服务的命令就可以这样写:
sc create svnservice
binpath= "D:\Development\Subversion\bin\svnserve.exe --service -r F:\ServerRoot\SvnServerRoot"
displayname= "SVNService" depend= Tcpip
请注意,因为便于察看,上面的命令分为多行,但在实际执行时应该在一行里。另外,在以前启动svnserve时会使用"-d"选项,也就是守护进程模式,在这里不能使用,会导致服务无法启动。同样,"-i"和"-t"选项也不能使用。
在命令行窗口执行完这个命令之后,服务还没有启动,你可以继续运行"net start svnservice"启动这个服务,然后使用"net stop svnservice"停止服务。
另外还有两点需要小心处理。首先,如果路径中包括空格,一定要用“\”处理“"”号,例如上面的例子中Developmen被写为Dev elopment(Dev和elopment中间有个空格),则命令应该写如下,红色部分是改变部分:
sc create svnservice
binpath= "\"E:\Dev elopment\Subversion\bin\svnserve.exe\" --service -r D:\ServerRoot\SvnServerRoot"
displayname= "SVNService" depend= Tcpip
其次,sc对选项的格式还有要求,例如“depend= Tcpip”不能写为“depend = Tcpip”或“depend=Tcpip”,也就是“=”前不能有空格,而后面必须有空格。
2、删除服务
如果服务安装的有问题,你可能需要删除服务。要删除前面添加的服务,只需要运行"sc delete SVNService "," SVNService "就是我们创建服务时使用的名字。3、配置服务是自动启动
默认情况下安装的服务不会随Windows的启动而启动,为了使svn服务能够随Windows启动而启动,需要修改一下"sc create"命令(首先要删除),增加"start= auto"选项:sc create svnservice
binpath= "E:\Development\Subversion\bin\svnserve.exe --service -r D:\ServerRoot\SvnServerRoot"
displayname= "SVNService" depend= Tcpip start= auto
sc create svnservice binpath= "\"D:\Program Files\Subversion\bin\svnserve.exe\" --service -r D:\SvnServerRoot" displayname= "SVNService" depend= Tcpip start= auto
当然你也可以使用图形化的工具修改服务的属性,你可以在“开始->运行...”中执行"services.msc",然后在界面中修改。
4、版本库的配置
本例子,版本库为D: \SvnServerRoot。Window XP操作系统下,有时会禁止文件夹属于中的“安全”选项卡。可通过“工具\文件夹选项\查看”中,取消“使用简单文件夹共享(推荐)”。即可使能“安全”选项卡。如果Svn提示上传失败,可以在“安全”选项卡中,新建一个用户名“Everyone”,开放所有权限。(测试下业,删除Everyone后,Svn也可正常工作)
五、导入项目版本库
在本机D:\temp目录下,建立好上述资料库的目录结构,鼠标右键单击temp,选择[TotoiseSVN]->导入,如下图所示:弹出对话框:
1. 版本库在本机上安装,并且假设你电脑的IP地址为:192.168.1.2(上海SvnServer内部IP),则在“版本库URL:”中输入“svn://server-1/HS2501”或“svn://192.168.1.2/HS2501”等效。
2、版本库在服务器上安装:假设服务器的IP地址为:192.168.1.2,则在地址栏中输入:svn://192.168.1.2/HS2501 。
在“最新信息”里,最好填写”import”之类比较切合实际的词组或语句。
此时你可以打开IE或文件夹,在地址栏中输入下面的任意一个:
①、svn://192.168.1.2/HS2501 ②、svn://127.0.0.1/HS2501 ③、svn://server-1/HS2501 此时你可以打开IE或资源管理器的地址栏,甚至运行中输入上述三种方式之一,即可打开如下对话框:
输入用户名和密码,可勾上“保存认证”,免去每次输密码的麻烦,得到如下对话框:
上图是对HS2501目录有权限的用户显示出来的结果,如果您对HS2501目录没有可读权限,则结果不一样。如:您输入的用户是ljp,则显示如下:
说明ljp对HS2501没有可读权限。当然了,ljp用户对HS2501/department/pc下的文件是有权限的,我们可在上图的URL中的HS2501后面加上/department/pc,或者关闭上图,在地址栏中输入:svn://127.0.0.1/HS2501/department/pc再输入密码,显示如下:
我们可在“pc”点右键,选择“创建文件夹”,输入文件名“test”,可以看到test文件夹已添加到pc下面。刚好也验证了我们设置的权限是正确的。Ljp能对pc下的文件进行读写操作。
六、客户端配制
svn://192.168.1.2/HS2501 其中“192.168.1.2”为Svn服务器PC IP地址,HS2501为项目名。注意,要把电脑的防火墙关掉,否则连不上。七、项目结构
资料库的目录结构拟如下划分(以HS2501为例):HS2501 项目名称
├─Department 存放每个部门资料
│ ├─Arithmetic 算法资料目录
│ ├─Hardware 硬件资料目录
│ ├─Ic 电路资料目录
│ ├─Software 软件资料目录
├─com 研发部均可读的公共资料
└─temp 临时文件
相关文章推荐
- VisualSvn Server安装和使用
- svn服务端的安装与使用方式简介(一)
- 版本控制二:VisualSVN server+TortoiseSVN 的安装及使用(下)
- VisualSvn Server安装和使用
- Ubuntu Server 10.10 安装 SVN 及简单使用(装载)
- svn服务端的安装与使用方式简介(二)
- VisualSVN Server的安装与使用
- svn简介 安装 和基本使用方法
- VisualSVN Server的安装和使用
- 版本控制二:VisualSVN server+TortoiseSVN 的安装及使用(上)
- VisualSVN server安装及使用 转
- VisualSVN Server 安装配置和其客户端的使用
- VisualSVN Server安装配置与使用教程
- VisualSVN server安装与使用
- TortoiseSvn 和 VisualSvnServer 的 安装 以及 使用
- VisualSVN Server 4.0.0 安装及使用流程
- VisualSvn Server安装和使用
- VisualSVN Server安装配置与使用教程
- 安装使用VisualSVN Server
- VS 中配置使用Visual SVN系列 一:SVN Server下载和安装