git log неверно отображает время

IDE, VCS и прочее

Модератор: Модераторы разделов

Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

git log неверно отображает время

Сообщение t.t »

А не подскажете ли, почему гит записывает в коммиты время в часовом поясе -0700, и как его убедить, что я живу в Киеве?
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
IMB
Сообщения: 2559
ОС: Debian

Re: git log неверно отображает время

Сообщение IMB »

git log

commit f362aaaa58146e08d9846b3a018233c5ac06c6b8 Author: user <user@company.ru> Date: Thu Jul 1 09:59:21 2010 +0400 $ date Thu Jul 1 13:37:22 MSD 2010

Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: git log неверно отображает время

Сообщение t.t »

IMB, нет, про опцию log.date=local я знаю. Меня интересует не отображаемый в логах формат даты, а хранящийся в репозитории.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
IMB
Сообщения: 2559
ОС: Debian

Re: git log неверно отображает время

Сообщение IMB »

Не знаю, ничего специально не выставлял.

head .git/logs/HEAD

889ff39e5b5f32f704ef0bf0898585b82e54330c 517259579c8b7a77bf4148d4f36e298a76950032 user <user@company.ru> 1265023668 +0300 commit: собранный из исходников проект


Вроде тоже локальное время, или я не там смотрю?
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: git log неверно отображает время

Сообщение t.t »

Хм… Полез проверять, убрал local. Теперь вообще непойми что. Точно помню, что в самом начале там было -0700. Теперь пишет, что якобы +0300. Но само время при этом…

С date = local:

Код: Выделить всё

$ git log | grep Date | head -1
Date:   Thu Jul 1 08:12:17 2010


Без:

Код: Выделить всё

$ git log | grep Date | head -1
Date:   Thu Jul 1 02:12:17 2010 +0300


На сервере github-а при этом:

Код: Выделить всё

Wed Jun 30 22:12:17 -0700 2010
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: git log неверно отображает время

Сообщение t.t »

Добавлю: думаю, из времени, отображаемого на сервере, видно, что из остальных двух верен «локальный» вариант.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: git log неверно отображает время

Сообщение sash-kan »

вот это буквально записано в репозитории:
QUOTE писал(а):$ git cat-file -p 248cf22220e0dcb60ecb671dd8a4596503bf1749
tree 9822ad5b5ae620484d740faa364057bafe117043
parent f558d6465736b13bc73b3128c259b57fe3affd69
author Tikhon Tarnavsky <t.t@unixforum.org> 1277961137 +0300
committer Tikhon Tarnavsky <t.t@unixforum.org> 1277961137 +0300

updated forgotten original file: en/multiplayer.txt

так что проблема с отображением.
либо сказывается довольно старая версия git-а, либо какая-то специфика таблетки (это происходит на nokia, как я понял), либо то и другое вместе.

кстати, как убедиться, что git нас не накалывает:

Код: Выделить всё

$ git cat-file -p 248cf22220e0dcb60ecb671dd8a4596503bf1749 | wc -c
272
$ git cat-file -p 248cf22220e0dcb60ecb671dd8a4596503bf1749 | sed '1s/^/commit 272\x00/' | sha1sum
248cf22220e0dcb60ecb671dd8a4596503bf1749  -

как видно, в начало текста нужно добавить тип объекта (в данном случае "commit"), пробел, длину в байтах и символ 0x0.
и получится именно требуемая хеш-сумма.

upd. что-то меня понесло. не могу удержаться.
так вот. объекты в git-е сжимаются с помощью zlib. распаковать можно прилагающейся к zlib программкой zpipe:

Код: Выделить всё

$ cat .git/objects/24/8cf22220e0dcb60ecb671dd8a4596503bf1749 | zpipe -d | sha1sum
248cf22220e0dcb60ecb671dd8a4596503bf1749  -
$ cat .git/objects/24/8cf22220e0dcb60ecb671dd8a4596503bf1749 | zpipe -d | hexdump -C
00000000  63 6f 6d 6d 69 74 20 32  37 32 00 74 72 65 65 20  |commit 272.tree |
00000010  39 38 32 32 61 64 35 62  35 61 65 36 32 30 34 38  |9822ad5b5ae62048|
00000020  34 64 37 34 30 66 61 61  33 36 34 30 35 37 62 61  |4d740faa364057ba|
00000030  66 65 31 31 37 30 34 33  0a 70 61 72 65 6e 74 20  |fe117043.parent |
00000040  66 35 35 38 64 36 34 36  35 37 33 36 62 31 33 62  |f558d6465736b13b|
00000050  63 37 33 62 33 31 32 38  63 32 35 39 62 35 37 66  |c73b3128c259b57f|
00000060  65 33 61 66 66 64 36 39  0a 61 75 74 68 6f 72 20  |e3affd69.author |
00000070  54 69 6b 68 6f 6e 20 54  61 72 6e 61 76 73 6b 79  |Tikhon Tarnavsky|
00000080  20 3c 74 2e 74 40 75 6e  69 78 66 6f 72 75 6d 2e  | <t.t@unixforum.|
00000090  6f 72 67 3e 20 31 32 37  37 39 36 31 31 33 37 20  |org> 1277961137 |
000000a0  2b 30 33 30 30 0a 63 6f  6d 6d 69 74 74 65 72 20  |+0300.committer |
000000b0  54 69 6b 68 6f 6e 20 54  61 72 6e 61 76 73 6b 79  |Tikhon Tarnavsky|
000000c0  20 3c 74 2e 74 40 75 6e  69 78 66 6f 72 75 6d 2e  | <t.t@unixforum.|
000000d0  6f 72 67 3e 20 31 32 37  37 39 36 31 31 33 37 20  |org> 1277961137 |
000000e0  2b 30 33 30 30 0a 0a 75  70 64 61 74 65 64 20 66  |+0300..updated f|
000000f0  6f 72 67 6f 74 74 65 6e  20 6f 72 69 67 69 6e 61  |orgotten origina|
00000100  6c 20 66 69 6c 65 3a 20  65 6e 2f 6d 75 6c 74 69  |l file: en/multi|
00000110  70 6c 61 79 65 72 2e 74  78 74 0a                 |player.txt.|
0000011b

в debian zpipe.c имеется в пакете zlib1g-dev:

Код: Выделить всё

$ cp /usr/share/doc/zlib1g-dev/examples/zpipe.c.gz .
$ gunzip zpipe.c.gz
$ gcc -o zpipe zpipe.c -lz
$ ls
zpipe  zpipe.c
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: git log неверно отображает время

Сообщение t.t »

Спасибо. Да, всё это происходит на n810.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали: