Ubuntu 下Subversion安装

来源:互联网 发布:网络销售的英文 编辑:程序博客网 时间:2024/04/28 12:13
SubVersion 这个文档是知道如何在 Ubuntu Linux 安装 SubVersion (SVN). 面对的读者是数量的Linux用户和系统管理员.

介绍

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

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

前提

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

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

文档的范围

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

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

安装

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

  $ sudo apt-get install subversion
$ sudo apt-get install libapache2-svn

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

服务配置

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

建立 SVN仓库

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

  $ svnadmin create /path/to/repo/project

访问方法

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

模式

访问方法

  file:///

direct repository access (on local disk)

  http://

Access via WebDAV protocol to SubVersion-aware Apache 2 web server

  https://

Same as http://, but with SSL encryption

svn://

Access via custom protocol to an svnserve server

svn+ssh://

Same as svn://, but through an SSH tunnel

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

直接仓库访问 (file://)

这个是所有访问方法中最简单的. 不需要任何运行的 SVN server 进程. 这个访问 SVN 的方法被使用在同一台机器. 语法如下:

  $ svn co file:///path/to/repo/project
or
$ svn co file://localhost/path/to/repo/project

注意: 请注意, 如果你不能说明 hostname, 你必须使用三个反斜杆 (///). 如果你说明 hostname, 你必须使用两个反斜杆 (//).

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

通过 WebDAV 协议访问 (http://)

通过 WebDAV 协议访问 SVN repository, 你必须配置你的 Apache 2 web server. 你必须增加下面的部分打破你的 /etc/apache2/apache2.conf 文件:

  <Location /svn>
DAV svn
SVNPath /path/to/repo
AuthType Basic
AuthName "Your repository name"
AuthUserFile /etc/subversion/passwd
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>

下一步, 你必须建立 /etc/subversion/passwd 文件. 这个文件包含了用户验证信息. 为了增加一条, 例如.. 为了增加一个用户, 你可以使用如下命令:

  htpasswd2 /etc/subversion/passwd user_name

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

  $ svn co http://hostname/project project --username user_name

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

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

通过 WebDAV 协议和 SSL 加密访问 (https://)

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

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

这一步假设你已经安装和配置了数字签名在你的 Apache 2 web server. 现在可以去访问 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 -- daemon mode
# --foreground -- run in foreground (useful for debugging)
# -r -- root of directory to serve

For more usage details, please refer,
$ svnserve --help

当你运行这个命令后, SVN 将来时监听缺省的端口 (3690). 访问这个项目仓库, 你必须运行如下命令:

  $ svn co svn://hostname/project project --username user_name

基于上面的配置, 它提示输入口令. 当验证通过, 它将从 SVN 仓库 checks out 出代码.

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

  $ cd project_dir
$ svn update

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

  $ svn co help

通过自定义协议和 SSL 加密来访问 (svn+ssh://)

和 svn:// 方法的配置和服务器的进程相同. 对于详细, 请阅读上面的章节. 这一步假设, 你已经通过了上一步并使用 svnserve 命令运行.

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

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

  $ svn co svn+ssh://hostname/path/to/repos/project project --username user_name

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

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

你也可以参阅 SVN 图书获得关于 svn+ssh:// 协议的更详细信息。

参考

  •   SVN Home page

  •   SVN Book

  •   Apache 2 Documentation

  •   Mod-SSL

  •   Apache-SSL

希望这个文档有用. 评论和反馈请使用 bhuvaneswaran at NOSPAM gmail dot com.

This How-to applies to: 所有版本.

原创粉丝点击