git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: Ilya Basin <basinilya@gmail.com>
Cc: Johannes Sixt <j.sixt@viscovery.net>, git@vger.kernel.org
Subject: Re: What can cause empty GIT_AUTHOR_NAME for 'git filter-branch --tree-filter' on Solaris?
Date: Wed, 17 Oct 2012 18:09:12 -0400	[thread overview]
Message-ID: <20121017220912.GA21742@sigill.intra.peff.net> (raw)
In-Reply-To: <1013956402.20121017125847@gmail.com>

On Wed, Oct 17, 2012 at 12:58:47PM +0400, Ilya Basin wrote:

> 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 /

Ah, so it's tr that is the culprit. We've had problems with Solaris tr
before, but usually around NULs or the use of brackets. But according to
40a7ce6 (tr portability fixes, 2008-03-12), filter-branch is already
doing it the portable way.

If you apply this patch, does your filter-branch work?

diff --git a/git-filter-branch.sh b/git-filter-branch.sh
index 178e453..58b1d69 100755
--- a/git-filter-branch.sh
+++ b/git-filter-branch.sh
@@ -68,8 +68,8 @@ set_ident () {
 # "author" or "committer
 
 set_ident () {
-	lid="$(echo "$1" | tr "[A-Z]" "[a-z]")"
-	uid="$(echo "$1" | tr "[a-z]" "[A-Z]")"
+	lid="$(echo "$1" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz)"
+	uid="$(echo "$1" | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ)"
 	pick_id_script='
 		/^'$lid' /{
 			s/'\''/'\''\\'\'\''/g

That seems like crazy overkill, but it at least will let us double-check
that the tr sequences are the problem.

-Peff

  parent reply	other threads:[~2012-10-17 22:09 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   ` Re[2]: " Ilya Basin
2012-10-17 10:36     ` Re[3]: " Ilya Basin
2012-10-17 22:13       ` Jeff King
2012-10-17 22:09     ` Jeff King [this message]
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=20121017220912.GA21742@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=basinilya@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=j.sixt@viscovery.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).