Lo que he aprendido: git en Emacs para la dominación mundial

Hoy voy a hablar del último descubrimiento que he hecho en el mágico mundo de Emacs. Resulta que tiene un sistema de control de versiones incluido que se llama VC, nombre original donde los haya. Pero eso no es todo, resulta que cuando instalas git se instala también git.el, un paquete para usar git desde Emacs, lo podemos encontrar en git/contrib/emacs. Cosas locas.

Como yo funciono simultáneamente y en contra de mi voluntad en Windows y GNU/Linux intentaré contar un poquillo como configurar el tema en ambos sitios. Como siempre, en GNU/Linux es megafácil y en Windows megadifícil. Pongámonos a ello.


Configuración

Lo fácil: git en Emacs en GNU/Linux

Como he dicho antes, al instalar git1 en GNU/Linux se instala el paquete de Emacs correspondiente, así que cuando abrimos un archivo que está bajo el control de git Emacs se da cuenta solito:

gitEmacs

Lo loco: git en Emacs en Windows

Como ya viene siendo la tradición, Windows nos complica la vida y nos hace jugar con el archivo de configuración de Emacs, nuestro querido .emacs. Antes de nada, acabo de descubrir un trucazo en Stackoverflow para localizarlo: hacer C-h v user-init-file.

Para no liarnos la manta, lo más simple es descargar los paquetes git.el y git-blame.el de aquí, darle el path a Emacs y decirle que los cargue. También tenemos que añadir el path del ejecutable de git como dicen aquí. Si usáis GitHub como hago yo, el ejecutable está en una carpeta muy loca tipo C:\Users\\AppData\Local\GitHub\PortableGit_\bin.

En cualquier otro caso intentad buscar git.exe por ahí a ver si tenéis éxito…

Tendríamos que añadir, por lo tanto, a nuestro .emacs lo siguiente:

Al loro con la doble barra que me he vuelto muy loca porque no me funcionaba y el problema era que había puesto barra simple, no seáis tan zopencos como yo.

Por último, nos queda añadir ese mismo path a las variables de entorno de Windows, porque si no nos dirá que no existe git. También necesitamos crear una variable de entorno GIT_AUTHOR_NAME cuyo valor sea nuestro nombre para poder commitear. Esto además nos da la ventaja de que podemos usar git desde la consola de Windows.

ACTUALIZACIÓN
Esto me ha estado dando problemas (fatal: empty ident name not allowed) así que me he buscado otra manera de solventar el problema. Cuando tengamos abierto en Emacs un archivo bajo control de versiones abrimos un momento el terminal desde ahí con M-x shell y hacemos lo siguiente:

git var -l

Ahí veremos las variables de git. Si GIT_AUTHOR_IDENT no está definido tenemos un problema. No os asustéis que se soluciona fácil. Hacemos como dice aquí:

git config --global user.name "Nuestro nombre"
git config --global user.email nuestroMail

Por qué Windows sabe cuáles son las variables de entorno de git y Emacs no lo sabe es algo que aun no he llegado a discernir.

Ahora ya está perfectamente configurado y podemos usarlo.

Uso

Es muy fácil de usar, empezamos haciendo M-x git-status y le seguimos el rollo, esto creará un buffer de git. Añadir un archivo es tan sencillo como M-x git-add-file y commitear M-x git-commit-file2. Nos abrirá una ventanita y dirá que hagamos C-c C-c cuando acabemos con nuestro mensaje de commit. Nos explica en todo momento qué tenemos que hacer, no tiene pérdida.

Pues nada más, ahora tenemos git integrado en Emacs y estamos un poco más cerca de la dominación mundial 🙂

Más

Git en Emacs

El manual de VC

Más sobre VC


  1. Una nota importante: parece ser que antes el paquete git.el se instalaba directamente al instalar git-core pero que en las versiones más recientes hay que instalar el paquete git-el 
  2. También podemos darle a a para añadir y c para commitear. 
Anuncios

Un pensamiento en “Lo que he aprendido: git en Emacs para la dominación mundial

  1. Pingback: Compilación: escribir en Emacs | Onda Hostil

¡Opina sin miedo! (Puedes usar Markdown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s