Potrzebuję daty w specjalnym formacie.
W Git 2.21 (Q1 2019) wprowadzono nowy format " --date=human
" daty, który zmienia dane wyjściowe w zależności od tego, jak bardzo czas jest od aktualnego czasu .
" --date=auto
" może być użyty do użycia tego nowego formatu, gdy wyjście jest kierowane na pager lub terminal, a poza tym format domyślny.
Zobacz commit 110a6a1 , commit b841d4f (29 stycznia 2019) i commit 038a878 , commit 2fd7c22 (21 stycznia 2019) autorstwa Stephena P. Smitha (``) .
Zobacz commit acdd377 (18 stycznia 2019) autorstwa Linusa Torvaldsa ( torvalds
) .
(Połączone przez Junio C Hamano - gitster
- w zatwierdzeniu ecbe1be , 07 lutego 2019 r.)
Dodaj dokumentację dotyczącą formatu daty „ludzkiej”
Wyświetlaj informacje o dacie i godzinie w formacie podobnym do tego, jak ludzie zapisują daty w innych kontekstach.
Jeśli rok nie jest określony, czytelnik wnioskuje, że podana data jest w bieżącym roku .
Nie wyświetlając zbędnych informacji, czytelnik koncentruje się na informacjach, które są inne .
Poprawka podaje względne daty na podstawie informacji wywnioskowanych z daty na komputerze, na którym uruchomiono git
polecenie w momencie wykonania polecenia.
Chociaż format jest bardziej przydatny dla ludzi, pomijając wywnioskowane informacje, nic nie czyni go tak naprawdę ludzkim.
Gdyby relative
format daty „ ” nie był jeszcze zaimplementowany, użycie „ relative
” byłoby właściwe.
Dodaj human
testy formatu daty.
W przypadku korzystania z human
kilku pól są pomijane w zależności od różnicy czasu między datą odniesienia a datą z komputera lokalnego.
- W przypadkach, gdy różnica jest mniejsza niż rok, pole roku jest pomijane.
- Jeśli czas jest krótszy niż jeden dzień; miesiąc i rok są pomijane.
check_date_format_human 18000 "5 hours ago" # 5 hours ago
check_date_format_human 432000 "Tue Aug 25 19:20" # 5 days ago
check_date_format_human 1728000 "Mon Aug 10 19:20" # 3 weeks ago
check_date_format_human 13000000 "Thu Apr 2 08:13" # 5 months ago
check_date_format_human 31449600 "Aug 31 2008" # 12 months ago
check_date_format_human 37500000 "Jun 22 2008" # 1 year, 2 months ago
check_date_format_human 55188000 "Dec 1 2007" # 1 year, 9 months ago
check_date_format_human 630000000 "Sep 13 1989" # 20 years ago
## Zamień proponowany auto
tryb „ auto:
” na „ ”
Oprócz dodania human
formatu „ ”, łatka dodała auto
słowo kluczowe, które może być użyte w pliku konfiguracyjnym jako alternatywny sposób określenia formatu ludzkiego. Usunięcie „auto” czyści human
interfejs formatu „ ”.
Dodano możliwość określenia trybu „ foo
”, jeśli pager jest używany przy użyciu auto:foo
składni.
Dlatego auto:human
tryb daty „ ” jest domyślny, human
jeśli używamy pagera.
Możesz więc:
git config --add log.date auto:human
a Twoje git log
polecenia „ ” pokażą format czytelny dla człowieka, chyba że tworzysz skrypty.
Git 2.24 (Q4 2019) uprościł kod.
Zobacz commit 47b27c9 , commit 29f4332 (12 września 2019) autorstwa Stephena P. Smitha (``) .
(Scalone przez Junio C Hamano - gitster
- w zatwierdzeniu 36d2fca , 07 października 2019)
Przestań przekazywać „teraz” do kodu daty
Commit b841d4f (Add human
format to test-tool, 2019-01-28, Git v2.21.0-rc0) dodał get_time()
funkcję, która pozwala $GIT_TEST_DATE_NOW
w środowisku zastąpić bieżący czas.
Nie musimy więc już interpretować tej zmiennej w cmd__date()
.
Dlatego możemy przestać " now
" przekazywać parametr w dół przez funkcje daty, ponieważ nikt ich nie używa.
Zauważ, że musimy się upewnić, że wszystkie poprzednie wywołania, które przyjęły now
parametr " ", używają poprawnie get_time()
.