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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).