Mirroring un progetto di HG da Bitbucket a Github
Domanda
C'è un flusso di lavoro efficiente per rispecchiare un progetto che è ospitato principalmente su bitbucket utilizzando Hg, a GitHub?
Soluzione
Si potrebbe utilizzare uno strumento come hg-git
a:
- impostare un repository Git da qualche parte che si ha accesso a spinta,
- e quindi eseguire
hg push [path]
all'interno del tuo progetto. Ad esempio:
$ cd hg-git # (a Mercurial repository)
$ hg bookmark -r default master # make a bookmark of master for default, so a ref gets created
$ hg push git+ssh://git@github.com/schacon/hg-git.git
$ hg push
Questo convertirà tutti i nostri dati Mercurial in oggetti Git e spingerli fino al server Git.
Si può anche mettere quel percorso nella sezione[paths]
di.hg/hgrc
e spingerlo ad esso per nome.
Altri suggerimenti
Se si utilizza Mercurial per un progetto che si può rapidamente e facilmente fare uno specchio git del vostro progetto in modo che gli utenti git possono contribuire. Ho creato un tutorial su come utilizzare hg-git
per gestire specchi Mercurial su GitHub.
Si estende su come iniziare con un account GitHub, come spingere un progetto da Mercurial a GitHub, e come accettare i contributi (richieste di pull) da GitHub. Ecco un link al post del blog: http: / /hgtip.com/tips/advanced/2009-11-09-create-a-git-mirror/
'git-remote-hg' è il ponte semi-ufficiale Mercurial dal progetto Git, una volta installato, consente di clonare, prendere e spinta da e repository Mercurial come se fossero quelli di Git:
git-remote-hg al percorso bin. Quindi è possibile eseguire il mirroring come menzionato su github .
git clone --mirror hg::https://bitbucket_repo
poi, entra nella tua clonato repo
git remote set-url --push origin https://github.com/exampleuser/mirrored
Infine, la sincronizzazione il vostro specchio
git fetch -p origin
git push --mirror
A partire dal luglio 2013 c'è BitSyncHub un servizio web per automatizzare questo processo attraverso un BitBucket post- ricevere gancio. Sarà necessario concedere l'autorizzazione di scrittura di servizio al repository GitHub però (add bitsynchub come contributore).
Sono la segnalazione da febbraio 2019. Ho appena incontrato questo problema, seguito @ di VonC suggerimento per l'uso hg-git , e riempito a pochi passi mancanti per farlo funzionare. Qui vi fornirò una guida più dettagliata:
- Installa hg-git clonando il suo repository da qualche parte e rendere la sezione 'estensioni' in il vostro ~ / .hgrc file di aspetto simile a questo:
[extensions]
hggit = [path-to]/hg-git/hggit
Ho trovato il maggior numero di istruzioni per l'installazione up-to-date nel repository di origine: https: // bitbucket .org / durin42 / hg-git . Quindi tenete d'occhio questo.
-
dulwich se non è già:.
pip install dulwich
-
Creare un nuovo repository su GitHub vuoto, ad esempio https://github.com/ utente / git-specchio .
-
Clone repository di origine hg, e spingerla verso lo specchio git:
$ hg clone https://bitbucket.org/user/hg-source
$ cd hg-source
$ hg push git+ssh://git@github.com/user/git-mirror.git
Una soluzione più disponibili per convertire rapidamente: https://github.com/frej/fast-export
È possibile utilizzare la Git-hg Specchio servizio per fare questo (tra cui il mirroring un repo GitHub a Bitbucket, o sincronizzazione bidirezionale).