2012-03-27 13 views
7

Sto provando a migrare un repository da SVN a GIT usando svn2git. È un progetto Open Source, l'URL del repository SVN pubblico è: http://svn.verinice.org/svnroot/. Sentitevi liberi di verificare la migrazione ...Migrazione da SVN a GIT non riuscita utilizzando svn2git

SVN struttura del repository è:

  • FILIALI
  • TAGS
  • TRONCO

ho usato il seguente comando per clonare questo Repo:

svn2git http://svn.verinice.org/svnroot 
    --trunk TRUNK 
    --branches BRANCHES 
    --tags TAGS 

Ma questo comando migra solo un ramo e nessun tag. Ho usato questi comandi per verificare il risultato:

[[email protected] git-repo]# git branch -a 
* master 
    springy 
    remotes/springy 
[[email protected] git-repo]# git tag -l 
[[email protected] git-repo]# 

Come si esegue la migrazione di tutti i rami e tag? Grazie per il tuo aiuto!

UPDATE:

Dopo aver utilizzato il parametro --authors autori-file.txt e aggiungendo nome e l'indirizzo e-mail a git configurazione svn2git funziona bene:

git config --global user.name "your name" 
git config --global user.email "[email protected]" 

È necessario aggiungere un linea per ogni utente SVN in autori-file.txt:

svn-user-name = Full Name <[email protected]> 

git branch -a e git tag -l ora restituisce tutti i rami e tag.

risposta

10

Non ho esperienza con svn2git, ma potresti invece provare a usare git svn clone per passare a git. Nota che ci vorrà molto tempo. Vedere git help svn per ulteriori informazioni.

Nota che questo non creerà tag appropriati in git, molto probabilmente a causa della differenza nei tag git e svn discussi nelle FAQ di svn2git. Invece, lo strumento creerà i rami tag. Se vuoi trasformarli in tag appropriati (e dato che presumo che non tornerai affatto a SVN, questo non dovrebbe causare alcun danno), c'è una discussione su here su come scrivere uno script da fare solo quello.

+1

+1, git-svn è sufficiente per clonare completamente svn repo –

+0

Funziona bene.Le filiali invece dei tag non sono dannose: accettate. –

1

Ciò che è importante sapere è che tutti questi strumenti sono costruiti sulla base del supporto SVN nativo di git, git-svn. Quindi si può usare direttamente git-svn per la clonazione, il recupero di changeset ed ecc., Ma è meglio avere un singolo script/strumento che ci aiuti a fare tutte le operazioni durante la migrazione e quindi la necessità di tali strumenti.

ho usato script wrapper svn2git ospitati su https://github.com/nirvdrum/svn2git per la sovversione a git migrazione e mi ha aiutato di sicuro, soprattutto quando volevamo tirare di modifiche del nostro repository Subversion a intervalli periodici, come non abbiamo fatto completamente spento repo sovversione per ovvie ragioni. Puoi leggere lo script del wrapper ruby, migration.rb per saperne di più.

Problemi correlati