在添加的行中搜索 TODO 并将它们显示为 Windows 上 TortoiseGit 中的默认提交消息

Search for TODO in added lines and show them as default commit message in TortoiseGit on Windows

我在 Windows 上使用 TortoiseGit。每次我开始新的提交时,都会发生以下情况:

  1. 搜索包含“TODO”的添加或修改的行
  2. 将这些行添加到提交消息中(作为警告)
  3. 显示带有准备好的提交消息的提交对话框

我该怎么做?

可以使用 TortoiseGit hooks (not to be confused with git hooks):

  1. 使用以下行创建一个批处理文件(只需复制并粘贴):

    git diff --color=always | findstr "[32m+[m[32m" | findstr /c:" TODO" >> %2
    
  2. 在 TortoiseGit 设置中转到 Hook Scripts

  3. Add
  4. 检查Enabled
  5. 选择这个钩子应该工作的路径(* 所有路径)
  6. 将批处理脚本的路径放在 Command Line To Execute 框中。
  7. Ok并关闭设置。
  8. 关闭并重新打开所有其他 TortoiseGit windows 以确保挂钩已设置。

批处理文件有什么作用?
git diff --color=always 以漂亮的颜色显示所有更改。
除了 + 之外,我们还使用这些颜色来识别使用第一个 findstr 命令添加的行。
第二个 findstr 命令查找“ TODO”。
/c: 参数告诉 findstr 将 space 解释为搜索模式的一部分。

我按照上面 @Tim Pohlmann 的回答,最终将批处理脚本修改为:

git diff | findstr "^+// TODO:" > %2

我进行此更改是因为原始命令是在 TortoiseGit 提交对话框中打印颜色说明符。

此外,我必须将挂钩类型指定为“开始提交挂钩”,并在“配置挂钩脚本”对话框中选中标记为“等待脚本完成”的框。

为了进一步清楚,%2 将命令的输出通过管道传输到 TortoiseGit 的提交对话框。

我查看了添加行号,但是 git diff 命令不支持为每个 this post 添加行号。一个足够简单的解决方案是在我的 TODO 中更具描述性:)