9

我正在寻找一种解决方案,在提交消息中标记变更集。

对我来说,“标签”类似于:

  • 代码清理
  • 用户可见的变化
  • 修改数据库结构(ALTER TABLE)
  • 文件变更

到目前为止,我使用的是 SVN,但想切换到 git。如果有标准,trac、redmine 等很多工具都可以使用它。

我想让它回答这样的问题:

  • 如果我更新系统,客户可以看到哪些更改,或者只是维护更新?
  • 两个版本之间的数据库架构是否发生了变化?

背景:

到目前为止,我使用 unison 在 DEV、TEST 和 PROD 系统之间进行同步。但是 unison 对版本管理(目前是 SVN)一无所知。我想切换到git。我想快点看看,有什么变化。

示例:我想查看 TEST 和 PROD 之间的变化。我不想看到源代码更改,而是提交消息。但有时最多有 100 个提交。在这里,我想要一个过滤器,以排除不重要的更改。

4

3 回答 3

11

我喜欢使用以下标签:

ADD adding new feature
FIX a bug
DOC documentation only
REF refactoring that doesn't include any changes in features 
FMT formatting only (spacing...)
MAK repository related changes (e.g., changes in the ignore list)
TEST related to test code only.

此标记始终是提交消息中的第一件事,然后是简短描述和/或问题跟踪系统中的问题 ID(如果存在)。

我将这些标签与 svn 和 git 一起使用,到目前为止发现它们非常方便。

回答您的编辑:这就是我喜欢那些提交标签的原因。如果提交改变了行为,它会立即可见。如果您的数据库方案定期更改,或者这些更改对您来说非常重要,您可以为此引入一个标签。

我还喜欢在适当的地方将这些标签组合在一个提交消息中。例如,“测试 foo 的测试文档设置”。

使用数据库的附加 DB 标签,您可以轻松跟踪与数据库相关的更改。

于 2012-01-05T11:07:15.420 回答
5

大多数时候我使用 Typo3 的标签系统:http://wiki.typo3.org/CommitMessage_Format_(Git)

它在提交消息中使用标签,如下所示:[TAG] Short message 当然,我总是弹出问题编号以进行问题跟踪。我们正在使用 JIRA,所以它会变成这样:[TAG] JIRA-123 Short message

Typo3 标签:

可能的标签是:

  • [功能]:一个新功能(也有一些小的添加)。很可能它将是一个附加功能,但也可能会被删除。这只能发生在 v4 的“master”分支中,因为旧分支中不允许有新功能。必须与相应的发布经理逐案讨论对此的例外情况。
  • [BUGFIX]:一个错误的修复。
  • [任务]:上述类别未涵盖的任何内容,例如编码风格清理。
  • [API]:API 发生了变化,方法或类被添加或删除;方法签名或返回类型已更改。这仅指 TYPO3 的公共 API。

此外,在某些情况下可能会添加其他标志:

  • [!!!]:重大变化。在这个补丁之后,一些东西的工作方式与以前不同,用户/管理员/扩展开发人员将不得不改变一些东西。应该只发生在“master”上。
  • [WIP]:正在进行中。一旦更改的最终版本可用,此标志将被删除。标记为 WIP 的更改永远不会合并。
  • [安全]:可视化更改修复了安全问题。此标签由安全团队使用,如果您发现安全问题,请务必先与安全团队联系!

示例主题描述:

  • [BUGFIX] 在 tslib_fe 中抛出 HttpStatusExceptions
  • [BUGFIX][SECURITY] 准备好的语句中的 SQL 注入漏洞
  • [FEATURE][CONF] 添加选项以隐藏列表模式中的 BE 搜索框
  • [!!!][FEATURE] 将高级前端编辑移至 TER
  • [!!!][TASK] 移除 t3lib_sqlengine
  • [!!!][API] 从 t3lib_userAuth 中删除不推荐使用的方法 redirect()
  • [API] 为 HTTP 状态异常创建异常层次结构
于 2015-02-23T14:25:11.373 回答
1

我更喜欢在我的问题跟踪器中为每个更改集分配一个问题。使用 jira 等已知问题跟踪器,可以选择在更改集中解决的问题。选择问题后,问题描述会自动放置在更改集的消息中。他们可以在未来跟进,也可以在您的问题跟踪器中报告。

于 2012-01-05T21:01:22.220 回答