On Tue, May 2, 2017 at 6:00 AM, Liam Beguin <liambeguin@xxxxxxxxx> wrote: > Add the 'rebase.abbreviateCommands' configuration option to allow > `git rebase -i` to default to the single-letter command-names in > the todo list. > > Using single-letter command-names can present two benefits. > First, it makes it easier to change the action since you only need to > replace a single character (i.e.: in vim "r<character>" instead of > "ciw<character>"). > Second, using this with a large enough value of 'core.abbrev' enables the > lines of the todo list to remain aligned making the files easier to > read. > > Changes from v1 to v2: > - Improve Documentation and commit message > > Changes from v2 to v3: > - Transform a single patch into a series > - change option name from 'rebase.abbrevCmd' to 'rebase.abbreviateCommands' > - abbreviate all commands (not just pick) > - teach `git rebase -i --autosquash` to recognise single-letter command-names > - move rebase configuration documentation to Documentation/rebase-config.txt > - update Documentation to use the preferred naming for the todo list > - update Documentation and commit messages according to feedback > > Liam Beguin (6): > rebase -i: add abbreviated command-names handling > rebase -i: add abbreviate_commands function > rebase -i: add short command-name in --autosquash > Documentation: move rebase.* config variables to a separate > rebase-config.txt > Documentation: use prefered name for the 'todo list' script > Documentation: document the rebase.abbreviateCommands option I locally rebased this into just 3 patches, i.e. in this sequence: - Documentation: move rebase.* config variables to a separate rebase-config.txt - Documentation: use preferred name for the 'todo list' script - *all the rest of this squashed* I think that's much less confusing than having 3x "rebase -i" patches. If you look at any one of those you have very little context for what's going on, and there seems to be no point in splitting them since the end result is tiny (3 files changed, 45 insertions(+), 4 deletions(-)). I think with that this looks good, but it also needs tests, if you apply your series and then comment out the new calls to abbreviate_commands all tests still pass, if you look at git-config(1) and search for the other rebase.* commands & grep the test suite for those you can see how they're tested for. I don't think this needs a lot of testing since it's a rather trivial feature, but just one test to make sure that the todo list ends up as "p ..." "e ..." instead of "pick ..." "exec ..." etc. would be good. > Documentation/config.txt | 31 +----------------------- > Documentation/git-rebase.txt | 21 +++------------- > Documentation/rebase-config.txt | 53 +++++++++++++++++++++++++++++++++++++++++ > git-rebase--interactive.sh | 24 ++++++++++++++++++++---- > 4 files changed, 78 insertions(+), 52 deletions(-) > create mode 100644 Documentation/rebase-config.txt > > -- > 2.9.3 >