linux下搭建SVN服务器(局域网可用)-ver1.01
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux SVN 搭建(ubuntu 10.04)
1、安装subversion软件
sudo apt-get install subversion
2、建立一个目录作为SVN代码库管理的根目录(例:/home/svnadmin/svnsources/),只是一个普通目录,实际上是通过svnserve –d –r /home/svnadmin/svnsources/启动服务后暴露给网内其它机器的一个服务接入点:
mkdir /home/svnadmin/svnsources/
3、在SVN代码库管理的根目录下(/home/svnadmin/svnsources/)下建立一个代码库(repo),名称为testrepo:
svnadmin create /home/svnadmin/svnsources/testrepo
4、启动svn自带的svnserve服务供网内其它计算机使用:
svnserve -d -r /home/svnadmin/svnsources
此时便可以在局域网中通过svn://192.168.0.142/testrepo来访问testrepo这个代码库的内容了注:可以加--listen-port参数来指定端口(默认为3690),如:
svnserve -d --listen-port 3691 -r /home/svnadmin/svnsources启动服务
然后在局域网中通过svn://192.168.0.142:3691/testrepo来进行访问
5、建立一个目录(例:/home/gli/projectImport),把代码放置到主干(trunks)下,如project 为一份需要管理的代码:
projectImport
|--branches
|--tags
|--trunks
|--project
注:这个并不是必须的,只是采用这种结构管理代码是比较合理的一种方式
6、然后将这个目录(/home/gli/projectImport)导入到testrepo中去管理:
svn import -m"init testrepo" /home/gli/projectImport/ file:///home/svnadmin/svnsources/testrepo/
7、拉出一个分支来进行开发(svn copy source destination):
svn copy -m"init from trunks" file:///home/svnadmin/svnsources/testrepo/trunks/project file:///home/svnadmin/svnsources/testrepo/branches/project
注:其中source可以是本地工作副本,destination为代码库中的URL
8、当开发到一个稳定版本后或某个阶段后,需要打一些标签(tags)以方便管理:
svn copy -m"init from trunks" file:///home/svnadmin/svnsources/testrepo/branches/project file:///home/svnadmin/svnsources/testrepo/tags/project
9、若有另一个项目需要管理,可重复步骤5到8来进行开发管理。
10、在本地或网内签出代码(假设服务器的IP为192.168.0.142,名为ubuntu):
本地:svn checkout file:///home/svnadmin/svnsources/testrepo/branches/project /home/gli/project 网内:svn checkout svn://192.168.0.142/testrepo/branches/project /home/gli/project 或svn checkout svn://ubuntu/testrepo/branches/project /home/gli/project
11、以上的开发体系结构可用下图表示,特性见图中说明:
11、可供采用的其他体系结构如下(供参考):
12、用户权限的管理(以下配置只对通过svnserve提供的服务有效):
①、首先修改svnserve.conf,将注释打开如下:
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
注:anon-access 未认证用户(简配为none,否者认证用户查看日志还需增加一些设置)auth-access 经认证用户
password-db 指定用户及密码的配置文件,可以是相对路径
authz-db指定用户权限的配置文件,可以是相对路径
②、配置passwd文件:
在[users]字段下增加用户及密码,例:
[users]
gli = 123456
sli = 123456
szhang = 123456
注:空格不能省略
③、配置authz文件:
[aliases]
joe = DC=red-bean, Joe A verage
[groups]
manager = gli
developer = sli
[/]
* =
$anonymous =
$authenticated = r
szhang = r
&joe = r
@developer = r
@manager = rw
[testrepo:/]
* =
$anonymous =
$authenticated = r
szhang = r
&joe = r
@developer = r
@manager = rw
注:[aliases]字段为别名
[groups]将用户归类到组
[testrepo:/]指定具体目录的用户权限,可以为组,也可以为单独用户;组前以@开头,别名用户以&开头,单独用户不需要加前缀;*表示其他用户,$authenticate代表验证通过的