2009-08-20 21 views
13

La mia azienda ha una base di codice grande in Surround SCM, che è stata migrata da SourceSafe alcuni anni fa. Cerchiamo di passare a qualcosa di più adatto alle nostre esigenze, ma ottenere la nostra storia da Surround si sta dimostrando una sfida.Importazione Git da Surround SCM?

Googling per importatori git, ho trovato a good tutorial on custom importers. Sembra che ci sia anche il supporto per svn, perforce e molti altri, ma senza Surround.

Sarebbe meglio solo scattare un'istantanea e avviare un nuovo repository git? O vale la pena scrivere un copione per avere più di 15 anni di storia del codice?

+0

Il collegamento agli importatori personalizzati è guasto. Potrebbe essere probabilmente sostituito da https://git-scm.com/book/en/v1/Git-and-Other-Systems-Migrating-to-Git#A-Custom-Importer. – harper

+0

Bello. Modificato per correggere. Grazie! –

risposta

4

In questo tipo di scenario, è possibile scrivere uno script, ma non per ottenere tutti la cronologia.

Vorrei solo consigliare l'importazione:

  • le major (per qualsiasi cosa più vecchio di un anno, o qualsiasi altra cosa periodo ti trovi bene che non sarà necessario l'esame per intero perché è così vecchio)
  • tutte le etichette (maggiori e minori) degli ultimi anni.

Tuttavia, la migrazione a Git richiede anche un lavoro per identificare i moduli o le applicazioni all'interno del repository centralizzato di Surround.
Cercando di importare tutti quei dati in uno repository Git sarebbe un errore, a meno che non si tratti di un sistema gigante che non può essere sviluppato in parti indipendentemente l'uno dall'altro (come il kernel Linux).

See:

4

Surround SCM ha uno SDK. L'ho usato per portare un repository da CVS a Surround. Anni dopo, un team stava esaminando il passaggio a SVN e ha chiesto se potevo migrare il repository. Ho trovato una soluzione che consisteva nel percorrere il repository Surround e creare un database intermedio in memoria, quindi elaborarlo. Per garantire che le date fossero corrette, avrei ripristinato l'orologio sul computer. Prima che potessi impiantare completamente la soluzione, abbiamo deciso di mantenere una licenza flottante per quel team per quando avevano bisogno di esaminare la storia e avevano previsto di ripensare l'intera organizzazione dei loro progetti. (. Come una cronaca, due anni e che squadra sta ancora utilizzando Surround)

6

me Trovare in questo scenario esatto, ho prendere su di me per scrivere un tale importatore personalizzato: export-surround-to-git

questo metodo è in grado di conservare cronologia completa, timestamp, autori, commenti, diramazioni, istantanee, ecc.

Questo script è stato testato in un numero limitato di scenari e si è dimostrato finora di successo. Anche se è ancora un work in progress, questo potrebbe essere quello che stai cercando. È open source - quindi sentiti libero di apportare miglioramenti alla sceneggiatura da solo!

+0

Questo script non funziona molto bene su Windows ma invierò alcune correzioni (dopo aver convertito un enorme repository) in due settimane. In questo momento è un codice molto caotico quindi devo pulirlo. A proposito: questa è la mia forchetta (o qualcosa del genere) https://github.com/xeningem/export-surround-to-git.git – Xeningem