A proof-of-concept implementation is on the key-groups branch on

git://github.com/oscarfv/magit.git

(this is the first time I publish something through git/github, I hope
everything is right)

So far only the `log' functionality is present. Now `l' is bound to a
function that displays a list of commands and options. Yes, it provides
options too because otherwise implementing a command for every possible
combination is unfeasible, so the idea is to provide a few commands for
the most used features and a set of options for customizing the
commands. This way, "log all" does not need a specific command: you turn
on the "All" option and the use the log command of you choice (one-line,
log, grep, etc) It's quick too: one-line log all is 'l a l'

I implemented a --relative option, just for demonstrating how a
non-boolean option is set, but it seems that either --relative is buggy
or I don't understand how it works. "log grep" seems broken on Windows
too.

If this looks right, I'll proceed to code cleanup and updating the
documentation, but I'm not sure how much actual functionality to
integrate on the new method. `Push', for instance, right now is just one
command which does the basic thing, but there are lots of potential
there for adding a few more commands and several options. Same for
handling of remotes (which could be integrated into the fetch/pull
area), making patches, etc.

Reply via email to