2012-11-21 19 views
1

我们的一些工程师发现Rally-Subversion连接器在提交消息中找不到工件,例如,如果它们后面跟冒号(例如DE2222 :)Rally Subversion连接器在寻找工件时不健壮

我看了看连接器3.7的代码,并且发现他们首先拆分成消息的话,但分裂像这样做:

words = message.gsub(/(\.|,|;)/, ' ').split(' ') 

是否有任何理由,这将不会是这样做:

words = message.split(/\W+/) 

这看起来好像会更强大,而且我很难考虑一个缺点。

任何原因,我们不应该做这个改变?

如果不是,这个更新是否也可以在下一个版本的连接器中进行?

回答

1

由于SCM连接器源代码是开放的,如果您发现它更有效,那么确实没有理由不应该更改提交消息工件“检测”正则表达式。作为单挑,Rally的新一代SCM连接器(我们称它们为版本控制系统连接器的“VCS”连接器)将不再使用提交后挂钩,而是以预定间隔运行并会收集来自SVN日志的提交事件。这些收集的事件将作为变更集发布到Rally。

新的VCS连接器不会解析提交消息的日志以转换为工件状态更改 - 因此,最终实现此类功能最终需要长期运行的连接器代码的客户扩展。

+0

感谢您提供的信息。你偶然看一下msgripper.rb中的代码并确认这个改变不会破坏任何东西吗?我不知道红宝石,所以我一直在寻找确认我没有破坏任何东西...... – kimon

+0

我测试了你的确切变化,即'words = message.gsub(/(\。|,|;)/,'' )在SVN连接器3.7的测试实例中的msgripper.rb中的.split('')' - >'words = message.split(/ \ W + /)',并确认它仍然会提交一条提交消息,如“ DE1修正“并将提交正确映射到拉力变化集。所以它不会破坏任何东西。但是,我承认并没有在RegEx中彻底测试您的调整效果。 I.E.在我的测试中,'/ \ W + /'仍然没有包含冒号,逗号等分隔符。 – 2012-11-25 00:46:52