日志标签 项目管理

Redmine 中的 Subversion 版本库设置
11月1日
Redmine 管理员手册关于 svn 版本库设置写的不是很详细,在这里补充一下。
用 Redmine 创建一个项目后,进入项目的设置界面,访问“版本库”标签,可以为项目建立匹配的版本库设置。
如果是 Subversion,在下拉框选择 Subversion,其它设置参考下面的示意图:
注意:
- 在 URL 处使用 file:// 协议。一般我们把版本库部署在 /opt/svn/svnroot 下,所以 URL 的开头一般是:
file:///opt/svn/svnroot/… (注意 file: 后面有三个斜线,分别是协议要求的两个斜线,和一个代表根路径的斜线) - URL一般直接指向版本库的根路径。如果多个项目共用同一个版本库,也可以使用 版本库下的某个路径,如:
file:///opt/svn/svnroot/myproject/path/to/project1 - 因为使用 file:// 本地协议,因此不必输入认证的登录名和密码。
- 最后两个字段用于版本库浏览时的授权。
- 其中授权文件,我们习惯的部署位置是:
/opt/svn/conf/svn.access - 模组名就是版本库的名称,例如 myproject 。
- 如果授权文件和模组不填写,开发者都能够通过 redmine 查看源代码。
- 如果授权文件写错位置(找不到),会导致任何人都无法通过 redmine 查看代码。

Redmine 邮件发送问题的诊断
9月17日
鉴于部分 redmine 爱好者因邮件发送问题很纠结,不知道为何他/她的 redmien 邮件时灵时不灵,回帖的地方太小,因此专门辟此博文。
(说明:下文中出现的 redmine 配置文件路径是 群英汇 Redmine 部署的标准路径,个人配置的 redmine 请勿对号入座 :-D )
Redmine Email 配置
配置文件为 /opt/redmine/web/config/email.yml 。我们内网的 redmine 的 email.yml 配置为:
production:
delivery_method: :smtp
smtp_settings:
address: localhost
port: 25
domain: bj.ossxp.com
# authentication: :login
# user_name: "redmine@example.net"
# password: "redmine"可以看出:
- 我们 redmine 服务器本身架设了一个 SMTP 服务器
这样就避免了使用其他 SMTP,由于授权、网络联通性、邮件发送频率限制、内容过滤等各种原因造成的邮件发送失败的问题 - domain 实际上是 SMTP 连接时 HELO 命令的参数。
一般情况,无所谓。但有的 SMTP 会作 DNS 查询,若 SMTP 客户端 IP 和该域名解析的不一致,可能会倒在这里 O:-) - 后面的三条认证相关语句注释掉,因 localhost 自身允许 open relay,故此没有必要设置认证
实际上,Redmine 的邮件发送框架采用 Rails 自身的 actionmailer,还有一些重量级配置
- logger: 是否对邮件处理产生日志?
Redmine 缺省 production(生产平台)的 environment 设置中, logger 被设置为 nil,不产生和邮件有关的日志 - raise_delivery_errors: 是否因为邮件发送错误,抛出异常?
如果设置为 true,则遇到邮件发送失败,页面显示异常,同时在 log 中也记录异常详细信息
直接在管理员界面测试邮件配置
看到“发送测试邮件”的链接了么?
Redmine 的日志文件
日志文件的位置在 /opt/redmine/log 目录下。对于生产平台,日志文件是 /opt/redmine/log/production.log。
一个 Linux 下跟踪显示 log 文件的小窍门:
$ tail -f /opt/redmine/log/production.log
产生更多的邮件相关日志
对于运行在 production 模式的 Redmine,日志很少,是因为配置文件 /opt/redmine/web/config/environments/production.rb 中关闭了 email 相关 log 等。
配置文件 /opt/redmine/web/config/environments/production.rb 和日志相关设置有:
- config.log_level = :error
日志级别。如果设置为 :info,则有更多日志。如果设置为 :debug,你会看到海量的日志。 - config.action_mailer.raise_delivery_errors = false
是否因为邮件发送错误抛出异常。设置为 true,你不会错过任何邮件发送失败了,不过副作用么… ;-) - config.action_mailer.logger = nil
不记录邮件相关的日志。注释掉这一行,就可以在日志文件中看到更多邮件相关日志了。
修改日志别忘了重启 Apache。注意:日志级别调整,会影响 redmine 的性能,在诊断结束后请复原。

Redmine 计划任务增加“未来”的选项
8月29日
群英汇开发的 Redmine 计划任务插件为我的工作带来极大的便利,让我的工作更有计划性。
最近,我们公司开发人员除了对“计划任务插件”进行代码重构并解决了“星期日”Bug外,还采纳了我的一个建议,增设了一个“未来”选项。即问题的计划日期,除了今天/明天/后天/本周/下周/下下周等之外,增加一个“未来”选项。
以程序员的观点,增加“未来”选项可能没有必要,但是以项目经理/项目负责人看来,却非常需要。
- 因为项目负责人思考的问题除了一些短期目标之外,还包括一些长远的目标,甚至只是一些暂时看起来荒谬的想法。
- 如果这些长远目标或者“荒谬”的想法,不能加入到合适的计划任务,就会在“None组”(未列入计划的事件)中堆积
- 堆积如山的“None分组”,会导致新创建的问题,不能立即被发现造成拖延。
最终实现的“未来”,让我的“荒谬”的点子有家可归了。
群英汇redmine增强版ossxp-3.0成功上线
7月20日
经过三个多月努力,群英汇Redmine 增强版ossxp-3.0终于成功上线。
下面介绍一下 ossxp-3.0 版本的新特征:
- 上游版本库升级到Redmine官方的1.0.0版本. Redmine 1.0.0 引入的新特征:
- 支持子任务(subtask)
当发现起初的任务划分过于粗粒度,可以将起初的任务再划分成若干个子任务,每个子任务指派给某个成员。这样从另一方面实现了一个父任务指派给多人。 - 支持通过邮件提交问题时设置指派者和问题(issue)的起始日期
- 支持从POP3服务器读取邮件
redmine-1.0.0之前仅支持从IMAP服务器读取邮件。
关于redmine通过邮件提交问题,具体可以参考 http://redmine.ossxp.com/redmine/documents/4 - 增强了wiki功能
wiki底层库升级,使redmine的wiki更加稳定、健壮
- 支持子任务(subtask)
Redmine关于敏捷Scrum的插件
7月19日
这几年来,敏捷开发风靡全球,尤其是Scrum这股风。那么Redmine作为优秀的项目管理工具,是否支持Scrum流程呢?Redmine Sprints 正是在这种呼吁中应运而生。
借助于Redmine Sprints 插件,可以有效地将Scrum流程包含进Redmine的管理流程:
- 产品负责人(Product Owner)可以登录Redmine,在Backlog页面向产品Backlog中添加用户故事(User Story),并根据功能的重要程度,设置适当的优先级。
- 在Scrum计划会议上,登录Redmine,进入Backlog页面,根据User Story的优先级来确定即将开始的Sprint要完成哪些User Story,并将这些User Story挪到这个Sprint的Backlog中。
- Scrum团队成员可以登录Redmine,进入任务板页面,根据具体情况,将Sprint中的User Story划分成一个个小的功能模块(即任务),各个成员根据自己的能力来领取这些小任务。
- 接下来Scrum团队的成员就可以集中精力完成自己领取的任务了。并且应该每天都要在任务面板里更新自己的任务状态,同时燃烧曲线(BurnDown)会自动根据任务的完成情况发生变化,从而真实反映项目的进展情况。
具体细节请参考 http://www.ossxp.com/doc/redmine-plugins/redmine-sprints/
redmine版本库统计 SVG 柱状图在IE中不能显示
7月2日
由于我们办公完全在Linux下,因此 redmine 的前端自然就是 Firefox 了。在Firefox下,redmine的版本库统计SVG柱状图显示(选择一个项目,点击版本库菜单,然后点击右上角统计链接)是完全正常的。但昨天一网友(也是老乡)告诉我,他们用 IE 看不到 SVG 柱状图。于是今天上午我研究了一下,终于找到问题的原因,并hack了。
redmine 用户导入插件
6月8日
redmine管理员有时可能需要批量导入用户。如果你选择LDAP认证方式,那么可以使用群英汇为redmine拓展的从LDAP同步账号的功能。但如果没有LDAP服务器,仅使用数据库存储账号信息,难道就只能一个一个创建用户了吗?
答案当然不是,群英汇 redmine-user-import 就是为解决这样的问题而开发的。该该插件允许系统管理员通过导入csv格式的文件,从而批量导入用户。
更多关于此插件的信息可以参考用户手册 http://www.ossxp.com/doc/redmine-plugins/redmine-user-import/user_manual/user_manual.html
redmine 问题导入插件
6月8日
在使用redmine的过程中可能会遇到以下几种情况:
- 有一些问题是固定的,多个项目中都需要用到这些问题,新建一个项目后,都需要手动添加这些固定问题,即繁琐又浪费时间。
- 经常需要导入其他缺陷跟踪系统的问题列表
- 大型项目异地开发可能需要将总部redmine中的一些问题导出,然后导入到异地团队使用的redmine中(这两个redmine没有部署在同一台服务器上)。
对于第一个问题,如果你的redmine是0.9以后的版本,可以通过 项目复制 功能,将原项目的问题复制到新项目中去。但这个复制是将原项目的所有问题都复制到新项目中,显然那些非固定问题也被复制了,这就需要额外手动删除这些非固定问题,大量时间浪费在删除操作上。
群英汇 redmine-issue-import 插件可以完美地解决上面的问题,它可以将redmine系统导出的问题(csv格式)或者手动创建的csv文件,直接导入到redmine项目中。
更多关于此插件的信息可参考用户文档 redmine-issue-import: user_manual
redmine同步变更集属性插件
6月7日
上个星期有客户反映他们在提交代码说明时总是忘记使用使用引用关键字(refs, references等)或者关闭问题关键字(fixes, closes等),导致代码提交不能有效跟问题建立关联,关闭问题状态。虽然版本库(如SVN)提供了修改提交日志的功能,但redmine对于已经自动获取的变更集是不能再重新获取的,除非在版本库配置处删除再重新导入。显然,对于仅仅一次提交的失误,这样做代价似乎太大了。
因此为了更好地满足客户的需求,我花了一星期时间写了一个同步变更集属性(如committer、date、commit log)的插件 redmine-sync-revprops。该插件是基于redmine 0.9 开发的,无须任何数据迁移操作,只需将该插件放在vendor/plugins目录下,重启服务器就可以使用。
具体的使用手册可以参考 http://www.ossxp.com/doc/redmine-plugins/redmine-sync-revprops/user_manual/user_manual.html






最新评论