threads / discuss / 6480

modifying commit's author

Subject: modifying commit's author

## tl;dr

7 messages between Jan 22, 2007 and Jan 23, 2007.

replies: 6people: 4as markdown or json

Junio C Hamano· Jan 22, 2007, 20:48 UTC · re: J. Bruce Fields · lore

Re: modifying commit's author

"J. Bruce Fields" <bfields@fieldses.org> writes:
> If I got the author wrong on a commit, is there a quick way to fix it
> (e.g. by passing the right arguments or environment variables to commit
> --amend)?

I usually do "format-patch -$n; reset --hard HEAD~$n; edit 00??-*.patch; am 00??-*.patch" myself when I got into that situation to rebuild the branch, and haven't personally felt need for an option to --amend, but it might make sense to teach git-commit --amend to allow --author option to override it; I think it currently ignores --author when given without erroring out.

It may become a question if we would want to allow updating the timestamp as well, but when people asked for --author I did not hear from anybody who wanted to have --authortime, so not being able to do so probably is Ok.

J. Bruce Fields· Jan 22, 2007, 21:02 UTC · re: Junio C Hamano · lore

Re: modifying commit's author

On Mon, Jan 22, 2007 at 12:48:27PM -0800, Junio C Hamano wrote:
Show 13 quoted lines
> "J. Bruce Fields" <bfields@fieldses.org> writes:
> 
> > If I got the author wrong on a commit, is there a quick way to fix it
> > (e.g. by passing the right arguments or environment variables to commit
> > --amend)?
> 
> I usually do "format-patch -$n; reset --hard HEAD~$n; edit
> 00??-*.patch; am 00??-*.patch" myself when I got into that
> situation to rebuild the branch, and haven't personally felt
> need for an option to --amend, but it might make sense to teach
> git-commit --amend to allow --author option to override it; I
> think it currently ignores --author when given without erroring
> out.

That might be nice, but actually the git-am trick is more convenient than I'd realized; thanks for the tip.

--b.
Junio C Hamano· Jan 22, 2007, 21:03 UTC · re: Junio C Hamano · lore

Re: modifying commit's author

Junio C Hamano <junkio@cox.net> writes:
Show 18 quoted lines
> "J. Bruce Fields" <bfields@fieldses.org> writes:
>
>> If I got the author wrong on a commit, is there a quick way to fix it
>> (e.g. by passing the right arguments or environment variables to commit
>> --amend)?
>
> I usually do "format-patch -$n; reset --hard HEAD~$n; edit
> 00??-*.patch; am 00??-*.patch" myself when I got into that
> situation to rebuild the branch, and haven't personally felt
> need for an option to --amend, but it might make sense to teach
> git-commit --amend to allow --author option to override it; I
> think it currently ignores --author when given without erroring
> out.
>
> It may become a question if we would want to allow updating the
> timestamp as well, but when people asked for --author I did not
> hear from anybody who wanted to have --authortime, so not being
> able to do so probably is Ok.
Untested, but something along this line.

-- >8 -- [PATCH] honor --author even with --amend, -C, and -c.

Earlier code discarded GIT_AUTHOR_DATE taken from the base commit when --author was specified. This was often wrong as that use is likely to fix the spelling of author's name.

---
diff --git a/git-commit.sh b/git-commit.sh
index e23918c..6f4dcdb 100755
--- a/git-commit.sh
+++ b/git-commit.sh
@@ -462,15 +462,7 @@ if test -f "$GIT_DIR/MERGE_HEAD" && test -z "$no_edit"; then
 fi >>"$GIT_DIR"/COMMIT_EDITMSG
 
 # Author
-if test '' != "$force_author"
-then
-	GIT_AUTHOR_NAME=`expr "z$force_author" : 'z\(.*[^ ]\) *<.*'` &&
-	GIT_AUTHOR_EMAIL=`expr "z$force_author" : '.*\(<.*\)'` &&
-	test '' != "$GIT_AUTHOR_NAME" &&
-	test '' != "$GIT_AUTHOR_EMAIL" ||
-	die "malformed --author parameter"
-	export GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL
-elif test '' != "$use_commit"
+if test '' != "$use_commit"
 then
 	pick_author_script='
 	/^author /{
@@ -501,6 +493,15 @@ then
 	export GIT_AUTHOR_EMAIL
 	export GIT_AUTHOR_DATE
 fi
+if test '' != "$force_author"
+then
+	GIT_AUTHOR_NAME=`expr "z$force_author" : 'z\(.*[^ ]\) *<.*'` &&
+	GIT_AUTHOR_EMAIL=`expr "z$force_author" : '.*\(<.*\)'` &&
+	test '' != "$GIT_AUTHOR_NAME" &&
+	test '' != "$GIT_AUTHOR_EMAIL" ||
+	die "malformed --author parameter"
+	export GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL
+fi
 
 PARENTS="-p HEAD"
 if test -z "$initial_commit"
Robin Rosenberg· Jan 22, 2007, 20:50 UTC · re: J. Bruce Fields · lore

Re: modifying commit's author

måndag 22 januari 2007 21:37 skrev J. Bruce Fields:
> If I got the author wrong on a commit, is there a quick way to fix it
> (e.g. by passing the right arguments or environment variables to commit
> --amend)?

Set these: GIT_AUTHOR_EMAIL GIT_AUTHOR_NAME GIT_COMMITTER_EMAIL GIT_COMMITTER_NAME

-- robin
J. Bruce Fields· Jan 22, 2007, 21:04 UTC · re: Robin Rosenberg · lore

Re: modifying commit's author

On Mon, Jan 22, 2007 at 09:50:16PM +0100, Robin Rosenberg wrote:
Show 10 quoted lines
> måndag 22 januari 2007 21:37 skrev J. Bruce Fields:
> > If I got the author wrong on a commit, is there a quick way to fix it
> > (e.g. by passing the right arguments or environment variables to commit
> > --amend)?
> 
> Set these:
> GIT_AUTHOR_EMAIL
> GIT_AUTHOR_NAME
> GIT_COMMITTER_EMAIL
> GIT_COMMITTER_NAME

That doesn't seem to work in this case, since with the commands that take an existing commit as a model (like commit --amend and commit -c), the author information from the existing commit overrides those environment variables. Which is normally what you want.

--b.
Johannes Sixt· Jan 23, 2007, 07:38 UTC · re: J. Bruce Fields · lore

Re: modifying commit's author

"J. Bruce Fields" wrote:
> 
> If I got the author wrong on a commit, is there a quick way to fix it
> (e.g. by passing the right arguments or environment variables to commit
> --amend)?

Use cogito: cg commit --amend -e You can edit the author name+email in the commit message.

-- Hannes

← back to recent threads