如何搭建局域网SVN-从单仓储到多仓储

 

一,    单仓储的svn服务器搭建

二,    多仓储的svn服务器搭建

三,    权限的分配

四,    开启svnserve的方法

#####################单仓储的svn服务器搭建########################

参考内容:

**svn安装与其服务器搭建:

**http://jingyan.baidu.com/article/93f9803fea9ff4e0e46f55f0.html

 

工具/原料

·        TortoiseSVN-1.8.4.24972-win32-svn-1.8.5.msi  SVN安装包

·        setup-subversion-1.8.4.msi 版本控制,搭建服务器用,其他使用者电脑不需要

·        LanguagePack_1.8.4.24972-win32-zh_CN.msi svn汉化包

方法/步骤

1.    双击TortoiseSVN,会弹出安装界面,一直Next最后Install即可,等待片刻即安装完成

2.    安装汉化包(可选),双击LanguagePack,后点击Next最后Install,等待片刻即安装完成

3.    安装Setup-Subversion,双击Setup-Subversion,后点击Next最后Install,等待片刻即安装完成

4.    SVN汉化界面配置,在文件夹空白位置单机右键,选择TortoiseSVN后点击settings弹出界面,Genneral右侧Language选择"中文(简体)",点击应用确定即可

5.    配置服务器,在根目录创建一文件夹E:\svnHome124,进入文件夹,在文件夹空白位置单机右键,选择TortoiseSVN后点击"在此创建版本库"

6.    在E:\svnHome124\conf目录下找到svnserve.conf,用记事本打开,找到

# password-db = passwd,将前面的#删除,保存关闭。同一目录下找到passwd,用记事本打开,找到

# harry = harryssecret

# sally = sallyssecret

例: zhangsan = zhangsan

删除前面的#号,这里为用户的账号管理,账号=密码,注意别留空格;保存关闭

7.    启用SVN服务,按下windows+R键,输入cmd进入命令界面,输入:svnserve -d -r e:\svnHome124,其中,e:\svnHome124为你服务器目录;注意:注意:这是临时打开的服务,命令执行后不能关闭窗口;也可将SVN服务设为自动启动

sc createsvnservice binpath= “c:Program Files\Subversion\bin\svnserve.exe–service -r e:\svnHome124”(在四,    开启svnserve的方法 会详细讲解

8.    测试是否安装成功,创建一文件夹,选择文件夹单击右键SVN检出;svn://192.168.0.108,此为服务器IP地址(win下可通过虚拟dos窗口:ipconfig/all),输入账号密码,即第六步配置的账号密码;如显示”完毕 于版本0“即为安装成功,

9.    如果出现”期望格式在1~4之间,发现格式6“,则为TortoiseSVN与setup-subversion版本同,可下载相同版本安装,也可在命令界面进入你TortoiseSVN的安装Bin文件夹c: c:\Program Files\TortoiseSvn\bin 然后创建数据库,注意删除之前手动创建的,命令:svnadmin create e:\svnHome124

 #####################到此为止单仓储的svn服务器搭建完成########################


 

 

########################以下为多仓储的svn服务器搭建##########################

参考自:

**SVN 多项目管理:

**http://webnoties.blog.163.com/blog/static/18352514120139933416542/

**

Subversion的目录结构是很自由的,所有的规划都必须是你自己规定,考虑一个 subversion仓库的目录树,你可以把任何一个目录认定为一个项目,你可以只checkout这个目录下的所有文件进行编码,跟CVS不同,CVS显式指定一个个module。所以你可以在一个仓库内保存多个项目,也可以一个仓库保存一个项目而使用多个仓库。我个人比较喜欢第二种,因为Subversion的每次commit都会导致整个仓库版本号增加一个,会使得 多个项目的 版本号出现断层。一个仓库一个项目,显得更优雅一些。仓库规划:

下面是一个多版本库的目录:

D:/svnHome124

├─ARM

│  ├─conf

│  ├─dav

│  ├─db

│  │  ├─revprops

│  │  ├─revs

│  │  └─transactions

│  ├─hooks

│  └─locks

├─FPGA

│  ├─conf

│  ├─dav

│  ├─db

│  │  ├─revprops

│  │  ├─revs

│  │  └─transactions

│  ├─hooks

│  └─locks

└─client

    ├─conf

    ├─dav

    ├─db

    │  ├─revprops

    │  ├─revs

    │  └─transactions

    ├─hooks

    └─locks

   这三个仓库的建立方法如下图所示,在命令界面进入你TortoiseSVN的安装Bin文件夹c: c:\Program Files\TortoiseSvn\bin 然后创建数据库,注意删除之前手动创建的,命令:svnadmin create e:\svnHome124(或者在根目录创建3文件夹ARM,FPGA,client,进入文件夹,在文件夹空白位置单机右键,选择TortoiseSVN后点击"在此创建版本库",重复3次)

e:/svnHome124(在这个目录下建立每个项目独立)下有3个目录ARM,FPGA和client,都已经创建了版本库,所以我们修改每个conf目录下的svnserve.conf,使之指向同一个password-db和authz-db文件。

password-db=../../passwd

authz-db=../../authz

取出ARM下面conf文件夹下的authz和passwd两个文件到e:/svnHome124根目录下面

这样,e:/svnHome124/passwd和e:/svnHome124/authz就控制了所有版本库的svnserve访问。另外在后面的操作中要关闭匿名访问,应该去掉“anon-access=none”前的“#”号,保证只有认证用户可以访问。

注意:还有一点需要注意,那就是svnserve“realm”的值,在上面的设置下,应该保证所有的版本库使用相同的realm值(可以不修改),这样,对版本库的密码缓存可以在多个版本库之间共享,更多细节见客户端凭证缓存。


使用 svnserve -d -r "e:\svnHome124" 启动。这样你的项目的url是:
svn://IP/ARM
svn://IP/FPGA
svn://IP/client


在客户端新建一个目录,作为import的内容,比如c:\svnimport\rolex,然后在里面建立branches,tags,trunk子目录,把你需要源代码管理的项目放入trunk目录,注意删除垃圾文件。在c:\svnimport\rolex上点击Import...,选择url为 svn://IP/ARM,导入。你可以使用仓库浏览器查看导入的效果。

需要工作时,新建一个目录比如c:\svnclient\ARM\trunk,然后在trunk上checkout出svn://IP/ARM/trunk上的内容。

##########################到此为止3个独立仓储建立完毕#####################


 

 

##########################下面给每个用户配置权限###########################

**参考自:

**SVN权限配置:

**http://www.svn.net.cn/content-7-1747-1.html

版本库禁止任何匿名用户的访问,只对认证用户有效。

root:配置管理管理员,对版本库有完全的管理权限。

p1_a1:project1的管理员,对project1有完全权限。

p1_d1:project1的开发者,对project1的trunk有完全的权限,但是对其中的/trunk/admin目录没有任何权限。

p1_t1: project1的测试者,对project1的trunk有完全的读权限,但是对其中的/trunk/admin目录没有任何权限。

 

p2_a1:project2的管理员,对project2有完全权限。

p2_d1:project2的开发者,对project2的trunk有完全的权限,但是对其中的/trunk/admin目录没有任何权限。

p2_t1: project2的测试者,对project2的trunk有完全的读权限,但是对其中的/trunk/admin目录没有任何权限。

 

对应的组及组的用户:

p1_group_a:p1_a1

p1_group_d:p1_d1

p1_group_t:p1_t1

p2_group_a:p2_a1

p2_group_d:p2_d1

p2_group_t:p2_t1

5.      修改D:/SVNROOT/passwd文件

前面已经说过了,用户和密码文件应该是在D:/SVNROOT/passwd,所以我们为每一位用户设置权限,文件内容如下:

[users]

p1_a1=p1_a1

p1_d1=p1_d1

p1_t1=p1_t1

p2_a1=p2_a1

p2_d1=p2_d1

p2_t1=p2_t1

为了便于验证,所有密码和用户名一致。

6.      配置授权,修改D:/SVNROOT/authz

[groups]

# 定义组信息

p1_group_a=p1_a1

p1_group_d=p1_d1

p1_group_t=p1_t1

 

p2_group_a=p2_a1

p2_group_d=p2_d1

p2_group_t=p2_t1

 

[/]

# 指定所有的版本库默认只读,root可读写

*=r

root=rw

 

[project1:/]

# 指定对版本库project1根目录的权限

@p1_group_a=rw

@p1_group_d=rw

@p1_group_t=r

 

[project1:/trunk/admin]

# 指定对版本库project1的/trunk/admin根目录的权限,

# p1_group_a读写,p1_group_d和p1_group_t没有任何权限。

@p1_group_a=rw

@p1_group_d=

@p1_group_t=

 

[project2:/]

# 指定对版本库project2根目录的权限

@p2_group_a=rw

@p2_group_d=rw

@p2_group_t=r

 

[project2:/trunk/admin]

# 指定对版本库project2的/trunk/admin根目录的权限

# p2_group_a读写,p2_group_d和p2_group_t没有任何权限。

@p2_group_a=rw

@p2_group_d=

@p2_group_t=

经过以上设置以后,你会发现当使用用户“p1_d1”,检出project1的trunk时,目录是空的,好像admin目录根本不存在一样,当使用p1_d1用户浏览版本库时,能够看到admin目录,但是其中的内容却无法看到。

关于中文目录,也是没有问题的,只是注意要把authz文件转化为UTF-8格式,在我的WINXP的UltraEdit里显示的文件格式为U8-DOS,具体的做法是用UltraEdit打开authz文件,然后选择“文件->转换->ASCII转UTF-8”,然后保存。

再复杂的情况也不过如此,在实际的工作中要首先规划好权限,只赋给用户最小的权限,保证以最小的配置实现最复杂的权限控制。


 

##########################svnserve自动启动配置方法###########################

**参考内容:

**

http://zhidao.baidu.com/link?url=1gUhlY4kkEYbaEkWTB6V03_hl0T32EoVpT7fZpjiNnS0VdhmTQbPiYDHA08tLb-h1NEgg0xOGpUCzvJixzqPSF_j48ip1VNwlsaMy7OUhWi

**

**

*****************************************

**********创建自启动服务*************

我的Subversion安装在" C:\Program Files (x86)\Subversion\bin\svnserve.exe ",版本库在" E:\svnHome124",而我希望对应的Subversion服务名为svnservice,安装这个svn服务的命令就可以这样写:

sc create svnservice binpath="\"C:\Program Files (x86)\Subversion\bin\svnserve.exe\"--service -r E:\svnHome124" displayname= "SVNService" depend=Tcpip

注意:有两点需要小心处理。首先,如果svnserve.exe所在的路径中包括空格,一定要用“\”处理“"”

没有空格的写法:
"D:\Subversion\bin\svnserve.exe
--service -r D:\svnroot"

 

开启服务:

net start SVNService

删除服务:

sc delete Svnservice

 

**********手动开启服务*************

手动开启服务:

svnserve -d -r e:\svnHome124

 

参考文章:                                                                    

svn安装与其服务器搭建:

http://jingyan.baidu.com/article/93f9803fea9ff4e0e46f55f0.html

 

SVN 多项目管理:

http://webnoties.blog.163.com/blog/static/18352514120139933416542/

 

SVN权限配置:

http://www.svn.net.cn/content-7-1747-1.html

 

SVNserve自启动设置方法:

http://zhidao.baidu.com/link?url=1gUhlY4kkEYbaEkWTB6V03_hl0T32EoVpT7fZpjiNnS0VdhmTQbPiYDHA08tLb-h1NEgg0xOGpUCzvJixzqPSF_j48ip1VNwlsaMy7OUhWi

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值