Re: [PATCH 2/2] git-rebase--interactive: auto amend only edited commit
- From
Dmitry Potapov <dpotapov@gmail.com>
- Date
- Sep 9, 2008, 07:30 UTC
- Message-ID
- <20080909073029.GC28210@dpotapov.dyndns.org>
- In-Reply-To
- <48C61AF1.1060703@viscovery.net>
On Tue, Sep 09, 2008 at 08:42:57AM +0200, Johannes Sixt wrote:
Show 18 quoted lines
> Dmitry Potapov schrieb: > > Another problem is that after being stopped at "edit", the user adds new > > commits. In this case, automatic amend behavior of git rebase triggered > > by some stage changes causes that not only that the log message of the > > last commit is lost but that it will contain also wrong Author and Date > > information. > > > > Therefore, this patch restrict automatic amend only to the situation > > where HEAD is the commit at which git rebase stop by "edit" command. > ... > > @@ -430,6 +430,8 @@ do > > if test -f "$DOTEST"/amend > > then > > amend=$(git rev-parse --verify HEAD) > > + test "$amend" = $(cat "$DOTEST"/amend) || > > + die "You have uncommitted changes" > > Doesn't this terse message carry a bit of a "WTF?" factor?
Agreed. However, the current message in the case when you have some unstaged changes in your working tree is not much better: "Working tree is dirty"
Show 6 quoted lines
> In other > situations rebase --continue goes into git-commit just fine, but it does > not under these special conditions. How about this: > > "Will not auto-commit uncommitted changes after you have already committed > something. Please run 'git commit --amend' yourself."
I don't think this is the right suggestion. In cases that I mentioned above (and in some others), you may want to run 'git commit' *without* --amend. Only user may know how those changes should be committed. Giving him/her a direct instruction to run some specific command will produce the wrong result in half cases. So, how about this:
"You have uncommitted changes in your working tree. Please, commit them first and then run 'git rebase --continue' again."
or if you want to describe the cause why auto-commit does not work:
"Will not auto-commit uncommitted changes after you have already committed something. Please commit them first and then run 'git rebase --continue' again."
Personally, I believe those words about auto-commit is not very helpful. Auto-commit-on-edit feature is undocumented. So, those words may be more confusing than helpful, because the user starts thinking what this auto- commit means, while the real question here is whether changes should be committed with --amend or without it.
Dmitry