- 引言
- 本书涉及的内容
- 第 1 部分 Python 开发入门
- 第 1 章 Python 入门
- 第 2 章 开发 Web 应用
- 第 3 章 Python 项目的结构与包的创建
- 第 4 章 面向团队开发的工具
- 第 5 章 项目管理与审查
- 第 6 章 用 Mercurial 管理源码
- 第 7 章 完备文档的基础
- 第 8 章 模块分割设计与单元测试
- 第 9 章 Python 封装及其运用
- 第 10 章 用 Jenkins 持续集成
- 第 11 章 环境搭建与部署的自动化
- 第 12 章 应用的性能改善
- 第 13 章 让测试为我们服务
- 第 14 章 轻松使用 Django
- 第 15 章 方便好用的 Python 模块
- 附录 A VirtualBox 的设置
- 附录 B OS(Ubuntu)的设置
4.2 版本控制系统
在进行团队开发时,我们需要一个地方来集中管理和共享各成员的开发成果。另外,在团队开发的过程中,程序内难免混入 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论