Trace the history of an individual method in a git repository (experimental).
- Ruby >= v1.9.3 (due to requirements of the
- The rugged Ruby gem (listed as dependency in gemspec)
- The libgit2 C library (included as part of rugged gem)
- The parser Ruby gem (listed as dependency in gemspec)
gem install method_log
$ method_log <options> <method-signature> # options: --patch, -p: Generate patch. --ruby-version, -r <s>: Parser Ruby version (18, 19, 20, 21) (default: current) --max-count, -n <i>: Limit the number of commits to output. --stop-at-latest-introduction-of-method, -s: Stop at lastest introduction of method. --help, -h: Show usage. # method-signature Uses the Ruby Index format e.g. Foo#bar, Bar::Baz#foo, Baz.foo.
- Support for Rspec tests
- Default to looking for commits in current git branch
- Check what happens with merge commits
- Maybe add as new git command or extension to existing command e.g.
- Find "similar" method implementations e.g. by comparing ASTs of implementations
Thanks to Michael Feathers for some ideas in delta-flora.
Thanks to TICOSA for giving me the impetus to do something about an idea I'd been kicking around for a while.
Released under the MIT License.