4

我想知道是否有任何软件可以将票务系统(或错误跟踪)与 SVN 集成,但以特定方式。我想禁止任何没有票证(或错误 ID)的代码更改。

例如:

  1. 每个开发人员都拥有 SVN 的只读权限——他可以更新源,但不能提交。
  2. 每个提交必须包含错误/票证 ID
  3. 即使对于优化任务,开发人员也必须为自己创建票证,然后实现一些东西

我知道有一些像 Mylyn 这样的工具可以帮助票务系统/SVN 集成,但开发人员总是可以提交源代码。

我没有任何票务系统环境(我可以使用 Trac 以及 BugZilla 或任何其他环境),但必须使用 SVN 作为代码存储库。

您对如何以这种方式集成这些服务有任何想法吗?

4

3 回答 3

3

我最近一直在使用 TFS。它有能力建立一个类似的工作流程——你必须创建“工作项”,你可以将错误附加到这些工作项上,你可以提交更改。如果不先创建错误,不先创建工作项,就不可能提交。

它让我发疯,我改变了设置,因为我的工作流程是这样的:

  • 愉快地编辑代码以修复错误。
  • 发现另一个不相关的错误。
  • 将代码更改提交到第一个错误。
  • 停止流程并启动工作项编辑器。
  • 找出 VS2010 可怕的工作项 UI 并创建一个新的工作项。
  • 找出 VS2010 可怕的错误跟踪器并创建一个新错误。
  • 返回代码。
  • 找出第二个错误在哪里。
  • 修复第二个错误。
  • 返回处理原始错误。

实际上,我的工作流程更像这样:

  • 愉快地编辑代码以修复错误。
  • 发现另一个不相关的错误。
  • 想一想,“修复那行代码将花费我一个小时的时间来摆弄迟钝的错误跟踪器。去死吧。”。
  • 继续处理原始错误。

总体效果是,我本可以立即修复的错误完全保留在系统中,因为我不会将时间浪费在荒谬的官僚错误报告系统上。对您来说更重要的是——快乐、高效的开发人员,还是从 SVN 中提取的令人印象深刻的报告?

于 2011-01-04T14:56:55.550 回答
3

对于这种策略,您必须编写一个 Hook 脚本来检查日志消息中是否有票证 ID,当然还要检查票证 ID 是否属于适当的项目。此外,您可以使用诸如Redmine 之类的东西作为票务系统。

于 2011-01-04T16:02:14.707 回答
0

如果你真的想要,你可以看看gurtle,一个允许用户调出 bugz 列表的 Tortoise 插件。按照该模板,您可以提供一种快速轻松地创建案例/问题(如果没有案例/问题)的方法。

除了我不得不说的形式之外,我认为你的目标是错误的并且适得其反。一些善意的流程/政策有时听起来不错,但在实践中最终成为一场噩梦,浪费时间和资源。这是浪费时间和糟糕流程的一个很好的例子。

于 2011-01-04T15:13:18.203 回答