Espejo github a Gitlab


11

En un gitlab local, creé una copia del proyecto nova ( https://github.com/openstack/nova ).

¿Cómo mantengo el repositorio nova local sincronizado con github, actualizándolo tal vez una vez por hora o por día?

Me gustaría una solución similar a la que se describe aquí para bitnami: http://wiki.bitnami.com/Applications/BitNami_GitLab#Keeping_in_sync_with_the_GitLab_repository_at_GitHub

(Usé Devstack para instalar Openstack).

Respuestas:


6

¡GitLab ahora tiene esta característica incorporada!
Desde GitLab EE 8.2 es compatible . ¡Hurra!

Tirando de un repositorio remoto

Puede configurar un repositorio para que sus ramas, etiquetas y confirmaciones se actualicen automáticamente desde un repositorio ascendente.
...

Al crear un nuevo proyecto, puede habilitar la duplicación del repositorio cuando elija importar el repositorio desde "Cualquier repositorio por URL". Ingrese la URL completa del repositorio Git para extraer y haga clic en la casilla de verificación Repositorio espejo .

Reflejo automático de GitLab

Para un proyecto existente, puede configurar la extracción de espejo visitando la Configuración ➔ Repositorio de su proyecto y buscando la sección "Extracción desde un repositorio remoto". Marca la casilla "Repositorio espejo" y presiona Guardar cambios en la parte inferior.
...


1
Su ejemplo usa gitlab, lo seguí exactamente, excepto que reemplacé esa parte con Github, y la actualización nunca termina ...
MarcusJ

@MarcusJ Exactamente lo mismo aquí, ¿encontraste una solución?
MemphiZ

Ha pasado un tiempo desde que tuve que hacer esto, pero creo que lo que hice fue usar la URL de ssh en el formato de ssh: //git@gitlab.com: UserName: RepoName.git
MarcusJ

Acabo de hacer que esto funcione, pasar de github a gitlab es fácil si su repositorio es público, simplemente pegue esta URL en la configuración de gitlab:, https://github.com/yourGithubUserName/repoName.gitluego elija el método de contraseña en el cuadro combinado y deje el cuadro de texto de contraseña en blanco
toque el

4

Si nunca necesita confirmaciones locales, la siguiente receta funcionará:

Clonar el repositorio con --mirror:

git clone --mirror https://github.com/openstack/nova.git

Luego, en un cronjob, haces esto para una actualización por hora:

0 * * * * cd /path/to/nova.git && git fetch

Los --mirrorconjuntos hasta los refspecs de tal manera que las recuperaciones posteriores se actualizará todos los árbitros locales, por lo que no es necesario para combinar los cambios. Por supuesto que sí significa que compromete empujados a la cesión temporal se pierden.


Esto no parece responder la pregunta, que es obtener un espejo en GitLab.
Ken Williams


0

Crear un trabajo cron para actualizar el repositorio


¿Cómo configurar en gitlab?
user186107

2
Actualice su pregunta con los detalles que necesita, lo que ha intentado y cuál es el problema exacto.
Drew Khoury

0

Puede hacer esto usando trabajos cron .

En su terminal, escriba crontab -e(para editar su crontab) y agregue una nueva línea en la parte inferior con lo siguiente.

* 0 * * * git clone ssh://username@hostname:port/repo

Ejecutará un clon todos los días a medianoche.


Espero que sea actualizaciones incrementales. No es necesario descargar todo de nuevo.
user186107
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.