Skip to contentSkip to conversation

Localization: Timestamps get wrong if using different locales

DISCUSSION Christoph Miebach 2 participants 3 messages Jun 15, 2016

lore
Share & tools
lore
#0 lore raw

Hello!

Running this commands locally (german locale) lead to some wrong dates for the patches upstream.

git format-patch -o patches origin

git send-email --compose --no-chain-reply-to --to [email protected] --suppress-cc=author patches/0001-l10n-Turkish-update.patch

The local
Date: Sat, 4 Aug 2012
became

      Wed, 8 Dec 2004

So it looks like matching DD=04=YY MM=08=DD and YY=12=MM

German date format usually looks DD.MM.YYYY

A workaround for me was running the lines with LANGUAGE=en

I am using
git-send-email 1.7.10.4
with the patch from here
http://www.mail-archive.com/[email protected]/msg05240.html
but I do not expect this to do any harm here.

Shall I provide more information?

Regards

Christoph

#1 lore raw
Quoted 4 lines · Christoph Miebach

Running this commands locally (german locale) lead to some wrong dates for the patches upstream.

git format-patch -o patches origin

What does "git show -s --pretty=fuller HEAD" give you at this point? This is to check what kind of timestamps are stored in the original commit objects.

And what does "grep '^Date: ' patches/0001-*" show you at this point? This is to see if the problem is at the "format-patch" step.

Quoted 2 lines

git send-email --compose --no-chain-reply-to --to [email protected] --suppress-cc=author patches/0001-l10n-Turkish-update.patch

And what does "grep '^Date: '" for the message that is received by recipients show at this step? They cannot be

Quoted 6 lines

The local
Date: Sat, 4 Aug 2012
became

      Wed, 8 Dec 2004

as these two do not even have times and zones. It should read something like

    Date: Sun, 05 Aug 2012 13:39:12 -0700

or something.

Also "Date" on which message do you see your problem with? The one that is created with --compose? Or the one that was originally produced by format-patch and then sent? Or both?

The timestamps used by git-send-email is obtained by calling time() function of Perl, and is not affected by timezone, and the function format_2822_time() implements the e-mail header timestamp in a way that should not be affected by any locales as far as I know, so it is curious where the "breakage" is coming from.

Quoted 1 line

Shall I provide more information?

Yes.

#2 lore raw

Hello!

What I am doing is:
invoking a bash script that does the

git add ${i##$TXPATH/}/strings.xml

git commit --author="$AUTHOR" ${i##$TXPATH\/}/strings.xml -m "l10n: $LNAME update"

after a user confirmation.

IIUC setting LANGUAGE=en at the top of this script _did_ help. So I run everything with german locale for reproducing this.

Quoted 10 lines · Junio C Hamano
Quoted 4 lines · Christoph Miebach

Running this commands locally (german locale) lead to some wrong dates for the patches upstream.

git format-patch -o patches origin

What does "git show -s --pretty=fuller HEAD" give you at this point? This is to check what kind of timestamps are stored in the original commit objects.

See pretty_fuller.txt

Quoted 2 lines

And what does "grep '^Date: ' patches/0001-*" show you at this point? This is to see if the problem is at the "format-patch" step.

See date_grep.txt

Quoted 13 lines
Quoted 2 lines

git send-email --compose --no-chain-reply-to --to [email protected] --suppress-cc=author patches/0001-l10n-Turkish-update.patch

And what does "grep '^Date: '" for the message that is received by recipients show at this step? They cannot be

Quoted 6 lines

The local
Date: Sat, 4 Aug 2012
became

       Wed, 8 Dec 2004
Quoted 6 lines

as these two do not even have times and zones. It should read something like

     Date: Sun, 05 Aug 2012 13:39:12 -0700

or something.

It was a complete line. I just did not copy all of it, for I thought I already pointed out the problem.

The recipient uses en_CA.UTF-8 and guesses:
Date: 12-08-05 06:10 PM
it is Y-M-D, but git thinks it's M-Y-D

Quoted 3 lines

Also "Date" on which message do you see your problem with? The one that is created with --compose? Or the one that was originally produced by format-patch and then sent? Or both?

git log should show the translators name ($AUTHOR in the git commit line)

Sorry for the late (and probably still incomplete) reply. I can provide a complete example or send a patch to a dummy project if you prefer some time next week, I hope.

Regards

Christoph

commit b6f59b4a61f1bd203bb0d449dabac7b16351e2e1

Author:     Christoph Miebach <[email protected]>
AuthorDate: Mon Aug 6 00:07:54 2012 +0200
Commit:     Christoph Miebach <[email protected]>
CommitDate: Mon Aug 6 00:07:54 2012 +0200

l10n: German update

Date: Mon, 6 Aug 2012 00:07:54 +0200