2009-07-18 10 views
10

Sto cercando di convertire un po 'di Mercurial, quindi cerco di convertire uno dei miei repository esistenti. Ho eseguito il seguente comando sul mio Mac:Come convertire il mio repository Git in Mercurial e portare i suoi tag

hg convert myrepos myrepos-hg 

Il comando importa con successo tutti i miei impegna, ma non portare con sé gli 8 o giù di tag che sono stati contrassegnati nel repository Git (né sono una delle rami per quella materia). C'è un parametro speciale che devo impostare affinché i miei tag vengano importati anche in Mercurial?

+1

Conversione git in mercuriale? Qui, leggi prima questa notizia: http://www.gksoft.com/a/fun/hal-ibm.html –

risposta

6

I tag sono tag di git leggeri o tag pieni di annotazioni? hg convert converte solo tag annotati, ma git di default crea quelli leggeri. Ho avuto questo problema durante la conversione di uno dei miei repository di recente. È possibile controllare quello che sono come segue:

git ls-remote --tags . 

Esecuzione hg convert convertirà solo i tag che finiscono con ^{}, quelli annotati. Hai 2 scelte:

  • di patch il git.py hgext convertire i file di estensione per convertire tutti i tipi
  • cambiare il vostro tag git ai tag annotati prima della conversione

Con un piccolo script di shell e la --force l'opzione per git-tag puoi annotare tutti i tuoi tag.

+0

Questo era il problema. Grazie per il consiglio! –

3

Questo è un problema piuttosto noto. È possibile provare l'applicazione di patch il seguente file /usr/lib/python2.6/site-packages/hgext/convert/hg.py (o dovunque è situato) cambiando questo:

extra = {'branch': self.tagsbranch} 

a:

extra = {'branch': 'default'} 

e quindi riconvertirlo.

EDIT: In uno sguardo più approfondito sullo stato delle cose sembra che possa essere difficile - non impossibile - fare quello che vuoi. Ancor di più per farlo correttamente.

Dal momento che hai solo 8 tag, prova a risparmiare il fastidio creando il file .hgtags a mano. Puoi capire cosa succede con 'hg convert' più tardi (terrò d'occhio anche i miei occhi).

Fortuna.

+0

Ho modificato il file come di consueto (si trovava in /Library/Python/2.5/site-packages/...), ma sfortunatamente non sta ancora convertendo i tag e creando il file .hgtags. –

1

Un suggerimento che ho visto in passato è utilizzare svn come passaggio intermedio. Sia git che hg hanno un'eccellente conversione svn bidirezionale.

Problemi correlati