CentOS6下SVN服务器的搭建

\

一、SVN服务器端的安装

1、检查已安装版本

#检查是否安装了低版本的SVN

[root@localhost /]#rpm -qa subversion

#如果存储旧版本,卸载旧版本SVN

[root@localhost modules]#yum removesubversion

 

2、安装SVN

[root@localhost modules]#yum -y installsubversion

 

3、验证安装

检验已经安装的SVN版本信息

[root@localhost modules]# svnserve--version

svnserve,版本 1.6.11(r934486)

编译于 Jun 23 2012,00:44:03

版权所有 (C) 2000-2009CollabNet。

Subversion 是开放源代码软件,请参阅http://subversion.tigris.org/ 站点。

此产品包含由 CollabNet(http://www.Collab.Net/)开发的软件。

列版本库后端(FS) 模块可用:

* fs_base : 模块只能操作BDB版本库。

* fs_fs : 模块与文本文件(FSFS)版本库一起工作。

Cyrus SASL 认证可用。

4、代码库创建

SVN软件安装完成后还需要建立SVN库

[root@localhost modules]#mkdir -p/opt/svn/                    #创建SVN根目录

[root@localhost modules]#svnadmin create/opt/svn/repo         #创建repo测试库

执行上面的命令后,自动建立repo测试库,查看/opt/svn/repo 文件夹发现包含了conf, db,format,hooks, locks, README.txt等文件,说明一个SVN库已经建立。

 

5、配置代码库

进入上面生成的文件夹conf下,进行配置

[root@localhost modules]#cd/opt/svn/repo/conf

(1)用户密码passwd配置

[root@localhost password]#cd/opt/svn/repo/conf

[root@admin conf]#vim passwd

修改passwd为以下内容:

[users]

# harry = harryssecret

# sally = sallyssecret

hello = 123

aaa = 123

www = 123

用户名=密码

 

这样我们就建立了hello、aaa、www等用户,密码均为123密码

(2)权限控制authz配置

[root@admin conf]#vim authz

目的是设置哪些用户可以访问哪些目录,向authz文件追加以下内容:

[groups]            #组

admin = hello,www   #创建一个admin组,将用户加入到组

[/]                 #根目录权限设置(就是“svn”这个文件夹)

aaa = rw            #aaa对svn下的所有版本库有读写权限

[repo:/]            #repo:/,表示对repo版本库下的所有资源设置权限

@admin = rw         #admin组的用户对repo版本库有读写权限

[repo2:/occi], ,表示对版本库repo2中的occi项目设置权限

[repo2:/occi/aaa], ,表示对版本库2中的occi项目的aaa目录设置权限  权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。

(3)服务svnserve.conf配置

[root@admin conf]#vim svnserve.conf

追加以下内容:

[general]

#匿名访问的权限,可以是read,write,none,默认为read

anon-access = none

#使授权用户有写权限

auth-access = write

#密码数据库的路径

password-db = passwd

#访问控制文件

authz-db = authz

#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字

realm = /opt/svn/repo

(4)关闭防护墙

[root@admin conf] #service iptables stop   //即时生效,重启后失效 

[root@admin conf] # chkconfig iptables off  //重启后生效

(5)启动SVN

svnserve -d -r /opt/svn/         #指定SVN根目录

(6)查看SVN进程

[root@admin conf] #ps -ef|grep svnserve

(7)检测SVN 端口

[root@localhost conf]#netstat -ln |grep3690

tcp 0  0 0.0.0.0:3690    0.0.0.0:*     LISTEN

(8)停止重启SVN

[root@localhost password]# kill allsvnserve            //停止

[root@localhost password]# svnserve -d -r/opt/svn/repo  // 启动

如果已经有svn在运行,可以换一个端口运行

svnserve -d -r /opt/svn/ --listen-port 3391

(9)使用checkout导出文件

[root@localhost tang]# svn checkout svn://127.0.0.1/repo    //本机测试

 

二、SVN客户端的安装

1、检查已安装版本

#检查是否安装了低版本的SVN

[root@localhost /]#rpm -qa subversion

#如果存储旧版本,卸载旧版本SVN

[root@localhost modules]#yum removesubversion

2、安装SVN

[root@localhost modules]#yum installsubversion

 

3、验证安装

检验已经安装的SVN版本信息

[root@localhost modules]# svnserve--version

svnserve,版本 1.6.11 (r934486)

编译于 Jun 23 2012,00:44:03

版权所有 (C) 2000-2009 CollabNet。

Subversion 是开放源代码软件,请参阅http://subversion.tigris.org/ 站点。

此产品包含由 CollabNet(http://www.Collab.Net/) 开发的软件。

下列版本库后端(FS) 模块可用:

 

* fs_base : 模块只能操作BDB版本库。

* fs_fs : 模块与文本文件(FSFS)版本库一起工作。

Cyrus SASL 认证可用。

 

4、SVN客户端下载文件

[root@localhost ~]# mkdir /svn

[root@localhost ~]# cd /svn/        #将svn服务上提取的文件放在此目录下

[root@localhost svn]# svn checkout svn://192.168.233.203/repo    #svn服务器地址

输入用户名密码:hello/123

 

注:可以使用带用户名和密码的访问:

svn co --username hello --password123svn://192.168.233.203/repo

 

5、SVN版本库更新

svn up /svn/repo

上传文件到服务器

[root@localhost ]# touch/svn/repo/test.php        #所有的动作必须在repo版本库中完成

[root@localhost ]# svn add /svn/repo/test.php      #上传test.php文件到svn服务器

6、删除服务器上的文件

[root@localhost ]# svn rm/svn/repo/test.php--force

7、查看版本库内容

[root@localhost ~]# svn list /svn/repo/

 

三、命令说明

1、创建版本库:

终端输入:svnadmin create [路径]

该路径可以是相对路径,例如,当前在home/user/svn/目录下,输入svnadmin create myproject,则该版本库会被创建在home/user/svn/目录下,新建一个文件夹名为myproject,其中便是版本库的文件了。

 

2、将文件导入版本库:

终端输入:svn import [源路径] [目标版本库路径] -m [日志信息]

源路径可以是相对路径,导入时会递归导入源路径下的所有文件和文件夹,目标版本库路径需要绝对目录(反正我试验是这样的),例如版本库的目录是:home/user/svn/myproject/。则应该这样写:file:///home/user/svn/myproject/

例如将当前目录导入版本库myproject:

svn import .file:///home/user/svn/myproject -m"导入文件"

 

3、从版本库导出:

导入后原文件并未被纳入版本管理,若想获得受版本控制的文件,就需要从版本库导出

终端输入:svn co [版本库路径]

例如将myproject库中的文件导出到当前目录:svn co file:///home/user/svn/myproject .

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值