Specchio github su Gitlab


11

In un gitlab locale ho creato una copia del progetto nova ( https://github.com/openstack/nova ).

Come mantenere sincronizzato il repository nova locale con github, aggiornandolo forse una volta all'ora o al giorno?

Vorrei una soluzione simile a quella descritta qui per bitnami: http://wiki.bitnami.com/Applications/BitNami_GitLab#Keeping_in_sync_with_the_GitLab_repository_at_GitHub

(Ho usato Devstack per installare Openstack.)

Risposte:


6

GitLab ora ha questa funzione integrata!
Poiché GitLab EE 8.2 è supportato . Evviva!

Estrarre da un repository remoto

È possibile impostare un repository in modo che i relativi rami, tag e commit vengano aggiornati automaticamente da un repository upstream.
...

Quando si crea un nuovo progetto, è possibile abilitare il mirroring del repository quando si sceglie di importare il repository da "Qualsiasi repo per URL". Immettere l'URL completo del repository Git da cui estrarre e fare clic sulla casella di controllo Repository mirror .

Mirroring automatico GitLab

Per un progetto esistente, è possibile impostare il mirroring del pull visitando le impostazioni del progetto ➔ Repository e cercando la sezione "Pull from a remote repository". Seleziona la casella "Mirror repository" e premi Salva modifiche in fondo.
...


1
Il loro esempio usa gitlab, l'ho seguito esattamente tranne che ha sostituito quella parte con Github, e l'aggiornamento non finisce mai ...
MarcusJ

@MarcusJ Esattamente lo stesso qui, hai trovato una soluzione?
MemphiZ,

È passato un po 'di tempo da quando ho dovuto farlo, ma penso che quello che ho fatto sia stato usare l'URL ssh nel formato di ssh: //git@gitlab.com: UserName: RepoName.git
MarcusJ

Ho appena fatto questo lavoro, passare da github a gitlab è facile se il tuo repository è pubblico, basta incollare questo URL nelle impostazioni di gitlab:, https://github.com/yourGithubUserName/repoName.gitquindi scegliere il metodo Password nella casella combinata e lasciare vuota la casella di testo della password
knocte

4

Se non hai mai bisogno di commit locali, la seguente ricetta funzionerà:

Clonare il repository con --mirror:

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

Quindi in un cronjob, lo fai per un aggiornamento orario:

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

I --mirrorimposta i refspecs in tal modo un che recupera successive verranno aggiornare tutti arbitri locali, in modo che non c'è bisogno di unire le modifiche in. Naturalmente questo non significa che impegna spinto a quella dei pronti contro termine si perdono.


Questo non sembra rispondere alla domanda, ovvero ottenere un mirror in GitLab.
Ken Williams,



0

Puoi farlo usando cron job .

Nel tuo terminale digita crontab -e(per modificare il tuo crontab) e aggiungi una nuova riga in fondo con il seguente.

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

Eseguirà un clone ogni giorno a mezzanotte.


Spero siano aggiornamenti incrementali. non è necessario scaricare di nuovo tutto.
user186107
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.