您的位置:首页 > 其它

SvnServer安装使用简介

2012-03-16 09:36 204 查看
使用:

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 临时文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: