Etckeeper es una gran herramienta para realizar un seguimiento de los cambios en sus archivos de configuración /etc
. Algunas cosas clave al respecto realmente se destacan. Se puede usar con una amplia variedad de VCS: git, mercurial, darcs o bzr. También realiza confirmaciones automáticas a diario y cada vez que instala, elimina o actualiza el paquete. También realiza un seguimiento de los permisos de archivos y los metadatos de propiedad del usuario / grupo.
También me gustaría mantener mis "archivos de puntos" en mi directorio de inicio bajo control de versión también, preferiblemente bazar. ¿Alguien sabe si existe una herramienta como etckeeper para este propósito?
Peor de los casos, me imagino que una tarea programada sencilla correr bzr add && bzr ci
una vez o dos veces al día junto con la adición ~/Documents
, ~/Music
etc a la .bzrignore
Cualquier persona que ya están haciendo algo similar con un guión?
Si bien preferiría el bazar, otras opciones podrían ser interesantes.
fuente
bzr
ciertamente no es el camino a seguir en 2015.Respuestas:
No sabía si había algo que hiciera esto, así que preparé un código para lograr exactamente lo que quieres usando mi repositorio aquí: http://github.com/robertmassaioli/config-files
Tengo un archivo que dice dónde pertenecen todos los archivos y el programa generate_links simplemente los pone a todos allí. Si sabe lo que está haciendo y puede compilar algún código de Haskell, entonces es realmente simple y fácil. Aunque ten en cuenta que realmente fue hecho para mi uso personal.
fuente
Bueno, seguí adelante e hice esto manualmente hasta encontrar una mejor solución. Así que bien podría explicar lo que hice.
Primero hice un
bzr init ~
, pero lo siguiente que hice fuebzr ignore "*"
. Decidí que no quería mantener todo bajo control de versiones. Simplemente no valió la pena, especialmente cuando consideras que hay algunas cosas allí que realmente no deberías guardar en vcs como tus llaves. Entonces tuve que buscarbzr add
los archivos específicos que quería. También puede agregar excepciones a.bzrignore
. Las expresiones regulares de Python también son útiles allí. Lo estoy manteniendo bastante delgado por ahora. Si todo va bien, podría agregar todo~/.config
y~/.gconf
también.También escribí un script rápido que ejecuto como un trabajo cron. Comprueba si los archivos han cambiado, y si es así, una confirmación automática:
fuente
Convertí todo mi
~
directorio en un repositorio de Bazaar. El almacenamiento de metadatos no es un problema para los archivos en el directorio de inicio: todo es propiedad de la misma cuenta y grupo, ybzr
ya almacena el bit de ejecución.Le agrego manualmente los archivos "interesantes" (no quiero, por ejemplo, que mi colección de música o el caché de Firefox estén bajo control de versión), pero si desea automatizar esto con un script, creo que es la solución simple de hacer
bzr add && bzr ci
en directorios seleccionados o en la salida de unfind
comando simplemente hará el trabajo.fuente
Mantengo mis archivos zsh y vim en git, pongo github, en diferentes repositorios:
para zsh, por ejemplo, creé ".zsh" y puse zshrc y zshenv en él, además de un script para vincular zshrc a ~ / .zshrc y zshenv a ~ / .zshenv, algo así.
Así que hago
para .vim, es casi lo mismo, excepto que uso submódulos para complementos, con patógenos, así que agregué eso en init.sh
y cuando quiero agregar un complemento vim, lo hago
por ejemplo.
ok, requeriría demasiado trabajo si tiene más de unos pocos directorios de puntos que desea administrar, pero nada le impide ponerlos todos en el mismo directorio, o separados por actividades (activado para todos los editores gráficos, uno para actividades web ...) más o menos. de todos modos, eso es lo que hice, así que solo mis dos centavos :).
fuente
Utilizo una solución que no es automática como etckeeper (tengo que confirmar manualmente), pero me ha funcionado bien. No está tan desarrollado como me gusta, pero funciona.
He escrito mi propia utilidad que es similar a GNU Stow , ya que stow no hizo todo lo que quería. Lo llamo Stow in Home . Cuando se ejecuta, busca un directorio llamado "HOME". Luego toma todo lo que hay debajo de ese directorio y lo vincula a la ubicación correspondiente en $ HOME, creando directorios según sea necesario. También traducirá los nombres de archivo: si un archivo comienza con una '_', se reemplazará con una '.'. Hice esto porque es mejor para editar mis archivos de puntos cuando no están ocultos (verlos en las listas de directorios de forma predeterminada). Luego, los pondría en el nombre que su aplicación espera.
Entonces, tengo varios repositorios git para mi configuración. Solo pongo archivos de puntos que edito personalmente en ellos. La ventaja de esto es que puedo tener un repositorio para archivos de puntos que puedo compartir con otros (como mi configuración de Emacs) y uno para otros que son privados (por ejemplo, mi configuración ssh, con nombres de host y demás para el trabajo). El enlace simbólico con estiba en el hogar pone todo en el lugar correcto, pero el control de fuente para cada uno puede ser separado.
Me ha funcionado bien. Realmente no hay ninguna razón por la que no pueda configurar algo para hacer confirmaciones automáticamente. O mueva todos los archivos de puntos a los repositorios apropiados y aún use stow en casa. Pero así es como he hecho las cosas.
fuente
¿No puedes agregar el
dot files
al repositorio utilizado en Etckeeper?fuente
/etc
?Lo hice copiando todos mis archivos de puntos que me gusta mantener bajo control de origen en una carpeta llamada "archivos de puntos" en mi directorio / home /. Por supuesto, esto significa mantener duplicados y copiar de un lado a otro cuando sea necesario, pero creo que esta es la solución más fácil para mí.
fuente
Mantengo mis archivos en un subdirectorio y hago enlaces simbólicos. Tengo un script que automatiza esto. Puede consultarlo todo en http://code.google.com/p/samking-config-files/source/browse/
fuente