Lar*_*erg 17 git text-search todo git-commit
我想看到所有TODO评论,只有我写的并且存在于当前代码库中,这是git托管的.
到目前为止我所做的是打印我在完整的git历史记录中创建或修改的所有TODO注释:git log -p --author="My name" -S TODO | grep "\+.*TODO"
但是这个工具链列出了所有写过的TODO评论,甚至是那些我已经解决并因此从代码中再次删除的评论.
有没有一个工具可以逐行搜索当前的代码库,检查它是否包含"TODO",如果这行是由我创作然后打印这些行?
ara*_*aer 17
你可以结合git blamegrep.
像这样(不是最好的,但应该工作)
git grep -l TODO | xargs -n1 git blame | grep 'Your name' | grep TODO
Run Code Online (Sandbox Code Playgroud)
改进版本可能会将第一个grep找到的行号与git blame仅显示给定行的能力结合起来.
Lar*_*erg 13
我想添加aragaer和Kyle的解决方案:
git grep -l TODO | xargs -n1 git blame -f -n -w | grep "$(git config user.name)" | grep TODO | sed "s/.\{9\}//" | sed "s/(.*)[[:space:]]*//"
这打印:
Cpp/CoolClass.cpp 123 //TODO: Do we really need this? Cpp/AnotherClass.cpp 42 //TODO: Do we miss something? Java/MyListener.java 23 //TODO: Optimize
我发现用户名可以有空格,所以通过电子邮件地址过滤更容易。另外,@todo(小写)是我在文档块中添加注释的方式,因此我添加了“忽略小写/大写”标志。这是我的解决方案:
git grep -il TODO | xargs -n1 git blame -M -f -e | grep -i TODO | grep $(git config user.email)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4416 次 |
| 最近记录: |