Tengo varios entornos diferentes en los que trabajo y varios conjuntos diferentes de archivos de puntos que uso en cada uno.
Considere el ejemplo (escenario simplificado). Tengo 3 ambientes:
y tengo algunos dotfiles, que quiero replicar en diferentes entornos.
.tmuxrc
--> escritorio de trabajo , servidor de trabajo , escritorio de casa.fish/
--> hogar-escritorio.subversion/
--> escritorio de trabajo , servidor de trabajo.zshrc
para cada escritorio de trabajo , servidor de trabajo y escritorio doméstico.vimrc
para escritorio de trabajo y servidor de trabajo , y otro .vimrc
para escritorio domésticoMás tarde, me gustaría cambiar las cosas para tener uno .vimrc
para todas partes (cuando actualice mi homeone para usar vundle y rompa la compatibilidad con python de vim en el trabajo).
Debe admitir la especificación de diferentes archivos para diferentes entornos.
Debe ser compatible con algunos archivos que se comparten en algunos entornos
Debe evitar que tenga que copiar archivos manualmente y luego vincularlos de nuevo
Debe comprometerse con el control de versiones cuando se activa
Debería extraerse del control de versiones cuando se llama a una actualización.
Debería admitir git
Sería bueno si admitiera otro control de versión (como SVN y Hg)
Sería bueno si su archivo de configuración para especificar qué archivos llegaron a qué entornos tomaron una lista de nombres de host, pero existen otras soluciones.
No importa si depende de algo (muchas de las herramientas de administración de .dotfile que vi anunciadas no dependen de nada más que del shell)
Debe funcionar en todas las versiones de Linux (pero realmente no me importa Mac).
Debe ser gratuito y de código abierto.
Observé detenidamente RCM , pero no estoy seguro de que cumpla con mis requisitos de control de versiones. También eché un vistazo más breve a GNU STOW y Dotbot .
Hay vcsh que hace una magia loca con múltiples repositorios de git que tienen su hogar como directorio de trabajo, y los directorios de sus git están separados. Pero parece demasiado complejo para mis necesidades, solo mantengo un repositorio de git en otro lugar de mi sistema y simultaneo manualmente lo que necesito.
El wiki de arch linux tiene un gran artículo sobre dotfiles .
¿Por qué no usar secuencias de comandos bash o python simples? Podría tener en su VCS uno y una variante de cada uno de los archivos .que necesita controlar, todo en un solo directorio, y dos scripts simples save_env y set_env más un archivo .env en cada sistema home.
:wdesk.
wserv.
set_env
establecería el .env y sobrescribiría los .files con el env . versiones y probablemente desee activar una nueva lectura de ellas con source
o el equivalente para el archivo en cuestión .save_env
usaría el valor .env para sobrescribir el env apropiado . archivos con los actuales. Luego, puede revisar cualquier cambio y comprometerse con su VCS.Ejecutando sus requisitos:
marcos catherine blanco
espeluznante
vcsh pull
actualizará sus archivos de puntos.espeluznante
marcos catherine blanco
espeluznante
marcos catherine blanco