Close

Preparazione

Il primo passo per migrare un progetto da SVN al controllo della versione basato su Git è preparare il computer locale del responsabile della migrazione. In questa fase, scaricherai un comodo script di utilità, monterai un file system con distinzione tra maiuscole e minuscole (se necessario) e mapperai le informazioni sull'autore da SVN a Git.

Tutti i passaggi seguenti devono essere eseguiti sul computer locale del responsabile della migrazione.


Scaricare lo script di migrazione


Git include la maggior parte degli strumenti necessari per importare un repository SVN; tuttavia, mancano alcuni bit di funzionalità che Atlassian ha inserito in un pratico file JAR. Questo file sarà parte integrante della migrazione, quindi assicurati di scaricare svn-migration-scripts.jar dall'account Bitbucket di Atlassian. Questa guida presuppone che tu l'abbia salvato nella tua home directory. Avvertenza: per la migrazione svn è necessario un file system con distinzione tra maiuscole e minuscole e questo non funziona su NTFS. Suggeriamo di usarlo su una macchina Linux.

Una volta scaricato, è una buona idea verificare gli script per assicurarti di avere installato Java Runtime Environment, Git, Subversion e l'utilità git-svn. Apri un prompt dei comandi ed esegui quanto segue:

java -jar ~/svn-migration-scripts.jar verify

Verrà visualizzato un messaggio di errore nella console se non disponi dei programmi necessari per il processo di migrazione. Assicurati che il software mancante sia installato prima di procedere.

Database
materiale correlato

Come spostare un repository Git completo

Logo di Bitbucket
Scopri la soluzione

Impara a utilizzare Git con Bitbucket Cloud

Se ricevi un avviso sull'impossibilità di determinare una versione, esegui export LANG=C (*nix) o SET LANG=C (Windows) e riprova.

Se stai eseguendo la migrazione su un computer con OS X, vedrai anche il seguente avviso:

You appear to be running on a case-insensitive file-system. This is unsupported, and can result in data loss.

Ne parleremo nella prossima sezione.

Montare un'immagine del disco con distinzione tra maiuscole e minuscole


La migrazione a Git dovrebbe essere eseguita su un file system con distinzione tra maiuscole e minuscole per evitare di danneggiare il repository. Questo è un problema se stai eseguendo la migrazione su un computer con OS X, poiché il file system OS X non fa distinzione tra maiuscole e minuscole.

Se non usi OS X, tutto ciò che devi fare è creare una directory sul tuo computer locale chiamata ~/GitMigration. Qui è dove eseguirai la conversione. Dopodiché, puoi passare alla sezione successiva.

Migrazione Git: montare l'immagine del disco

Se usi OS X, devi montare un'immagine del disco con distinzione tra maiuscole e minuscole con lo script create-disk-image incluso in svn-migration-scripts.jar. Richiede due parametri:

1. La dimensione dell'immagine del disco da creare in gigabyte. Puoi usare qualsiasi dimensione tu voglia, purché sia più grande del repository SVN che stai cercando di migrare.

2. The name of the disk image. This guide uses GitMigration for this value.

Ad esempio, il comando seguente crea un'immagine del disco da 5 GB chiamata GitMigration:

java -jar ~/svn-migration-scripts.jar create-disk-image 5 GitMigration

L'immagine del disco è montata nella tua home directory, quindi ora dovresti vedere una directory chiamata ~/GitMigration sul tuo computer locale. Questa fungerà da file system virtuale con distinzione tra maiuscole e minuscole ed è dove archivierai il repository Git convertito.

Estrarre le informazioni sull'autore


SVN registra solo il nome utente dell'autore per ogni revisione. Git, tuttavia, memorizza il nome completo e l'indirizzo e-mail dell'autore. Ciò significa che devi creare un file di testo che mappi i nomi utente SVN alle loro controparti Git.

Migrazione Git: mappare i nomi utente SVN sui nomi utente Git

Esegui i seguenti comandi per generare automaticamente questo file di testo:

cd ~/GitMigration 
java -jar ~/svn-migration-scripts.jar authors <svn_repo_uri> > authors.txt

Assicurati di sostituire con l'URI del repository SVN che vuoi migrare. Ad esempio, se il repository risiedeva all'indirizzo https://svn.esempio.com, esegui quanto segue:

java -jar ~/svn-migration-scripts.jar authors https://svn.example.com > authors.txt

Viene creato un file di testo chiamato authors.txt che contiene il nome utente di ogni autore nel repository SVN insieme al nome e all'indirizzo e-mail generati. Dovrebbe avere il seguente aspetto:

j.doe = j.doe <j.doe@mycompany.com> 
m.smith = m.smith <m.smith@mycompany.com>

Cambia la parte a destra del segno uguale con il nome completo e l'indirizzo e-mail dell'utente corrispondente. Ad esempio, potresti cambiare gli autori di cui sopra in:

j.doe = John Doe <john.doe@atlassian.com>
m.smith = Mary Smith <mary.smith@atlassian.com>

Riepilogo


Ora che hai gli script di migrazione, l'immagine del disco (solo OS X) e le informazioni sull'autore, hai tutto il necessario per importare la cronologia SVN in un nuovo repository Git. La fase successiva spiega come funziona questa conversione.


Condividi l'articolo
Argomento successivo

Letture consigliate

Aggiungi ai preferiti queste risorse per ricevere informazioni sui tipi di team DevOps e aggiornamenti continui su DevOps in Atlassian.

Le persone collaborano utilizzando una parete piena di strumenti

Blog di Bitbucket

Illustrazione su Devops

Percorso di apprendimento DevOps

Funzione Demo Den per demo con esperti Atlassian

Come Bitbucket Cloud funziona con Atlassian Open DevOps

Iscriviti alla nostra newsletter DevOps

Thank you for signing up