* git-commit --amend -m "..." complains?!? @ 2007-08-01 14:25 David Kastrup 2007-08-01 17:18 ` Junio C Hamano 0 siblings, 1 reply; 7+ messages in thread From: David Kastrup @ 2007-08-01 14:25 UTC (permalink / raw) To: git I get Option -m cannot be combined with -c/-C/-F/--amend. but that makes no sense: of course there is ample reason for providing an amended commit message on the command line. -c, -C and -F indeed all provide an alternative commit message, but --amend doesn't. So what is the beef? -- David Kastrup ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: git-commit --amend -m "..." complains?!? 2007-08-01 14:25 git-commit --amend -m "..." complains?!? David Kastrup @ 2007-08-01 17:18 ` Junio C Hamano 2007-08-01 19:23 ` David Kastrup 0 siblings, 1 reply; 7+ messages in thread From: Junio C Hamano @ 2007-08-01 17:18 UTC (permalink / raw) To: David Kastrup; +Cc: git David Kastrup <dak@gnu.org> writes: > I get > > Option -m cannot be combined with -c/-C/-F/--amend. > > but that makes no sense: of course there is ample reason for providing > an amended commit message on the command line. -c, -C and -F indeed > all provide an alternative commit message, but --amend doesn't. The option --amend is about "reusing the original commit message and make amending edit on top". If you are restarting the message from scratch, --amend does not make much sense. You can do: $ git reset HEAD^ $ git commit -m "blah" if you do not want to reuse the commit message. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: git-commit --amend -m "..." complains?!? 2007-08-01 17:18 ` Junio C Hamano @ 2007-08-01 19:23 ` David Kastrup 2007-08-01 19:52 ` Junio C Hamano 0 siblings, 1 reply; 7+ messages in thread From: David Kastrup @ 2007-08-01 19:23 UTC (permalink / raw) To: Junio C Hamano; +Cc: git Junio C Hamano <gitster@pobox.com> writes: > David Kastrup <dak@gnu.org> writes: > >> I get >> >> Option -m cannot be combined with -c/-C/-F/--amend. >> >> but that makes no sense: of course there is ample reason for providing >> an amended commit message on the command line. -c, -C and -F indeed >> all provide an alternative commit message, but --amend doesn't. > > The option --amend is about "reusing the original commit message > and make amending edit on top". Uh no. From the man page: --amend Used to amend the tip of the current branch. Prepare the tree object you would want to replace the latest commit as usual (this includes the usual -i/-o and explicit paths), and the commit log editor is seeded with the commit message from the tip of the current branch. The commit you create replaces the current tip -- if it was a merge, it will have the parents of the current tip as parents -- so the current top commit is discarded. It is a rough equivalent for: $ git reset --soft HEAD^ $ ... do something else to come up with the right tree ... $ git commit -c ORIG_HEAD but can be used to amend a merge commit. The --amend is not, according to the manual page, there to amend the commit message, but primarily to amend the commit. If one does not want to amend the message, this is easily done with -C HEAD. If one wants to amend the message but not by editing, one is plain out of luck. -C, -F and -m are all logically exclusive (and -C -e is the same as -c). But --amend seems completely orthogonal to me with regard to the commit message: it just has a different seed from the normal commit message edit. You can override the seed with a normal commit using -c -C -F and -m. Why not with --amend? > If you are restarting the message from scratch, --amend does not > make much sense. It amends the _commit_. You can edit files, add them, and commit additional changes. If you are using a dumb terminal (or a system with nonworking VISUAL over the link in question), you don't _want_ an editor called up. > You can do: > > $ git reset HEAD^ > $ git commit -m "blah" > > if you do not want to reuse the commit message. You can pretty much _always_ avoid --amend in a similar manner, but why would you? It is convenient. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: git-commit --amend -m "..." complains?!? 2007-08-01 19:23 ` David Kastrup @ 2007-08-01 19:52 ` Junio C Hamano 2007-08-01 20:45 ` David Kastrup 0 siblings, 1 reply; 7+ messages in thread From: Junio C Hamano @ 2007-08-01 19:52 UTC (permalink / raw) To: David Kastrup; +Cc: git David Kastrup <dak@gnu.org> writes: > Junio C Hamano <gitster@pobox.com> writes: > ... >> You can do: >> >> $ git reset HEAD^ >> $ git commit -m "blah" >> >> if you do not want to reuse the commit message. > > You can pretty much _always_ avoid --amend in a similar manner, but > why would you? It is convenient. No need to be upset about what I said. I really do not want to change the minor detail this late in the 1.5.3 release cycle, and wanted to unblock you by giving an workaround in case you were stuck. It should be a straightforward change to git-commit.sh. Instead of "Oops, -m and --amend are incompatible so we will whine" around line 300, you can treat --amend somewhat specially by (1) making it first not set log_given, which would still keep the combination of -m/-c/-C/-F incompatible, (2) when $log_given is false and we are amending, honor $use_commit to prime the message. Then you can keep the current bahaviour for amending starting from the existing message, while allowing -m/-c/-C/-F to supply different message for the replacing commit. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: git-commit --amend -m "..." complains?!? 2007-08-01 19:52 ` Junio C Hamano @ 2007-08-01 20:45 ` David Kastrup 2007-08-01 20:33 ` [PATCH] git-commit.sh: Permit the --amend message to be given with -m/-c/-C/-F David Kastrup 0 siblings, 1 reply; 7+ messages in thread From: David Kastrup @ 2007-08-01 20:45 UTC (permalink / raw) To: Junio C Hamano; +Cc: git Junio C Hamano <gitster@pobox.com> writes: > David Kastrup <dak@gnu.org> writes: > >> Junio C Hamano <gitster@pobox.com> writes: >> ... >>> You can do: >>> >>> $ git reset HEAD^ >>> $ git commit -m "blah" >>> >>> if you do not want to reuse the commit message. >> >> You can pretty much _always_ avoid --amend in a similar manner, but >> why would you? It is convenient. > > No need to be upset about what I said. I really do not want to > change the minor detail this late in the 1.5.3 release cycle, and > wanted to unblock you by giving an workaround in case you were > stuck. Well, there is always VISUAL='echo "mycommit" >"$1"' git commit --amend Uh, no wait, it isn't. Different thread. > It should be a straightforward change to git-commit.sh. Instead of > "Oops, -m and --amend are incompatible so we will whine" around line > 300, you can treat --amend somewhat specially by (1) making it first > not set log_given, which would still keep the combination of > -m/-c/-C/-F incompatible, (2) when $log_given is false and we are > amending, honor $use_commit to prime the message. I actually can't find anything about (2) to be done in the code. > Then you can keep the current bahaviour for amending starting from > the existing message, while allowing -m/-c/-C/-F to supply different > message for the replacing commit. In a somewhat different vein: it appears strange that -m is treated completely different from the other commit message specifiers: you can specify -m multiple times. I have not changed this in the slightly tested patch posted separately: while the --amend fix was quite straightforward and confined (and indeed, not even the documentation appears to warrant any modification), the m/t mess is something I really don't want to mess with right now. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH] git-commit.sh: Permit the --amend message to be given with -m/-c/-C/-F. 2007-08-01 20:45 ` David Kastrup @ 2007-08-01 20:33 ` David Kastrup 2007-08-02 1:03 ` Junio C Hamano 0 siblings, 1 reply; 7+ messages in thread From: David Kastrup @ 2007-08-01 20:33 UTC (permalink / raw) To: git Signed-off-by: David Kastrup <dak@gnu.org> --- git-commit.sh | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) diff --git a/git-commit.sh b/git-commit.sh index 4290ae2..d7e7028 100755 --- a/git-commit.sh +++ b/git-commit.sh @@ -190,7 +190,6 @@ $1" ;; --a|--am|--ame|--amen|--amend) amend=t - log_given=t$log_given use_commit=HEAD shift ;; @@ -298,9 +297,9 @@ esac case "$log_given" in tt*) - die "Only one of -c/-C/-F/--amend can be used." ;; + die "Only one of -c/-C/-F can be used." ;; *tm*|*mt*) - die "Option -m cannot be combined with -c/-C/-F/--amend." ;; + die "Option -m cannot be combined with -c/-C/-F." ;; esac case "$#,$also,$only,$amend" in -- 1.5.3.rc2.84.gd0bef-dirty ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] git-commit.sh: Permit the --amend message to be given with -m/-c/-C/-F. 2007-08-01 20:33 ` [PATCH] git-commit.sh: Permit the --amend message to be given with -m/-c/-C/-F David Kastrup @ 2007-08-02 1:03 ` Junio C Hamano 0 siblings, 0 replies; 7+ messages in thread From: Junio C Hamano @ 2007-08-02 1:03 UTC (permalink / raw) To: David Kastrup; +Cc: git David Kastrup <dak@gnu.org> writes: > Signed-off-by: David Kastrup <dak@gnu.org> > --- > git-commit.sh | 5 ++--- > 1 files changed, 2 insertions(+), 3 deletions(-) > > diff --git a/git-commit.sh b/git-commit.sh > index 4290ae2..d7e7028 100755 > --- a/git-commit.sh > +++ b/git-commit.sh > @@ -190,7 +190,6 @@ $1" > ;; > --a|--am|--ame|--amen|--amend) > amend=t > - log_given=t$log_given > use_commit=HEAD > shift > ;; > @@ -298,9 +297,9 @@ esac > > case "$log_given" in > tt*) > - die "Only one of -c/-C/-F/--amend can be used." ;; > + die "Only one of -c/-C/-F can be used." ;; > *tm*|*mt*) > - die "Option -m cannot be combined with -c/-C/-F/--amend." ;; > + die "Option -m cannot be combined with -c/-C/-F." ;; > esac > > case "$#,$also,$only,$amend" in Ok, looks obviously correct. Wasn't too painful, was it? Thanks, will apply. ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2007-08-02 1:03 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-08-01 14:25 git-commit --amend -m "..." complains?!? David Kastrup 2007-08-01 17:18 ` Junio C Hamano 2007-08-01 19:23 ` David Kastrup 2007-08-01 19:52 ` Junio C Hamano 2007-08-01 20:45 ` David Kastrup 2007-08-01 20:33 ` [PATCH] git-commit.sh: Permit the --amend message to be given with -m/-c/-C/-F David Kastrup 2007-08-02 1:03 ` Junio C Hamano
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox