2009-12-06 5 views
5

Actualmente uso la subversión realizar el seguimiento de los cambios de configuración de Emacs y sincronizar mi directorio '.emacs.d' a diferentes plataformas.el que el control de versión del sistema o plataforma es el mejor para el seguimiento y la distribución de las configuraciones personales de Emacs?

Una gran cantidad de paquetes como Ido, Muse o el modo Org son parte de las distribuciones de Emacs que vienen con Debian o carbono Emacs (OSX). Pero otros paquetes que también estoy usando no son parte de esas distribuciones, así que tengo que agregarlos a mi repositorio personal de subversión manualmente.

La ventaja es que ahora soy capaz de revisar la configuración de mi entera '.emacs.d' donde quiera trabajar. La desventaja es que tengo que rastrear esos paquetes en busca de actualizaciones y cada vez que hay una nueva actualización, tengo que actualizar mi propio repositorio manualmente.

es que hay una mejor manera de integrar mis propias configuraciones y paquetes con los de la 'comunidad'? Me di cuenta de que muchas personas usan github.com por ese motivo.

¿Debo mejor utilizar git en lugar de la subversión para sincronizar y compartir mis configuraciones de Emacs con el de la comunidad? Y ese medio que mejor Debo cambiar a github.com en lugar de usar mi propio servidor de la subversión para acercarse a otros usuarios de Emacs en relación con el intercambio y la distribución?

Respuesta

5

Cada vez que tenga que lidiar con algún problema de "distribución", sería mejor que considere un Distributed Version Control System (DVCS).

Con Git, por ejemplo, podría organizar sus paquetes como submodules dentro de un proyecto de configuración de emacs principal, a los que se hace referencia como un submódulo dentro de su propio proyecto.

esta manera, usted sólo tiene que

git submodule update --recursive 

vez en cuando para asegurarse de conseguir los últimos paquetes referenciados por su proyecto de configuración central.
Nota: la inicialización recursiva de los submódulos es un poco complicado: ver este SO question for more.

+1

Secundado: cualquier dvcs (ya sea hg o git) será mejor. – Almad

+1

Thirded. ;-) Empecé, hace años, con mi .emacs.d en svn. No fue terrible, pero cambiar a git ha sido mucho mejor. – bendin

+0

Estoy de acuerdo con la respuesta básica, use un DVCS y, por cierto, git es una buena opción. Pero no recomendaría los submódulos para alguien que se mueve de un VCS tradicional (quizás heredado) a un DVCS porque los submódulos son un poco complejos. Potente, pero complejo. Vea mi respuesta a continuación para un enfoque alternativo a su situación y una discusión más elaborada. – pajato0

2

Yo personalmente uso (y recomiendo) git para almacenar archivos de Emacs. Sería una buena idea mirar http://github.com/technomancy/emacs-starter-kit. Es un conjunto grande de archivos emacs utilizados por muchas personas (más de 600 personas que miran el repositorio). Como se actualizan con bastante regularidad, obtienes nuevas versiones. También vale la pena mirar elpa que está destinado a facilitar la administración de paquetes de emacs.

También puede ver cómo tengo la intención de mantener a otro paquete de cambios juntos.

How to I combine two separate Git repositories?

2

Mientras Estoy básicamente de acuerdo con VonC, y estoy agradecido de que él trajo submódulos git a mi atención que no recomendaría a alguien familiarizado con VCS pero el puenteado a DVCS. Ahora disfruto mucho el uso de git y lo recomiendo de todo corazón, pero me ha costado mucho trabajo cruzar ese puente.

En cuanto a los métodos alternativos para hacer frente a software de la comunidad, también recomiendo de todo corazón ELPA paquetes no suministrados por Emacs. Las actualizaciones deben aplicarse manualmente, pero al menos ELPA proporciona un mecanismo que le permite saber si existen actualizaciones. Y también proporciona un buen andamio para agregar paquetes proporcionados por la comunidad no alojados por ELPA.

Por último, es posible que desee detallar cómo organiza sus paquetes según la plataforma. Intento mantener toda la personalización de mi plataforma (y por máquina) en el ceceo de Emacs integrado, de manera que comparto un solo conjunto de archivos de soporte controlado por fuente (* .el) en todas las principales plataformas con las que trabajo: Linux (Fedora y Ubuntu) , Mac OS X y Windows (nativo y cygwin).

+0

Puntos equitativos. +1 – VonC

Cuestiones relacionadas