返回介绍

4.2 版本控制系统

发布于 2024-01-21 17:11:03 字数 3137 浏览 0 评论 0 收藏 0

在进行团队开发时,我们需要一个地方来集中管理和共享各成员的开发成果。另外,在团队开发的过程中,程序内难免混入 Bug,这就需要对开发成果进行历史管理,以便追踪并掌握 Bug 混入的时间点。

在这一点上,版本控制系统(Version Control System,VCS)能提供很大帮助。顾名思义,版本控制系统就是用来管理源码等内容的开发历史的。当今的版本控制系统主要有集中式的 Subversion 和分布式的 Mercurial、Git。本书选用的是 Mercurial。

Redmine 和 Mercurial 都是面向团队开发的工具,这里将学习如何把它们结合在一起使用。Mercurial 的安装与简单的用法请参考第 1 章,实用性用法请参考第 6 章。

4.2.1 Mercurial 与 Redmine 的联动

如果让版本控制系统和问题跟踪系统两个系统联动起来,可以明确源码的变更和问题之间的对应关系,让二者相得益彰。现在我们就来了解一下 Redmine 和 Mercurial 的联动方法。

如果各位的服务器上还没有安装 Mercurial,那么需要先安装 Mercurial,然后重启 Redmine(LIST 4.9)。

LIST 4.9 安装 Mercurial

$ sudo pip install mercurial
$ sudo service apache2 restart

以管理员身份登录 Redmine,设置版本控制系统。

在图 4.10 所示的配置界面选择“版本库”标签页,勾选“启用 SCM”中的相应系统然后保存。这样我们就可以使用选中的版本控制系统了。

图 4.10 Redmine 的版本库配置界面

4.2.2 用于生成版本库的插件

虽然实现版本控制系统的联动就可以了,但是我们还希望能直接从 Redmine 创建版本库,这样会更加方便。为此,我们还要安装 SCM Creator plugin6 并进行设置。

6 http://projects.andriylesyuk.com/projects/scm-creator

首先创建一个用于生成版本库的目录(LIST 4.10)。这里我们用的目录为 /var/lib/hg,然后更改它的所有权,让我们能从 Redmine 对它进行写入操作。

LIST 4.10 创建用于版本库的目录

$ sudo mkdir /var/lib/hg
$ sudo chown www-data:www-data /var/lib/hg

然后创建设置文件 /usr/share/redmine/config/scm.yml(LIST 4.11)。下例是最低限度的设置。关于设置项目的详细资料,请参考该插件的 Web 页面。

LIST 4.11 scm.yml

production:
  deny_delete: false
  auto_create: true
  force_repository: false
  max_repos: 0
  only_creator: true
  allow_add_local: false
  allow_pickup: false
  mercurial:
  path: /var/lib/hg
  hg: /usr/local/bin/hg

插件的安装流程如 LIST 4.12。需要先将下载好的插件解压到 Redmine 的 plugins 目录下,然后执行 rake 命令构建。

LIST 4.12 安装 SCM Creator plugin

$ sudo mkdir /usr/share/redmine/plugins
$ wget http://projects.andriylesyuk.com/attachments/download/563/redmine_scm-0.5.0b.tar.bz2
$ sudo tar xfj redmine_scm-0.5.0b.tar.bz2 -C /usr/share/redmine/plugins/
$ cd /usr/share/redmine/
$ sudo chown -R www-data:www-data plugins/redmine_scm/
$ sudo rake redmine:plugins:migrate RAILS_ENV=production
$ sudo service apache2 restart

重启 apache2 后,插件将被自动加载。我们可以在图 4.11 所示的配置界面里看到插件正常加载的信息。

图 4.11 Redmine 的插件配置界面

接下来新建一个项目。选择界面左上方的“项目”,然后点击“新建项目”进入新建项目界面(图 4.12)。要记得先指定 SCM(这里指定为 Mercurial)再创建项目。

图 4.12 新建项目界面

查看刚刚创建好的项目的配置界面,可以看到“版本库”标签页中已经生成了 Mercurial 的版本库(图 4.13)。

图 4.13 版本库配置界面

至此,Mercurial 与 Redmine 的联动就实现了。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文