aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--_posts/2021-04-10-git-send-email-y-git-format-patch.md58
1 files changed, 58 insertions, 0 deletions
diff --git a/_posts/2021-04-10-git-send-email-y-git-format-patch.md b/_posts/2021-04-10-git-send-email-y-git-format-patch.md
new file mode 100644
index 0000000..5cb94b3
--- /dev/null
+++ b/_posts/2021-04-10-git-send-email-y-git-format-patch.md
@@ -0,0 +1,58 @@
+---
+layout: post
+title: Cómo enviar commits en forma de parches con git send-email y git format-patch
+date: 2021-04-10
+category: herramientas
+tags: git control-de-versiones email remoto
+---
+
+A veces queremos incluir cambios que hicimos en nuestro repositorio, sea
+local o remoto, a otro repositorio de otra persona. Esto se puede hacer
+eligiendo los commits que contienen estos cambios y convertirlos en parches.
+Estos son simplemente archivos que diferencian un archivo de otro, línea por
+línea. Un parche puede enviarse por cualquier medio electrónico, y el autor
+de otro repositorio puede aplicar dicho parche a su propio repositorio. Esta
+es una guía muy simple para crear y enviar estos parches.
+
+En tu repositorio, haz las modificaciones y commits que vayas a enviar como
+parches. Pueden ser tantos como requieras.
+
+Luego, configura las variables necesarias de send-email:
+
+ git config user.name <usuario> # Nombre del autor del commit
+ git config user.email <usuario>@texto-plano.xyz # Email del autor
+ git config sendemail.from "Usuario <usuario@texto-plano.xyz>" # Formato "From" para el correo
+ git config smtpuser <usuario> # Usuario en el servidor SMTP
+ git config smtpserver texto-plano.xyz # Servidor SMTP
+ git config smtpserverport 587 # Puerto del servidor
+ git config sendemail.smtpencryption tls # Encriptación TLS para el servidor
+ git config sendemailsuppresscc self # Recomendable, evita enviarte el parche a ti mismo
+
+Se pedirá la contraseña del servidor en cada instancia, salvo que se
+especifique la variable `sendemail.smtppassword` (inseguro).
+
+Luego, envía los commits que elijas con git send-email. En este caso, '-1'
+elige el último commit hecho desde HEAD. Es necesario especificar a quién
+enviarle los parches con '--to'.
+
+ git send-email -1 --to="Destinatario <destinatario@ejemplo.com>"
+
+Si todo salió bien, el destinatario debería tener todos los parches que
+elegiste en su casilla de correo.
+
+Para crear un archivo .patch individual, se usa git format-patch. De nuevo,
+'-1', por ejemplo, elige el último commit. Con '-o' se elige el directorio en
+el que van a quedar los parches.
+
+ git format-patch -1 -o /home/<usuario>
+
+Esta herramienta es útil por si se necesitan enviar los parches por otro
+programa de manera adjunta. También puede generarse el parche para usarlo de
+argumento con send-email.
+
+Más información (en inglés):
+
+- [Learn to use email with git!](https://git-send-email.io/)
+- [How to Use git send-email](https://www.freedesktop.org/wiki/Software/PulseAudio/HowToUseGitSendEmail/)
+- [Manpage de git send-email](https://git-scm.com/docs/git-send-email)
+- [Manpage de git format-patch](https://git-scm.com/docs/git-format-patch)
Un proyecto texto-plano.xyz