Re: [PATCH/RFC] rebase: new convenient option to edit a single commit
- From
Matthieu Moy <matthieu.moy@grenoble-inp.fr>
- Date
- Feb 27, 2014, 13:52 UTC
- Message-ID
- <vpqvbw08xy0.fsf@anie.imag.fr>
- In-Reply-To
- <1393506078-7310-1-git-send-email-pclouds@gmail.com>
Nguyễn Thái Ngọc Duy <pclouds@gmail.com> writes:
> I find myself often do "git rebase -i xxx" and replace one "pick" line > with "edit" to amend just one commit when I see something I don't like > in that commit. This happens often while cleaning up a series. This > automates the "replace" step so it sends me straight to that commit.
Sounds a good idea to me.
> git-rebase--interactive.sh | 17 ++++++++++++++--- > git-rebase.sh | 10 ++++++++++
(obviously, don't forget doc and test if this becomes a non-RFC)
Show 35 quoted lines
> has_action "$todo" || > die_abort "Nothing to do" > diff --git a/git-rebase.sh b/git-rebase.sh > index 1cf8dba..98796cc 100755 > --- a/git-rebase.sh > +++ b/git-rebase.sh > @@ -31,6 +31,7 @@ verify allow pre-rebase hook to run > rerere-autoupdate allow rerere to update index with resolved conflicts > root! rebase all reachable commits up to the root(s) > autosquash move commits that begin with squash!/fixup! under -i > +1,edit-one! generate todo list to edit this commit > committer-date-is-author-date! passed to 'git am' > ignore-date! passed to 'git am' > whitespace=! passed to 'git apply' > @@ -249,6 +250,10 @@ do > -i) > interactive_rebase=explicit > ;; > + -1) > + interactive_rebase=explicit > + edit_one=t > + ;; > -k) > keep_empty=yes > ;; > @@ -450,6 +455,11 @@ then > ;; > *) upstream_name="$1" > shift > + if test -n "$edit_one" > + then > + edit_one="$upstream_name" > + upstream_name="$upstream_name^" > + fi > ;;
I think you forgot the case where the user specified -1 but no extra argument (i.e. use the default to upstream branch). Shouldn't the added code be after the esac?
-- Matthieu Moy http://www-verimag.imag.fr/~moy/