2013-04-03 8 views
17

podczas pracy z łatą w formacie git, celem jest utworzenie reprezentacji e-mail kodu, który napisałeś. Jak na razie dobrze. Nie jestem ekspertem e-mail, ale wydaje mi się, że pierwsza linia tego wyjścia Format-patch nie jest w standardowym formacie nagłówka email ...jaki jest pierwszy wiersz wyjścia z patch-form git?

 
From de8d128fb520416e0b029c913b3a5ce900d0320c Mon Sep 17 00:00:00 2001 
Message-Id: 
From: Christopher Harvey 
Date: Wed, 3 Apr 2013 10:17:52 -0400 
Subject: [PATCH 0/3] *** SUBJECT HERE *** 
To: Christopher Harvey 

*** BLURB HERE *** 

Christopher Harvey (3): 
    commit 2 
    commit 3 
    commit 4 

data | 3 +++ 
1 file changed, 3 insertions(+) 

-- 
1.7.12.4 

co jest From de8d128fb520416e0b029c913b3a5ce900d0320c Mon Sep 17 00:00:00 2001? jaka jest data? Wydaje mi się to arbitralne, a także uniemożliwia mi wysyłanie go do sendmaila. Muszę ręcznie usunąć tę linię za każdym razem, gdy chcę wysłać łatkę.

dzięki.

+0

'git log -S 'Mon Sep 17 00:00:00 2001' --all -p --source --reverse -. ": (exclude) t'' pokazuje, że to Hamano popełnił błąd, który wprowadził magiczną datę, ale nie mówi nic, dlaczego został wybrany. Znacznik czasu UNIX również nie wydaje się być specjalnym numerem: '1000677600', chociaż jest bardziej elegancki niż ciąg znaków. –

+0

Również SHA-1 jest tym z zatwierdzenia, ale jest nieco bezużyteczne, ponieważ SHA-1 zmieni się po zastosowaniu z nowym zatwierdzeniem committer i parent. –

Odpowiedz

15

Od git help format-patch

DYSKUSJI Plaster wyprodukowany przez git-formatu plastra jest w formacie skrzynki UNIX, z stałą „magia” stemplem czasowym, aby wskazać, że plik jest odtwarzany Format-łaty raczej niż prawdziwej skrzynki, tak jak poniżej:

 From 8f72bad1baf19a53459661343e21d6491c3908d3 Mon Sep 17 00:00:00 2001 
     From: Tony Luck <[email protected]> 
     Date: Tue, 13 Jul 2010 11:42:54 -0700 
     Subject: [PATCH] =?UTF-8?q?> > [IA64]=20Put=20ia64=20config=20files=20on=20the=20?= 
     =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig=20diet?= 
     MIME-Version: 1.0 
     Content-Type: text/plain; charset=UTF-8 
     Content-Transfer-Encoding: 8bit 
4

wyjście jest w formacie mbox. Możesz łatwo usunąć pierwszą linię za pomocą:

git format-patch --stdout <range> | sed 1d 

, a następnie wykonaj, jak chcesz z wynikiem.

Możesz również użyć git, aby wysłać wiadomość e-mail. Spróbuj:

git send-mail --smtp-server=<your server> *.patch 

Zobacz GIT Send-Mail Manpage dla wszystkich opcji.

3

jako dodatek do Fredrik's answer, oto kilka istotnych komentarzy Junio ​​Hamano:

"Mon Sep 17 00:00:00 2001" to tylko fałszywy losowa data aby Unix Od linii rozpoznawalnej przez wspólną MUA i nie ma nic do zrobienia z twoimi obiektami commit. Prawdziwa data to nagłówek Date:.

I rzeczywiście kiedyś próbowała go zmienić na urodziny git'S (Thu Apr 7 15:13:13 2005 -0700) i przypominam, że okazało się, że skrypty niektórych ludzi (a może MUA) zostały złamane i opieką, co było przed „7 "... na linii Unix-From i odrzucił tę aktualizację.

"From $SHA1 $magic_timestamp" linia i inne wiersze nagłówka są tam, aby uczynić go wyglądać mbox

Linki: 1, 2, 3.

+0

+1 za wycenę Hamano. Ale chciałbym, żeby ktoś wyjaśnił, dlaczego wybrano tę * magiczną datę, lub jeśli była po prostu losowa. –

0

z wikipedii (https://en.wikipedia.org/wiki/September_17)

2001 - The New York Stock Exchange wznawia do obrotu po atakach z 11 września, najdłuższy zamknięcie od czasów Wielkiego Kryzysu.

może tylko zbieg okoliczności!