From: Ilya Basin <basinilya@gmail.com>
To: Johannes Sixt <j.sixt@viscovery.net>, Jeff King <peff@peff.net>
Cc: git@vger.kernel.org
Subject: Re[2]: What can cause empty GIT_AUTHOR_NAME for 'git filter-branch --tree-filter' on Solaris?
Date: Wed, 17 Oct 2012 12:58:47 +0400 [thread overview]
Message-ID: <1013956402.20121017125847@gmail.com> (raw)
In-Reply-To: <507E5CE0.10002@viscovery.net>
[-- Attachment #1: Type: text/plain, Size: 554 bytes --]
JS> Most likely, your sed has problems with a sed script in function
JS> get_author_ident_from_commit. I tested it like this:
JS> $ sh -c '. $(git --exec-path)/git-sh-setup;
JS> get_author_ident_from_commit HEAD'
JS> GIT_AUTHOR_NAME='Johannes Sixt'
JS> GIT_AUTHOR_EMAIL='j6t@kdbg.org'
JS> GIT_AUTHOR_DATE='@1350025129 +0200'
JS> -- Hannes
Both systems have GNU sed 4.2.1 installed. I wrote a wrapper script wor sed.
It's output attached.
The difference is letter case in sed input data:
Solaris:
/^AUTHOR /
Windows:
/^author /
--
[-- Attachment #2: git-sed-good.txt --]
[-- Type: text/plain, Size: 4048 bytes --]
$ git filter-branch -f --tree-filter "env | grep GIT_; true" HEAD~1..HEAD
SED BEGIN
SED ARGUMENTS: -e s/-/ /
SED STDIN BEGIN
git-filter-branch
SED STDIN END
SED OUTPUT BEGIN
git filter-branch
SED OUTPUT END
SED EXIT CODE: 0
SED END
SED BEGIN
SED ARGUMENTS: -e /^^/d /cygdrive/c/sicap/rap/gitcvs/RAP27/.git-rewrite/raw-heads
SED INPUT FILE BEGIN: /cygdrive/c/sicap/rap/gitcvs/RAP27/.git-rewrite/raw-heads
refs/heads/master
SED INPUT FILE END: /cygdrive/c/sicap/rap/gitcvs/RAP27/.git-rewrite/raw-heads
SED OUTPUT BEGIN
refs/heads/master
SED OUTPUT END
SED EXIT CODE: 0
SED END
Rewrite acd1d2bb1984c96630d5070497590307151c4682 (1/1)
SED BEGIN
SED ARGUMENTS: -ne
/^author /{
s/'/'\\''/g
h
s/^author \([^<]*\) <[^>]*> .*$/\1/
s/'/'\''/g
s/.*/GIT_AUTHOR_NAME='&'; export GIT_AUTHOR_NAME/p
g
s/^author [^<]* <\([^>]*\)> .*$/\1/
s/'/'\''/g
s/.*/GIT_AUTHOR_EMAIL='&'; export GIT_AUTHOR_EMAIL/p
g
s/^author [^<]* <[^>]*> \(.*\)$/\1/
s/'/'\''/g
s/.*/GIT_AUTHOR_DATE='&'; export GIT_AUTHOR_DATE/p
q
}
SED STDIN BEGIN
tree 969f563d319049bb6dabc12054d67671499a6f55
parent c4734950e37c09ca7d3e3088f6f31d866dbb5077
author Ilya Basin <basinilya@gmail.com> 1350401059 +0400
committer Ilya Basin <basinilya@gmail.com> 1350405585 +0400
temp
SED STDIN END
SED OUTPUT BEGIN
GIT_AUTHOR_NAME='Ilya Basin'; export GIT_AUTHOR_NAME
GIT_AUTHOR_EMAIL='basinilya@gmail.com'; export GIT_AUTHOR_EMAIL
GIT_AUTHOR_DATE='1350401059 +0400'; export GIT_AUTHOR_DATE
SED OUTPUT END
SED EXIT CODE: 0
SED END
SED BEGIN
SED ARGUMENTS: -ne
/^committer /{
s/'/'\\''/g
h
s/^committer \([^<]*\) <[^>]*> .*$/\1/
s/'/'\''/g
s/.*/GIT_COMMITTER_NAME='&'; export GIT_COMMITTER_NAME/p
g
s/^committer [^<]* <\([^>]*\)> .*$/\1/
s/'/'\''/g
s/.*/GIT_COMMITTER_EMAIL='&'; export GIT_COMMITTER_EMAIL/p
g
s/^committer [^<]* <[^>]*> \(.*\)$/\1/
s/'/'\''/g
s/.*/GIT_COMMITTER_DATE='&'; export GIT_COMMITTER_DATE/p
q
}
SED STDIN BEGIN
tree 969f563d319049bb6dabc12054d67671499a6f55
parent c4734950e37c09ca7d3e3088f6f31d866dbb5077
author Ilya Basin <basinilya@gmail.com> 1350401059 +0400
committer Ilya Basin <basinilya@gmail.com> 1350405585 +0400
temp
SED STDIN END
SED OUTPUT BEGIN
GIT_COMMITTER_NAME='Ilya Basin'; export GIT_COMMITTER_NAME
GIT_COMMITTER_EMAIL='basinilya@gmail.com'; export GIT_COMMITTER_EMAIL
GIT_COMMITTER_DATE='1350405585 +0400'; export GIT_COMMITTER_DATE
SED OUTPUT END
SED EXIT CODE: 0
SED END
GIT_DIR=/cygdrive/c/sicap/rap/gitcvs/RAP27/.git
GIT_AUTHOR_DATE=1350401059 +0400
GIT_INDEX_FILE=/cygdrive/c/sicap/rap/gitcvs/RAP27/.git-rewrite/t/../index
GIT_WORK_TREE=.
GIT_AUTHOR_NAME=Ilya Basin
GIT_COMMITTER_NAME=Ilya Basin
GIT_COMMIT=acd1d2bb1984c96630d5070497590307151c4682
GIT_COMMITTER_EMAIL=basinilya@gmail.com
GIT_COMMITTER_DATE=1350405585 +0400
GIT_AUTHOR_EMAIL=basinilya@gmail.com
SED BEGIN
SED ARGUMENTS: -e 1,/^$/d
SED STDIN BEGIN
tree 969f563d319049bb6dabc12054d67671499a6f55
parent c4734950e37c09ca7d3e3088f6f31d866dbb5077
author Ilya Basin <basinilya@gmail.com> 1350401059 +0400
committer Ilya Basin <basinilya@gmail.com> 1350405585 +0400
temp
SED STDIN END
SED OUTPUT BEGIN
temp
SED OUTPUT END
SED EXIT CODE: 0
SED END
WARNING: Ref 'refs/heads/master' is unchanged
[-- Attachment #3: git-sed-sol.txt --]
[-- Type: text/plain, Size: 3715 bytes --]
-bash-3.00$ git filter-branch -f --tree-filter "env | grep GIT_; true" HEAD~1..HEAD
SED BEGIN
SED ARGUMENTS: -e s/-/ /
SED STDIN BEGIN
git-filter-branch
SED STDIN END
SED OUTPUT BEGIN
git filter-branch
SED OUTPUT END
SED EXIT CODE: 0
SED END
SED BEGIN
SED ARGUMENTS: -e /^^/d /home/tester/.ilya/builds/makepkg.rap_0.1-1_sparc.XXXXXX/src/rap/.git-rewrite/raw-heads
SED INPUT FILE BEGIN: /home/tester/.ilya/builds/makepkg.rap_0.1-1_sparc.XXXXXX/src/rap/.git-rewrite/raw-heads
refs/heads/master
SED INPUT FILE END: /home/tester/.ilya/builds/makepkg.rap_0.1-1_sparc.XXXXXX/src/rap/.git-rewrite/raw-heads
SED OUTPUT BEGIN
refs/heads/master
SED OUTPUT END
SED EXIT CODE: 0
SED END
Rewrite acd1d2bb1984c96630d5070497590307151c4682 (1/1)
SED BEGIN
SED ARGUMENTS: -ne
/^AUTHOR /{
s/'/'\\''/g
h
s/^AUTHOR \([^<]*\) <[^>]*> .*$/\1/
s/'/'\''/g
s/.*/GIT_AUTHOR_NAME='&'; export GIT_AUTHOR_NAME/p
g
s/^AUTHOR [^<]* <\([^>]*\)> .*$/\1/
s/'/'\''/g
s/.*/GIT_AUTHOR_EMAIL='&'; export GIT_AUTHOR_EMAIL/p
g
s/^AUTHOR [^<]* <[^>]*> \(.*\)$/\1/
s/'/'\''/g
s/.*/GIT_AUTHOR_DATE='&'; export GIT_AUTHOR_DATE/p
q
}
SED STDIN BEGIN
tree 969f563d319049bb6dabc12054d67671499a6f55
parent c4734950e37c09ca7d3e3088f6f31d866dbb5077
author Ilya Basin <basinilya@gmail.com> 1350401059 +0400
committer Ilya Basin <basinilya@gmail.com> 1350405585 +0400
temp
SED STDIN END
SED OUTPUT BEGIN
SED OUTPUT END
SED EXIT CODE: 0
SED END
SED BEGIN
SED ARGUMENTS: -ne
/^COMMITTER /{
s/'/'\\''/g
h
s/^COMMITTER \([^<]*\) <[^>]*> .*$/\1/
s/'/'\''/g
s/.*/GIT_COMMITTER_NAME='&'; export GIT_COMMITTER_NAME/p
g
s/^COMMITTER [^<]* <\([^>]*\)> .*$/\1/
s/'/'\''/g
s/.*/GIT_COMMITTER_EMAIL='&'; export GIT_COMMITTER_EMAIL/p
g
s/^COMMITTER [^<]* <[^>]*> \(.*\)$/\1/
s/'/'\''/g
s/.*/GIT_COMMITTER_DATE='&'; export GIT_COMMITTER_DATE/p
q
}
SED STDIN BEGIN
tree 969f563d319049bb6dabc12054d67671499a6f55
parent c4734950e37c09ca7d3e3088f6f31d866dbb5077
author Ilya Basin <basinilya@gmail.com> 1350401059 +0400
committer Ilya Basin <basinilya@gmail.com> 1350405585 +0400
temp
SED STDIN END
SED OUTPUT BEGIN
SED OUTPUT END
SED EXIT CODE: 0
SED END
GIT_DIR=/home/tester/.ilya/builds/makepkg.rap_0.1-1_sparc.XXXXXX/src/rap/.git
GIT_INDEX_FILE=/home/tester/.ilya/builds/makepkg.rap_0.1-1_sparc.XXXXXX/src/rap/.git-rewrite/t/../index
GIT_WORK_TREE=.
GIT_AUTHOR_NAME=
GIT_COMMITTER_NAME=
GIT_COMMIT=acd1d2bb1984c96630d5070497590307151c4682
SED BEGIN
SED ARGUMENTS: -e 1,/^$/d
SED STDIN BEGIN
tree 969f563d319049bb6dabc12054d67671499a6f55
parent c4734950e37c09ca7d3e3088f6f31d866dbb5077
author Ilya Basin <basinilya@gmail.com> 1350401059 +0400
committer Ilya Basin <basinilya@gmail.com> 1350405585 +0400
temp
SED STDIN END
SED OUTPUT BEGIN
temp
SED OUTPUT END
SED EXIT CODE: 0
SED END
fatal: empty ident <basinilya@gmail.com> not allowed
could not write rewritten commit
-bash-3.00$
next prev parent reply other threads:[~2012-10-17 8:59 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-17 6:47 What can cause empty GIT_AUTHOR_NAME for 'git filter-branch --tree-filter' on Solaris? Ilya Basin
2012-10-17 7:18 ` Jeff King
2012-10-17 7:23 ` Johannes Sixt
2012-10-17 8:58 ` Ilya Basin [this message]
2012-10-17 10:36 ` Re[3]: " Ilya Basin
2012-10-17 22:13 ` Jeff King
2012-10-17 22:09 ` Jeff King
2012-10-18 5:31 ` Johannes Sixt
2012-10-18 5:36 ` Jeff King
2012-10-18 6:06 ` Junio C Hamano
2012-10-18 6:08 ` Jeff King
2012-10-18 7:22 ` [PATCH 0/2] clean up filter-branch ident parsing Jeff King
2012-10-18 7:25 ` [PATCH 1/2] git-sh-setup: refactor ident-parsing functions Jeff King
2012-11-12 17:44 ` Junio C Hamano
2012-11-12 19:44 ` Jeff King
2012-11-12 20:08 ` Junio C Hamano
2012-11-12 20:12 ` Jeff King
2012-11-12 20:32 ` Junio C Hamano
2012-10-18 7:25 ` [PATCH 2/2] filter-branch: use git-sh-setup's ident parsing functions Jeff King
2012-10-18 7:49 ` Johannes Sixt
2012-10-18 7:54 ` Jeff King
2012-10-18 10:22 ` Jeff King
2012-10-18 10:26 ` Jeff King
2012-10-18 10:33 ` [PATCHv2 " Jeff King
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1013956402.20121017125847@gmail.com \
--to=basinilya@gmail.com \
--cc=git@vger.kernel.org \
--cc=j.sixt@viscovery.net \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.