Chinaunix首页 | 论坛 | 博客
  • 博客访问: 658356
  • 博文数量: 780
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 4885
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-22 16:14
文章分类

全部博文(780)

文章存档

2008年(780)

我的朋友

分类: LINUX

2008-08-22 16:21:06


SubVersion这个文档是知道如何在UbuntuLinux安装SubVersion(SVN).面对的读者是数量的Linux用户和系统管理员.

介绍

如果你刚刚接触SubVersion,这个章节提供了一个关于SubVersion的快速介绍.

SubVersion是一个开源的版本控制系统.使用SubVersion,你可以记录源代码文件和文档的历史.它一直管理着文件和目录.一个文件树被添加到一个核心仓库.仓库就好像是一个通常的文件服务器,除了它记录每一次文件和目录的变化.

前提

这里假设你知道如何运行Linux命令,编辑文件,在UbuntuLinux系统启动/停止服务.它还假设UbuntuLinux正在运行,你可以使用Sudo(RootSudo)和你想使用SubVersion软件.

假设你需要使用所有的访问方法来访问SVN仓库.同时假设你有internet连接和你已经配置好了/etc/apt/sources.list.

文档的范围

为了使用HTTP协议来访问SVN仓库,你必须安装和配置web服务.Apache2被证实可以于SVN一起工作.关于如何安装Apache2Webserver超过了这篇文章的范围.为SVN配置Apache2Webserver包含在这篇文章里.

为了使用HTTP协议来访问SVN仓库,你必须在你的Apache2webserver安装和配置数字证书.安装和配置数字证书超过了这篇文章的范围.你可以去查阅其它适当的文档.

安装

SubVersion已经在main仓库了.因此,你可以运行如下命令安装SubVersion:

$sudoapt-getinstallsubversion$sudoapt-getinstalllibapache2-svn
如果报告错误,请下载包安装他们.如果报告任何其它内容,请解决他们.如果不能解决错误,请求助那些包的邮件列表.

服务配置

这一步假设你已经在你的系统安装好了上述的包.这段将如何SVN仓库和访问项目.

建立SVN仓库
SVN仓库可以使用如下命令建立:

$svnadmincreate/path/to/repo/project
访问方法

SubVersion仓库在可以通过多种不同的方法来访问(checkout),本地硬盘或不同的网络协议.一个仓库位置,无论如何都一直是一个URL.这个表说明了可以用来访问的不同的URL类型.

模式

访问方法

file:///
directrepositoryaccess(onlocaldisk)

http://
AccessviaWebDAVprotocoltoSubVersion-awareApache2webserver

https://
Sameas

svn://
Accessviacustomprotocoltoansvnserveserver

svn ssh://
Sameassvn://,butthroughanSSHtunnel


在这一结,我们将看到如何为所有访问方法来配置SVN.这里,我们隐藏了基本的知识.对于更详细的使用明细,你可以去查阅svnbook.

直接仓库访问(file://)
这个是所有访问方法中最简单的.不需要任何运行的SVNserver进程.这个访问SVN的方法被使用在同一台机器.语法如下:

$svncofile:///path/to/repo/projector$svncofile://localhost/path/to/repo/project
注意:请注意,如果你不能说明hostname,你必须使用三个反斜杆(///).如果你说明hostname,你必须使用两个反斜杆(//).

仓库的权限依赖于文件系统的权限.如果用户有读/写权限,他就可以checkout/commit变化给仓库.

通过WebDAV协议访问(http://)
通过WebDAV协议访问SVNrepository,你必须配置你的Apache2webserver.你必须增加下面的部分打破你的/etc/apache2/apache2.conf文件:

DAVsvnSVNPath/path/to/repoAuthTypeBasicAuthName"Yourrepositoryname"AuthUserFile/etc/subversion/passwdRequirevalid-user
下一步,你必须建立/etc/subversion/passwd文件.这个文件包含了用户验证信息.为了增加一条,例如..为了增加一个用户,你可以使用如下命令:

htpasswd2/etc/subversion/passwduser_name
它将提示你输出密码,当你输入了密码,用户就增加了.现在,你可以使用如何命令来访问仓库:

$svnco
它将提示你输入密码.你必须输入一个你使用htpasswd2命令配置的密码.当验证通过,项目被checkedout.

警告:口令作为普通文本被传输.如果你担心你的密码外泄,你可以考虑使用SSL加密.对于这个,请看如下章节.

通过WebDAV协议和SSL加密访问(https://)
通过WebDAV协议和SSL加密来访问SVN仓库(https://)和http://类似,出了你必须安装和配置数字签名在你的Apache2webserver.

你可以安装一个数字签名证书通过签名权威公司比如Verisign.alternatively,你可以安装你直接的签名证书.

这一步假设你已经安装和配置了数字签名在你的Apache2webserver.现在可以去访问SVN仓库,请访问上面的章节!耶,访问方法是一致的出了协议.你必须使用https://来访问SVN仓库.

通过定制的协议访问(svn://)
一旦SVN仓库被建立,你可以配置访问协议.你可以编辑/path/to/repos/project/conf/svnserve.conf文件来配置访问控制.

例如,为了设置权限你可以取消注解在配置文件中的如下行:

#[general]#password-db=passwd
取消注解下面的行以后,你可以提供一个用户列表在passwd文件.因此,在同样的目录编辑passwd文件和增加一个新用户.语法如下:

username=password
对于详细说明,请查询文件.

现在,可以通过svn://自定义协议来访问SVN在同一台机器或不同机器,你可以运行svnserver使用svnserve命令.语法如下:

$svnserve-d--foreground-r/path/to/repo#-d--daemonmode#--foreground--runinforeground(usefulfordebugging)#-r--rootofdirectorytoserveFormoreusagedetails,pleaserefer,$svnserve--help
当你运行这个命令后,SVN将来时监听缺省的端口(3690).访问这个项目仓库,你必须运行如下命令:

$svncosvn://hostname/projectproject--usernameuser_name
基于上面的配置,它提示输入口令.当验证通过,它将从SVN仓库checksout出代码.

使用本地的文件来同比项目仓库,你可以运行updatesub-command.语法如下:

$cdproject_dir$svnupdate
对于使用SVNsub-command的详细资料,你可以参考手册.例如,学习更多关于co(checkout)命令,运行:

$svncohelp
通过自定义协议和SSL加密来访问(svn ssh://)
和svn://方法的配置和服务器的进程相同.对于详细,请阅读上面的章节.这一步假设,你已经通过了上一步并使用svnserve命令运行.

它还假设sshserver正在运行在这台机器上并允许连接.为了证实,请尝试使用ssh登录机器.如果你可以登录,那么所有的事都是正确的.如果你不能,在更远的尝试以前请处理它.

svn ssh://协议是使用SSL加密来访问SVN仓库.如你所知的,数据传输被加密.为了访问SVN仓库,你必须运行下面的命令:

$svncosvn ssh://hostname/path/to/repos/projectproject--usernameuser_name
提示:你使用这种方法来访问SVN仓库时,必须使用完整路径(/path/to/repos/project)来访问.

基于服务器的配置,它提示输入密码.你必须输入你通过ssh登录的密码.当验证通过,它将从SVN仓库checksout出代码.

你也可以参阅SVN图书获得关于svn ssh://协议的更详细信息。 下载本文示例代码
阅读(363) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~