2009-08-19 7 views
0

J'ai un svk repo qui était plein de miroirs et locaux, etc, je l'ai nettoyé par étapes, parce que j'essaie de m'en débarrasser, et d'évaluer ce qui devrait rester. Il y a seulement un projet sur lequel je veux continuer à travailler, et pour cela je veux le faire migrer vers git afin que je puisse en avoir fini avec svk pour de bon.Comment migrer un dépôt svk vers git, avec l'historique?

Il est situé dans //local/foo, il n'a pas de dépôt svn. Donc, ce que je pense que je veux faire est de créer un référentiel svn local vide et de pousser les changements de svk vers celui-ci, puis d'utiliser git svn pour le cloner.

Mais ça fait tellement longtemps que je n'ai pas utilisé svk Je n'ai plus aucune idée de la marche à suivre.

Si un utilisateur SVK serait si bon pour moi ouvrir la voie ...

This est presque utile, mais il ne commettras pas d'histoire à svn, il ne un seul commit.

Répondre

1

Ok, j'ai tout compris:

# create a local svn repo 
cd $HOME/src/svk 
svnadmin create foosvn 

# mirror that in svk 
svk mirror file://$HOME/src/svk/foosvn //mirror/foosvn 
svk sync //mirror/foosvn 

# finally, merge your local svk path into the new svn repo 
svk smerge --incremental --baseless //local/foo //mirror/foosvn 

# Just to be sure things migrated properly: 
svn log file://$HOME/src/svk/foosvn 

# Now, from svn to git 
git svn clone file://$HOME/src/svk/foosvn foogit 

# Again, just to be sure things migrated properly: 
cd foogit 
git log --pretty=oneline --abbrev-commit 

Voilà. Puis j'ai fait un peu de nettoyage:

mv $HOME/src/svk/foogit $HOME/src/foo.git 
rm -rf mv $HOME/src/svk 
# This gets rid of your entire svk existence. 
# Be very sure you really want to do this. 
rm -rf $HOME/.svk 
Questions connexes