Mantengo dos repositorios git diferentes que necesitan compartir algunos archivos, y me gustaría que los commits en un repositorio aparezcan en el otro. ¿Cuál es una buena manera de hacer eso para el mantenimiento continuo en cada repositorio?¿Cómo puedo sincronizar archivos en dos repositorios git diferentes (no clones) y mantener el historial?
He sido uno de los responsables del perlfaq (Github), y recientemente asumí el papel de mantener la documentación central de Perl, que también está en git.
Mucho antes de comenzar a mantener el perlfaq, vivía en un repositorio de control de fuente separado. Hace poco convertí eso a git. Periódicamente, uno de los perl5-porters sincronizaría los archivos compartidos en el repositorio de perlfaq y el repo de perl. Desde que cambiamos a git, hemos sido un poco perezosos al convertir las herramientas, y ahora soy el que hace eso. Por el momento, los dos repos se mantendrán separados.
Actualmente, para sincronizar la AYUDA para una nueva versión (mensual) de Perl, estoy casi da vergüenza decir que simplemente copio los perlfaq * .pod archivos en el repositorio perlfaq las cuales cubrirás en el repositorio Perl . Eso pierde historia, etc. Además, a veces alguien hace un cambio en esos archivos en el repo de perl y termino sobrescribiéndolo (sí, ¡marque git diff
idiota!). Los archivos no tienen las mismas rutas en el repositorio, pero eso es algo que podría cambiar, creo.
Lo que me gustaría hacer, en el universo mágico de los arco iris y los ponies, es extraer los objetos del repositorio perlfaq y aplicarlos en el repositorio de perl, y viceversa, para que el historial y los identificadores de confirmación correspondan en cada.
- parches creación de obras, pero también es mucho trabajo para su gestión
- submódulos de Git parece que sólo funcionan para tirar en todo el repositorio externo
- no he encontrado algo así como los archivos externos de SVN, pero que iba a funcionar en ambas direcciones de todos modos
- me gustaría simplemente ir a buscar objetos de una y les cereza recoger en la otra
¿Qué es una buena manera de manejar esto?
Posible duplicado de [Cómo mover archivos de un repositorio git a otro (no a un clon), preservando el historial] (http://stackoverflow.com/questions/1365541/how-to-move-files-from-one -git-repo-to-another-not-a-clone-preservation-history) – dr0i
No es realmente un duplicado.Pregunto sobre la sincronización con el desarrollo continuo en dos repositorios diferentes en lugar de un movimiento de una sola vez. –
Ok, pero como parece que no hay una respuesta simple a eso, ¿qué hay de escribir la respuesta en "duplicado" y usar un git hook para ejecutar ese script? – dr0i