我应该在源代码管理中保留todo列表吗?

时间:2009-03-12 13:20:34

标签: version-control

我在找出存储编程待办事项列表的最佳方法时遇到了一些麻烦。

我考虑以下事项:

  • 每个项目的源代码管理中的一个待办事项列表
  • 源代码管理中个人文件夹中的主要待办事项列表(包含常规任务)

你是怎么找到的?

你会建议什么?

编辑:

感谢您的建议。我使用错误跟踪系统(BugTracker.NET)来处理错误和涉及其他人请求的任务,以便他们可以看到状态。我在代码中使用了// TODO。

我还有很多关于该做什么的补充说明。您是否也建议将其放入错误跟踪器中(特别是如果无法将它们作为// TODO放入代码中)?

12 个答案:

答案 0 :(得分:14)

为什么不使用错误跟踪系统?

示例: Bugzilla Mantis Trac

和其他许多人......

答案 1 :(得分:5)

你应该在你的代码中保留你的待办事项。与错误跟踪程序相关联。然后你应该使用一个文档生成程序来捕获所有待办事项并将它们写入一个列表,其中包含指向代码相关部分的链接。

一个很好的例子是Doxygen。鉴于代码中的todo:

// TODO: fix potential non-assigment of var
int my_var;

Doxygen将能够提取此信息(您甚至可以设置任意注释的过滤器,如FIXME BUG LOOK_HERE等)和a)为特定的类/接口留下todo条目和b)编译一个列表整个项目的待办事项。

此外,您的待办事项和待办事项列表将受版本控制,并且可以从头开始轻松生成列表(即文档)。

所以,总结一下:Doxygen,scm系统(any将会这样做)和bugzilla的组合将立即启动并运行。

更新:查看从您的签到中的TODO创建Github问题的this git hook

关于在代码中是否使用TODO这一问题的一般说明是Good Thing(TM):使用工具的傻瓜仍然是个傻瓜。

答案 2 :(得分:4)

错误跟踪系统是开发的重要工具。

您还可以使用简单的基于网络的待办事项列表,例如RtM

最后,您还可以在代码中使用// TODO“书签”,因为IDE提供的功能可以轻松找到它们。

答案 3 :(得分:2)

我在编码时通常会想到TODO项目。通常,为了不打断我的思维流程,我会快速投入// TODO:评论,快速描述我的想法,然后继续编码。

重要的是不要失去需要做某事的事实!

稍后,我将返回并在我的问题跟踪软件中创建一张票..您使用的是问题跟踪软件,不是吗? :)之后,可以从代码中删除TODO。

尝试使用一致的注释标记,以便以后轻松地进行grep(文本搜索)。

许多开发环境识别特定标签并协助查找和管理它们。

不要害怕将它们放入代码中,并尽量不要保留单个TODO的两个不同副本。

答案 4 :(得分:1)

答案 5 :(得分:1)

如果您使用TFS,则可以使用工作项来表示待办事项列表项。它们可以分配给人员,与签到相关联,附加详细信息等。

答案 6 :(得分:1)

如果您没有问题跟踪系统,请单击“是”。确保它是纯文本格式(换行符分隔的问题),这样每个人都可以同时编辑 - 提交 - 合并文件。

否则只需获得问题跟踪器。

答案 7 :(得分:0)

您应该保留在源代码管理中修改的任何文本。这排除了生成的代码(除非你有一个糟糕的生成器,不能作为构建过程的一部分运行)和所有二进制文件,除了二进制依赖项之外。

答案 8 :(得分:0)

我使用OnTime2008,它有一个免费的单一开发人员(最多5个客户端)版本,用于跟踪我的开发项目。 Bugzilla将是另一个好方法。不确定我是否想跟踪我的'todo'列表中的更改,因为我永远不需要回溯这些更改,我希望记录所有活动,疣和所有!

答案 9 :(得分:0)

  1. 每个项目的源代码管理中的一个待办事项列表。只需稍加注意,这就成为您的Scrum burndown数据。一点点剪切和粘贴就会创建一个供管理人员使用的图表。

  2. 代码中的明确TODO注释 - 这些应该匹配待办事项列表。定期手动同步和优先排序很重要。

  3. Bugzilla用于跟踪错误(与前瞻性的待办事项不同)

答案 10 :(得分:0)

我爱Basecamp HQ

你可以从那里控制很多关于项目管理的事情。

我会推荐该网站。

答案 11 :(得分:0)

在Eclipse(Java)中,有一个非常好的视图可以让你管理你的TODOS:

  • 查看所有这些项目,无论他们在哪个(开放)项目
  • 对他们有三个优先级
  • 使用多个关键字,对您的团队来说意味着不同的事情(例如,FIXME可能是紧急的,具有高优先级,EXTEND可能是未来可能的低优先级扩展等等。)