2009-06-01 11 views
9

Me gustaría combinar dos o más directorios en un repositorio git. Estos repositorios están lógicamente vinculados pero pertenecen a diferentes rutas del sistema de archivos, , p./etc/httpd y /var/named/chroot/var/named ambos contienen datos de host virtual que me gustaría administrar como un todo, pero no puedo vincularlos.Mantenimiento de directorios no relacionados en un repositorio git

Tengo asked the git mailing list pero no tuve suerte.

Sugerencias?


Actualización: que no utilizan este mecanismo para la implementación de código, sólo parece que es una forma muy conveniente de:

  • seguimiento de los cambios que se van produciendo, por lo que puede muy fácilmente git checkout a un punto estable anterior conocido y evento git bisect problemas de configuración.
  • organizando cambios en un directorio separado y luego extrayendo de ese directorio cuando llega el momento de realizar el cambio.
+0

Hola Robert, ¿encontraste alguna manera de obtener dos directorios no relacionados en un único repositorio de GIT? Pensé que los enlaces simbólicos serían agradables, pero en OSX GIT no los respeta. –

+0

Nada hasta el momento, no. –

+0

Bien, gracias por eso. +1 por la pregunta por cierto ... –

Respuesta

2

La mejor manera de hacerlo es escribir un script que implemente los archivos y usar Git para administrar el origen del proyecto. Si tiene necesidades más sofisticadas, las herramientas de administración como Puppet se integran con el control de versiones.

Las cajas directas de Git no son una buena forma de realizar la implementación; no fue diseñada para esto. Puede evitar el problema de tener repositorios en los sistemas de destino mediante el recurso de exportación, pero por diseño, Git no almacena datos de permisos/ACL completos para los archivos.

+0

Gracias por la respuesta. En realidad, no me 'entrego' usando git, simplemente tengo/etc configurado bajo control de versión, y lo clono en cambios de escenario, y luego lo hago cuando es necesario. Hago esto más para el historial y el seguimiento que para la implementación. –

+2

Probablemente valga la pena echar un vistazo a etckeeper, y luego pensar en los archivos de configuración de servicio como casos especiales. etckeeper ejecuta un repositorio para/etc (DVCS de su elección) y mejora el administrador del paquete de distribución para trabajar con él. –

+0

Parece intrigante, voy a echar un vistazo. –

2

Quizás podría configurar un repositorio de Git con múltiples ramas disjuntas, una para cada árbol de directorios distinto que desea rastrear. No estoy seguro de si esta disposición satisfaría todos sus requisitos, pero le permitiría mantener los diferentes directorios en el mismo repositorio.

+0

¿Cómo configuraría un repositorio GIT con "múltiples ramas disjuntas?" Disculpe mi ignorancia ... –

+0

@yar: consulte "Creación de nuevas ramas vacías" en el libro de Git: http://book.git-scm.com/5_creating_new_empty_branches.html –

Cuestiones relacionadas