现在的位置: 首页 > 综合 > 正文

SubVersion ubuntu

2013年04月14日 ⁄ 综合 ⁄ 共 3883字 ⁄ 字号 评论关闭
 

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:// 协议的更详细信息。

参考

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

 

 

注:以上内容来自网络,本人不承担任何连带责任
文章转自:http://www.80x86.cn/article.asp?id=575

抱歉!评论已关闭.