24

git 管理されている現在のコード ベースに存在する、私だけが書いた TODO コメントをすべて表示したいと考えています。

これまでのところ、完全な git 履歴の中で作成または変更したすべての TODO コメントを出力しています。git log -p --author="My name" -S TODO | grep "\+.*TODO"

しかし、このツール チェーンには、これまでに作成されたすべての TODO コメントが一覧表示されます。これには、既に解決済みでコードから再度削除されたものも含まれます。

現在のコードベースを行ごとに検索し、「TODO」が含まれているかどうかを確認し、この行が私が作成したものであるかどうかを確認できる適切なツールチェーンは何ですか?

4

5 に答える 5

17

aragaerKyleのソリューションを追加したい:

  • grep config を使用して名前を取得します
  • TODOコメントのファイル名と行番号を表示する
  • コミット SHA、作成者の名前、およびコミットのタイムスタンプを削除する
git grep -l TODO | xargs -n1 git のせい -f -n -w | grep "$(git config user.name)" | grep TODO | sed "s/.\{9\}//" | sed "s/(.*)[[:スペース:]]*//"

これは以下を出力します:

Cpp/CoolClass.cpp 123 //TODO: これは本当に必要ですか?
Cpp/AnotherClass.cpp 42 //TODO: 何か見逃していますか?
Java/MyListener.java 23 //TODO: 最適化
于 2014-07-30T16:34:21.153 に答える
2

git configあなたの名前を取得するために使用して完了します。

git grep -l TODO | xargs -n1 git blame | grep "$(git config user.name)" | grep TODO
于 2016-09-03T15:40:58.630 に答える