2013-01-25 7 views
5

Stavamo usando bazaar-vcs da alcuni anni ma abbiamo deciso di migrare a git a causa di alcuni bug fastidiosi di lunga data e fermato lo sviluppo di bzr.Migrare il bazaar a git con commit-properties per collegare bug corretti

Durante l'utilizzo di bazaar, abbiamo utilizzato estensivamente la funzione "metadati di bug tracker" di bazaar (http://doc.bazaar.canonical.com/bzr.dev/en/user-reference/bugs-help.html). Quindi ogni commit di bug-fix includeva l'ID per l'id-mantis-bug corrispondente in modo da avere il collegamento tra source e mantis.

nostro commit-messaggio non include la mantide-id, abbiamo usato solo il "metadata-funzione":

enter image description here

E 'molto importante per noi che indossiamo il `t perdiamo queste informazioni in modo Ho bisogno di una soluzione per la migrazione di questo bug-link in qualche modo.

Ho già provato a esportare/importare la nostra repository bazaar in git utilizzando i comandi/fast-export-import veloce:

bzr fast-export --no-plain --rewrite-Tag-nomi/var/www/source_branch/| git fast-import

Purtroppo ho il seguente errore:

fatal: This version of fast-import does not support feature commit-properties. 

Tuttavia, se si utilizza l'opzione --plain invece di --no-plain le opere di importazione, ma perdiamo tutte le connessioni ai nostri bug

C'è qualche soluzione/soluzione alternativa per migrare da bzr a git senza perdere tutti questi collegamenti di bug che sono così importanti per noi?

[Modifica]: Ho appena analizzato il formato di file fast-import/fast-export che è molto semplice. Dovrebbe essere possibile scrivere degli script per modificare il file e spostare le righe (bug di proprietà ...) nella corrispondente riga del messaggio di commit. Tuttavia, se c'è una soluzione pronta all'uso sarei felice di sentirlo :)

risposta

2

Git Fast-import non supporta le proprietà dei metadati quindi non c'era modo di migrare queste informazioni solo con gli strumenti esistenti.

Poiché non ci sono state risposte e perdere tutti questi bug-id non era un'opzione per noi, ho scritto uno stream-rewriter di esportazione rapida che è in grado di riscrivere lo stream in un formato comprensibile a git ma con tutti i nostri bug id informazioni incluse.

Il C# masterizzatore funziona eseguendo le seguenti operazioni:

  1. Parse impegna dal flusso di input
  2. Verificare se un commit contiene un bug proprietà Command
  3. analizzare il problema con ID e modificare il commit-messaggio con l'insetto id estratta
  4. escludere altre supportato bzr-fastexport solo comandi ("caratteristica", "ramo struttura nick"))

Ulteriori informazioni su questo rewriter + il codice può essere trovato qui: http://www.fusonic.net/en/blog/2013/03/26/migrating-from-bazaar-to-git/

+0

Qualche possibilità di pubblicare un binario? Narry un ambiente C# nel posto. – Kieveli

1

Avevo un bisogno simile.Ho provato il rewriter di David, ma ha prodotto l'output su cui git import sarebbe fallito. Ho il sospetto che sia stato un piccolo bug nel rinominare alcuni file in un commit.

Mi sono reso conto che potrebbe essere più semplice modificare semplicemente 'bzr fast-export --plain' per fare solo ciò che volevo.

Ho archiviato il bug upstream (bzr fast-export) a LP: #1606973 e ho allegato una soluzione che funzionava per me. Dopo aver modificato fastimport/exporter.py, ho appena fatto:

bzr fast-export --git-branch=master --plain | git fast-import 
Problemi correlati