Esiste un flusso di lavoro efficiente per il mirroring di un progetto che è principalmente ospitato su bitbucket utilizzando Hg, su github?Mirroring di un progetto HG da Bitbucket a Github
risposta
È possibile utilizzare uno strumento come hg-git
a:
- impostare un repository Git da qualche parte che si ha accesso alla spinta,
- e quindi eseguire
hg push [path]
all'interno del tuo progetto. Per 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://[email protected]/schacon/hg-git.git
$ hg push
Questo convertirà tutti i nostri dati Mercurial in oggetti Git e spingerli fino al server Git.
È inoltre possibile inserire tale percorso nella sezione di.hg/hgrc
e quindi premere per nome.
Grazie. Ho dato una breve occhiata a hg-git, ma vedo che è ancora in uno stato alfa. Ho provato a installarlo su cygwin, ma al momento sto avendo qualche problema di stabilità. Se questo funziona, è sicuramente uno strumento utile nel flusso di lavoro. – Santa
Se si utilizza Mercurial per un progetto si può rapidamente e facilmente fare uno specchio git del vostro progetto in modo che gli utenti git possono contribuire. Ho creato un tutorial sull'uso di hg-git
per gestire i mirror Mercurial su GitHub.
Riguarda come iniziare con un account GitHub, come avviare un progetto da Mercurial a GitHub e come accettare i contributi (richieste pull) da GitHub. Ecco un collegamento al post del blog: http://hgtip.com/tips/advanced/2009-11-09-create-a-git-mirror/
A partire da luglio 2013 è disponibile lo BitSyncHub un servizio Web per automatizzare questo processo tramite un hook di post-ricezione BitBucket. Dovrai comunque concedere al servizio il permesso di scrittura per il tuo repository GitHub (aggiungi bitsynchub come contributore).
più Una soluzione a disposizione per convertire rapidamente: https://github.com/frej/fast-export
Aggiungi git-remote-hg al percorso bin. Quindi è possibile eseguire il mirroring come mentioned on github.
git clone --mirror hg::https://bitbucket_repo
poi, entra nella tua repo clonato
git remote set-url --push origin https://github.com/exampleuser/mirrored
infine, sincronizzare il tuo specchio
git fetch -p origin
git push --mirror
Questa è molto meglio della risposta accettata in quanto il risultato sarà un vero mirror con tutti i tag e i rami. – Kentzo
Vedi anche http://stackoverflow.com/questions/883452/git-interoperability- with-a-mercurial-repository – wimh