2011-10-17 16 views
5

Ho una mail con N allegati nel formato 000X-xxxx.patch. Vorrei applicare tutte le patch sul mio master, ma vorrei che tutti i commit fossero separati, come l'autore originale li ha commessi. Compreso il messaggio di commit, ovviamente.Qual è il modo più semplice per applicare git serie di patch da Thunderbird

Metodo 1: Aprire l'e-mail, fare clic su Salva come, xxx.eml e poi:

git am xxx.eml 

Il risultato è ok, ma tutto è schiacciato in un commit. Non accettabile.

Metodo 2. Tutti gli allegati vengono salvati in una cartella, quindi:

git am 000*.patch 
Patch format detection failed. 
git apply 000*.patch 
(does nothing) 

Questo non funziona. Consigli? Grazie.

+0

Ci sono menzioni di un'estensione di esportazione mbox all'indirizzo: https://support.mozilla.org/en-US/questions/1131636 | https://addons.mozilla.org/en-GB/thunderbird/addon/importexporttools/ ma non sembra essere compatibile con l'attuale Thunderbird 52.6.0. –

risposta

2

Leggendo la pagina man git am, sembra che il messaggio di commit sia formato dalla riga Subject: e dal corpo del messaggio, il che significa che non si sarà in grado di ricreare la sequenza originale di commit (cioè , non c'è modo per recuperare il messaggio di commit che l'autore ha usato per ogni singolo commit) ... anche se secondo la pagina man, git am è pensato per funzionare con patch incorporate, non con patch incluse come allegati, quindi sono sorpreso che sia fare la cosa giusta anche nel metodo 1.

Se sei disposto a scartare i messaggi di commit, dovresti essere in grado di salvare le patch in singoli file e solo git apply ... in sequenza.

+0

Hmmm ma git apply non fa nulla per me. – lzap

+0

Ok si applicano entrambi git e git am ha funzionato su allegati separati. Ho appena avuto un ">" all'inizio della prima riga. Quindi Thunderbird in qualche modo lo ha incasinato. Risolto! – lzap

+0

Felice di sentirlo! – larsks

0

Per quanto ho potuto trovare, Thunderbird non ha un modo sensato per salvare più e-mail come singoli file allo stesso tempo. Puoi salvarli uno alla volta, però, e questo funziona per piccoli set di patch.

Ironia della sorte, ho scoperto per caso il modo più semplice inviando patch di Linux a un collega che non segue le mailing list. Inoltrate loro A voi stessi (come allegati).

  1. selezionare tutti i messaggi di posta elettronica di patch
  2. inoltrarli a te stesso come allegati
  3. Salva tutti gli allegati in una directory appropriata
  4. applicano le e-mail. per esempio "git am my_patch_dir/[PATCH -v5 *"
+0

Almeno Thunderbird 52.1.0 sembra essere in grado di salvare più e-mail: basta contrassegnare più e-mail e dire "Salva come ..." nel menu di scelta rapida. Ciò consente di selezionare una cartella in cui tutte le e-mail contrassegnate verranno salvate. – falstaff

+0

A meno che non sia stato modificato, utilizzando "Salva con nome" su più e-mail si ottiene un file contenente tutte le e-mail, questo grande file non funziona affatto con git am, AFAICT –

Problemi correlati