bash-prompt.sh: show where rebase is at when stopped
commitb71dc3e1a04666fae4a4e282973d9b5a122a997c
authorZoltan Klinger <zoltan.klinger@gmail.com>
Thu, 25 Apr 2013 09:28:54 +0000 (25 19:28 +1000)
committerJunio C Hamano <gitster@pobox.com>
Thu, 25 Apr 2013 16:59:34 +0000 (25 09:59 -0700)
tree913563c29ad952c8b35da583e0a5e84e2899c884
parent3e7bb5da9f58a8b0d066d1511ab95b5df2f8c6b1
bash-prompt.sh: show where rebase is at when stopped

When a rebase stops (e.g. interrupted by a merge conflict), it could
be useful to know how far a rebase has progressed and how many
commits in total this rebase will apply. Teach the __git_ps1()
command to display the number of commits so far applied and the
total number of commits to be applied, like this:

  ((3ec0a6a...)|REBASE 2/5)

In the example above the rebase has stopped at the second commit due to
a merge conflict and there are a total number of five commits to be
applied by this rebase.

This information can be already obtained from the following files which are
being generated during the rebase:

    GIT_DIR/.git/rebase-merge/msgnum (git-rebase--merge.sh)
    GIT_DIR/.git/rebase-merge/end    (git-rebase--merge.sh)
    GIT_DIR/.git/rebase-apply/next   (git-am.sh)
    GIT_DIR/.git/rebase-apply/last   (git-am.sh)

but "rebase -i" does not leave necessary clues.

Implement this feature by doing these three things:

  1) Modify git-rebase--interactive.sh to also create

GIT_DIR/.git/rebase-merge/msgnum
GIT_DIR/.git/rebase-merge/end

     files for the number of commits so far applied and the total
     number of commits to be applied.

  2) Modify git-prompt.sh to read and display info from the above
     files.

  3) Update test t9903-bash-prompt.sh to reflect changes introduced
     by this patch.

Signed-off-by: Zoltan Klinger <zoltan.klinger@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/completion/git-prompt.sh
git-rebase--interactive.sh
t/t9903-bash-prompt.sh