When I'm working on a feature or refactor, I often leave @todo
comments to remain in flow and deal with other points later.
I don't mind committing them to my feature branch, as long as I work them away before merging in.
On large branches, it can be easy to forget about that todo I left in there a few days ago.
class PodcastController
{
public function process(Podcast $podcast): void
{
$podcast->process();
// @todo Broadcast event to trigger webhooks
return $podcast;
}
Before I merge, I pipe git diff
into a grep
call to scan for changes that include @todo
.
git --no-pager diff main..feature-branch | grep -i "^\+[^$]*@todo"
+ // @todo Broadcast event to trigger webhooks
If you want to double check your changes before comitting, you can use the same command with git diff HEAD
.
git --no-pager diff HEAD | grep -i "^\+[^$]*@todo"
Pouring this in a bash function
Here's a quick bash function to scan for todos:
function todos() {
git --no-pager diff ${1:"HEAD"} | grep -i "^\+[^$]*@todo"
}
Use it without an argument to look for todos you haven't committed yet, or pass the revisions you want to compare between.
# Look at current changes
todos
# Look for todos added between main and feature-branch
todos main..feature-branch