subversion安装、备份、安全认证实践笔记——宋轶聪

 

在windows上配置svn的方法

在linux 10.117.100.130 上安装svn

svn库的导入导出

查看svn服务器版本

SVN备份策略

Svn 服务配置和维护常用命令

linux下启动和停止

win下启动和停止svn

把svn加为系统服务

配置apache通过http访问svn

svn 命令行

 

 

 

 

 

 

 

 

 

 

====================================在windows上的配置方法===============================================================

1.    环境和软件准备

Window-Subvsersion : http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91

 

2.    配置管理

2.1. 创建仓库 (svnadmin)

在硬盘上创建个空目录,作为 SVN 的仓库目录如: E:/svnroot/repository

下面使用两种方式创建仓库的初时文件结构和存储方式。

  • 命令方式

  • TortoiseSVN 客户端方式,

后面所有文档都采用两种方式说明,其功能完全相同。请根据实际情况选择使用。

 

命令方式( DOS 下):

# 默认方式,采用 FSFS 方式存储数据,这是推荐方式,管理和迁移相对 bdb 方式简单

svnadmin create E:/svnroot/repository

svnadmin create &endash;fs-type bdb E:/svnroot/repository

上为bdb的文件系统方式, 一般默认是native的FS即 NTFS

 

TortoiseSVN 客户端方式

安装TortoiseSVN

创建空目录

进入空目录,右键TortoiseSVN 》创建库here

 

 

 

2.2. 配置服务

进入仓库目录下的 conf 文件夹。也就是 E:/svnroot/repository/conf

里面有 3 个默认的配置文件: authz , passwd , svnserve.conf

  • authz 典型的配置是设置由 authz 控制授权,即哪个组可以对这个目录有什么权限

  • svnserve.conf 控制 svnserve 的启动配置选项,可以配置认证和授权方式,

  • passwd 控制认证的方式来控制访问权限。也可以使用匿名方式,但不推荐。所有用户和密码

使用 authz 和 passwd 的典型配置:

 

请特别注意:以下三个配置文件的配置,每行有效配置前不能有空格,不然配置会失败

 

------------------------------------------服务配置文件 svnserve.conf-----------------------------------------------------

&ldots;&ldots;

### 匿名方式不允许访问

anon-access = none

&ldots;&ldots;

### Uncomment the line below to use the default password file.

### 表示访问仓库的认证有文件 passwd 提供的账户确定

password-db = passwd

&ldots;&ldots;

### Uncomment the line below to use the default authorization file.

### 表示认证后的账户访问权限由文件 authz 定义

authz-db = authz

### This option specifies the authentication realm of the repository.

&ldots;&ldots;

#realm = My First Repository

 

--------------------------------------------认证配置文件 passwd--------------------------------------------------------------

passwd 文件实际提供访问本仓库的账户管理,文件格式就是 ini 方式的格式

[users]

# harry = harryssecret

# sally = sallyssecret

testuser1=testuser1

testuser2=testuser2

这表示本仓库配置了二个用户及:其中一个用户 testuser1, 他的访问密码是 testuser1

访问密码可以使用明文,也可以使用 htpasswd.exe ( apache 服务器提供的工具方法,安装 apache 服务器后,在其 bin 目录中有该程序文件)进行加密处理。

 

--------------------------------------------授权配置文件 authz----------------------------------------------------------------

该文件负责认证后的用户的权限控制,配置稍微复杂,但其实也就是个 ini 配置文件而已。

典型配置:

# groups 段提供配置组的功能 , 但组成员必须是 passwd 文件中定义的用户才有效。可以对组

# 进行权限控制,所有组成员具有组对应的访问权限。

[groups]

# 表示定义了一个管理组叫 admin_group, 包括 harry 和 sally , admin_group 前千万不能有空格

admin_group=testuser1

dev_group=testuser2

# 下面就是定义具体仓库下目录的访问权限

# 一般对管理员来说都具有整个仓库的读写权限,一般人员对整个敞开具有读取权限,下面

# 就是这样的配置 ,[/] 表示整个仓库的根,组的引用使用 @ ,对应的权限可以是 r,w,rw 或空

[/]

@admin_group = rw

@dev_group = rw

* = r

[/test_project]

@admin_group = rw

@dev_group = rw

* = r

[repository:/]

@admin_group = rw

@dev_group = rw

* = r

以上的配置完成后,就可以启动服务器了,下面说明服务器的启动。

注意,以上 authz 和 passwd 文件在管理中因为具体项目的加入和人员的变动会经常的修改,这也是 SVN 管理主要的工作

 

 

2.3. 启动服务 (svnserve)

Svn 服务器一般有三种方式, svnserve , apache 和 SSH

其中常用的有 svnserve 和 apache 方式。本文只以 svnserve 方式讲解。

  • svnserve 是最高效的方式,一般应用于内部开发网中使用。

  • Apache 方式因为可以很好的部署在 internet 上,所以公网使用最方便,但配置稍微相对复杂点点,呵呵~~。

  • ssh方式

 

命令方式( DOS 下)启动:

svnserve &endash;d &endash;r "E:/svnroot/repository"

-d 参数是以独立服务的方式启动

-r 是制订要加载的仓库的物理路径

 

添加为Windows系统服务

方法1(推荐):

在Windows NT中(包括Windows XP, Windows 2000, Windows 2003 Server, Windows vista)本身包含了一个安装服务的工具,叫做"Service Control",也就是sc.exe。

1.安装为服务:

例:我的Subversion安装在"C:/Program Files/Subversion",版本库在"E:/svnroot/repository",

而我希望对应的Subversion服务名为svnservice,安装这个svn服务的命令就可以这样写:

SC create svnservice binPath= "/"C:/Program Files/Subversion/bin/svnserve.exe/" --service --root /"E:/svnroot/repository/"" displayname= "SVNService" depend= Tcpip start= auto   配置为自启动服务

 

在以前启动svnserve时会使用"-d"选项,也就是守护进程模式,在这里不能使用,会导致服务无法启动。同样,"-i"和"-t"选项也不能使用。

另外还有两点需要小心处理

  • 首先,如果路径中包括空格,一定要用”r;/”处理双引号,例如上面的例子中如果svnserve.exe在

”r;C: /Program Files/Subversion/bin/svnserve.exe”中,则命令应该写为”r;binpath= "/"C:/Program Files/Subversion/bin/svnserve.exe/"”(”r;”中的内容):

SC create svnservice binPath= "/"C:/Program Files/Subversion/bin/svnserve.exe/" --service --root /"E:/svnroot/repository/"" displayname= "SVNService" depend= Tcpip

  • 其次,sc对选项的格式还有要求,例如”r;depend= Tcpip”不能写为”r;depend = Tcpip”或”r;depend=Tcpip”,也就是”r;=”前不能有空格,而后面必须有空格

 

2.启动服务

在命令行窗口执行完这个命令之后,服务还没有启动,你可以继续运行"net start svnservice"启动这个服务

 

3.停止服务

然后使用"net stop svnservice"停止服务

 

4.删除服务

如果服务安装的有问题,你可能需要删除服务。要删除前面添加的服务,只需要运行"sc delete svnservice",

"svnservice"就是我们创建服务时使用的名字。

 

5.配置服务是自动启动

默认情况下安装的服务不会随Windows的启动而启动,为了使svn服务能够随Windows启动而启动,

需要修改一下"sc create"命令(首先要删除),增加"start= auto"选项:

 SC create svnservice binPath= "/"C:/Program Files/Subversion/bin/svnserve.exe/" --service --root /"E:/svnroot/repository/"" displayname= "SVNService" depend= Tcpip start= auto

当然你也可以使用图形化的工具修改服务的属性,你可以在”r;开始->运行...”中执行"services.msc",然后在界面中修改。

在vista下要以管理员的权限运行CMD, 否则会出现权限问题.

 

 

=================================在linux 10.117.100.130 上安装svn===============================================================

1、下载svn for linux 最新版           http://subversion.tigris.org

2、连接vpn并使用sshsecure client上传

3、使用cat /proc/version  查看系统是什么Linux,

结果显示是centos

4、查看磁盘使用情况

[root@localhost ~]# df

Filesystem           1K-blocks      Used Available Use% Mounted on

/dev/mapper/vgroot-root

                       6887724   1757136   4775056  27% /

/dev/mapper/vgehong-ehong                                                                            逻辑卷

                      20282620    176200  19059484   1% /usr/local/ehong

/dev/sda1               194442     14424    169979   8% /boot

tmpfs                  2022252         0   2022252   0% /dev/shm

 

5、解压缩并安装

  1. 解压:#: tar zxvf subversion-1.3.2.tar.gz

  2. 依次输入./configure , make , make install 进行编译安装完成。

  3. 开启SVN服务:svnserve -d

  4. 检测服务是否开启:netstat -ntlp如果看到3690的端口正常开放了,证明SVN启动了。

 

 

tar xfj subversion-1.4.3.tar.bz2

tar xfj subversion-deps-1.4.3.tar.bz2

# subversion-deps的文件也会解压到subversion-1.4.3目录中

cd subversion-1.4.3

rm -rf apr

rm -rf apr-util

ln -s /home/tmp/httpd-2.2.4/srclib/apr apr

ln -s /home/tmp/httpd-2.2.4/srclib/apr-util apr-util

./configure && make && make install

安装完成后,查看是否存在文件$APACHE_HOME/modules/mod_dav_svn.so(默认/usr/local/apache2/modules/mod_dav_svn.so)。另外,如果该机器上以前是装过旧版本的SVN,要把"/usr/local/lib/libsvn*"文件都删除。

 

 

正式使用前准备:

首先我们得建立一个SVN的项目,一般人都认为建立项目就只需要一个文件,在我第一次使用SVN之前都有这样的看法,SVN建立项目需要建立文件夹

  1. 建立项目命令:svnadmin create project_name project_name 为你的project名字,可以任意取。

建立完毕后,project_name是一个文件夹,进入文件夹,可以看到一个conf的文件夹。

    2.进入文件夹可以看到2个文件(如果没有passwd文件,可以用vi创建),编辑 svnserve.conf 把anon-access = read ,auth_access = write

还有password-db = passwd 的注释去掉,还有[general]的注释也要去掉。

vi passwd文件,如果是新文件,则输入:

[user]

your_name = your_password

这里设置的your_name是你的用户名,your_password是你的密码,这个是访问SVN必要的通行证。

好了,现在终于把准备功夫做完了,

 

下面可以正是使用了。

首先找到你的项目源代码文件夹,使用下面命令:

cd your project

in your project dircetory

use:svn co /home/project_name --username = your_name --password=your_password

 

好了,现在你可以在客户机上使用以下命令获得你想要的项目源代码文件

svn co svn://home/project_name --username=your_name --password = your_password

 

把增加的svn文件添加入svn库:

svn add /home/your_project/*.* --username=your_name --password = your_password

 

提交文件:

svn commit /home/your_project/*.* --username=your_name --password=your_password

 

更新文件:

svn update /home/your_project/*.* --username=your_name --password=your_password

当然你可以编辑一个脚本文件来一次完成所有的操作:

vi svnupdate.sh

#!/bin/sh

svn add /home/your_project/*.* --username=your_name --password = your_password

svn commit /home/your_project/*.* --username=your_name --password=your_password

svn update /home/your_project/*.* --username=your_name --password=your_password

chmod +x svnupdate.sh

Finish

 

 

=====================================svn库的导入导出============================================================================

svn提供了一个类似oracle export成dump文件的一个工具svnadmin dump,导出的文件为文本文件

 

//导出

1、首先进入库的相应目录

cd e:/svnroot

2、导出/java-source所有文件到

E:/svnroot>svnadmin dump ./java-source > java-dump

3、将java-dump上传到

 

//还原

$svnadmin load java-source < java-dump

 

ok成功导入。

 

 

停止subversion服务

ps &endash;aux | grep svnserve

kill -9 ID号

 

 

 

 

 

 

 

 

查看svn服务器版本

C:/Documents and Settings/server>svnadmin --version                        用svn --version效果一样

svnadmin,版本 1.5.6 (r36142)

   编译于 Mar  6 2009,14:54:47

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

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

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

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

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

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

 

 

[root@localhost ~]# svn --version

svn, version 1.6.11 (r934486)

   compiled Apr 20 2010, 00:24:22

Copyright (C) 2000-2009 CollabNet.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值