理性Commit Log 倡议

1. 提交理性CommitLog

为杜绝 草率记录的Commit Log ,更加高效的追踪程序错误发布此 倡议, 建议所有使用SVN服务的同学们共同遵守!

1.1. 要求

检入注释必须准确描述本次修改的目的

  • 例如:

    “修正了foo中的一处内存泄漏问题”
    
    “新增了bar功能”
    
    “保存到目前为止的工作成果,其中包含:
     1. 修正了foo中的内存泄露问题
     2. 改善了bar功能的一个小问题,该问题可能导致XSS代码注入尚未修正的已知问题:
     3. 通过blahblah可以绕过权限检查”
    

检入注释符合下列条件之一,均为不合格:

  1. 未能描述本次检入所涉及的全部文件的
  2. 检入注释与实际修改内容不符的,包括但不必限于空串、无意义字串等
  3. 表述不清的。例如:“修改了foo函数”(修改了什么?)

更进一步的:

  1. 除了来自第三方供应商的没有源代码的软件之外,不允许在SVN里面以任何理由检入由我们持有源代码的代码所编译出来的二进制文件
  2. 开发工程师能够说清楚自己的源代码目录中新加入的每一个文件都是干什么用的 3 开发工程师能够说清楚自己上线的任何产品,自上次上线的RELEASE TAG之后(或RATIONALIZE TAG之后,取两者较晚的一个)的所有更改。如果在SVN commit时没有说明,运维工程师/CMgt 有权拒绝上线。

1.2. 监察

CMgt 负责 对非法检入 的监察!

CMgt对全部SVN变动进行抽查,凡是CMgt看不懂的,认为是无意义注释的,都以非法检入处罚

1.3. 处罚

  1. 一但发现是非法检入,CMgt有权强行回退此次检入
  2. 一但发现是非法检入,CMgt有权拒绝相关产品的上线(直到检入者修改/补全所有变更的注释)

处罚造成的损失由检入者承担,产品工程师没有任何责任

1.4. 指导

我们鼓励全体开发人员遵循以下SVN操作:

0. 工作之前,恰当的检出属于自己的代码(co)
1. 检入之前,必须重新同步本地代码(update)
2. 检入之前,后检入的人有责任解决合并冲突(ci)
3. 若无合适的理由(例:改善可靠性/可读性等)不得随意回退别人做过的修改

有关反悔:"如果意识到注释不清,如何主动改正?"

参见

SVN日常操作小技巧

2. 反馈