2015-10-08 24 views
5

Ho una directory creata a livello locale: /home/Tegra.Impossibile utilizzare git send-email per inviare il codice sorgente e le patch

ho creato seguenti file all'interno di/home/Tegra:

hello_world.c hello_world_1.c hello_world_2.c 

Ogni file è incrementale modificata. Ho anche creato le patch come:

diff -u hello_world.c hello_world_1.c > hello_world_1.patch 
diff -u hello_world_1.c hello_world_2.c > hello_world_2.patch 
  1. Ora voglio inviare prima una e-mail git send-mail all'indirizzo di posta elettronica[email protected] che dovrebbe contenere hello_world.c file di

  2. allora voglio inviare seconda mail con un file come allegato hello_world_1.patch.

  3. Quindi voglio inviare la terza email con il file hello_world_2.patch come allegato.

Purtroppo, io non sono nemmeno in grado di fare il passo 1:

mio git è stato correttamente configurato con server smtp rilevanti TLS 587 porta.

ho cercato seguente comando:

git send-email --to [email protected] --subject My Hello hello_world.c 

ottengo l'errore seguente:

Cannot run git format-patch from outside a repository 

dove viene repository entrano in foto. Dovrei mantenere prima un repository del mio codice.

Modifica: Per la fase 1: Come da commenti qui sotto abbiamo bisogno di un repository:

  1. Creato un repository vuoto su Github: "miorepo"
  2. clonata sulla macchina locale. (Usando clone git)
  3. poi aggiunto il primo file "hello_world.c" nella directory/miorepo".
  4. Poi >> git aggiungere hello_world.c
  5. Poi >> git commit -m 'La mia prima fonte '
  6. Poi >> -u git push maestro origine
  7. Dopo di che, ho digitato: git send-mail [email protected] --subject = "[asdasdas] ASSD asdasd" hello_world.c

Ora ricevo un errore:

No subject line in hello_world.c ? at /usr/lib/git-core/git-send-email line 584 
+1

Sì. send-email creerà una patch da una modifica nel repository e la invierà. Devi puntarlo su un file o directory gestito da git. –

+0

Ciao @AndreasWederbrand, ho creato un repository vuoto su Github: "MyRepo", clonato sul computer locale, quindi aggiunto il primo file nella directory "/ MyRepo". Successivamente, ho digitato: git send-email [email protected] --subject = "[asdasdas] assd asdasd" hello_world.c Ora ricevo un errore: Nessuna riga dell'oggetto in hello_world.c? all'indirizzo/usr/lib/git-core/git-send-mail line 584. – Haswell

risposta

1

Then added the first file "hello_world.c" into the Directory /MyRepo".

prima assicurarsi di aver effettivamente commesso nulla nella vostra repo vuota clonato.

git add . 
git commit -m "new commit" 
git push 

In secondo luogo, il git send-email doc fa menzione:

--subject=<string> 

Specify the initial subject of the email thread. Only necessary if --compose is also set.

Assicurarsi di utilizzare --compose.

This format expects the first line of the file to contain the " Cc: " value and the " Subject: " of the message as the second line.

che avrebbe funzionato con un .patch, non la fonte stessa.
Vedere git format-patch, e "How to send patches with git-send-email" per un esempio più completo:

Per l'ultima commit:

git send-email -1 [email protected] --subject="[asdasdas] assd asdasd" 

In terzo luogo, una soluzione più semplice sarebbe quella di use git bundle. Questo genera un file che è possibile inviare in qualsiasi modo e dal quale il ricevitore può estrarre/clonare. Agisce (quel file) come un semplice repository git.

+0

Quindi http://status.bitbucket.org/git send-email -1' I say dovrebbe funzionare. Ma 'git bundle' è più facile. – VonC

+0

Sì, sono in grado di inviare l'email, tuttavia la riga dell'oggetto non è ciò che ho inserito in --subject, cambia nella riga che ho usato durante git commit -m "line" – Haswell

+0

Anche una [patch] viene aggiunta nella riga dell'oggetto . Il bundle git sarà in grado di risolvere questo? – Haswell