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)?
--b.
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)?
--b.
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.
Re: modifying commit's author
On Mon, Jan 22, 2007 at 12:48:27PM -0800, Junio C Hamano wrote:
> "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.
Re: modifying commit's author
Junio C Hamano <junkio@cox.net> writes:
> "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"
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
Re: modifying commit's author
On Mon, Jan 22, 2007 at 09:50:16PM +0100, Robin Rosenberg wrote:
> 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.
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