Do you litter your code with
FIXME comments? Would you
like to actually do those TODOs and fix those FIXMEs? If so,
difftodo finds all the comments you've edited or added that are marked with
TODO and then displays the output in a nice, human-readable way.
How to use it
For most things, you just need to run
If you've got uncommitted, unstaged changes,
git todo will show all TODOs
from those changes.
git todo will show all TODOs between your branch and
What do I need to do before merging this git branch?
$ git todo origin/master... git-todo/Main.hs:62: -- TODO: Take git diff flags as options git-todo/Main.hs:73: -- TODO: Read this as a bytestring from the start git-todo/Main.hs:83: -- TODO: Use gitlib
What do I need to do before I can commit this?
$ git todo git-todo/Main.hs:90: -- TODO: Factor out todo reporting
Have I staged any TODOs?
$ git todo --cached
What TODOs are left in my code base?
$ git todo --files ... too many to list here! ...
git todo tries to do the right thing. If you want more control, then you can
all-todos command, which shows all of the TODOs found in a
$ all-todos ../src-todo/branch-review.py ../src-todo/branch-review.py:11: # XXX: Incorporate this into difftodo
You can also use
diff-todo to extract TODOs from a diff. This is more or
git todo works, so if you find yourself wanting a bit more control
git todo does you can just use
$ git diff v1.0.1...v1.0.0 | diff-todo
$ brew tap jml/difftodo $ brew install difftodo
You need to have the following dependencies installed before you can build:
The preferred method is to build using Stack. In a checkout of the repository, run:
$ stack install
git todo command assumes that
git is available on the
This was originally
bzr-todo, and then became
difftodo, and then got
rewritten in Haskell.
I'm very keen to make this better, but I'm also rather busy. Patches & issues are welcome, but there's no SLA on replies.
If you find
difftodo useful, then please let me know.