Domanda

C'è un flusso di lavoro efficiente per rispecchiare un progetto che è ospitato principalmente su bitbucket utilizzando Hg, a GitHub?

È stato utile?

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.

hg-git

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:

  1. 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.

  1. dulwich se non è già:. pip install dulwich

  2. Creare un nuovo repository su GitHub vuoto, ad esempio https://github.com/ utente / git-specchio .

  3. 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).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top