2009-08-19 7 views
0

Ich habe ein SVK Repo, das voll von Spiegeln und Einheimischen usw. war, ich habe es in Schritten gereinigt, weil ich versuche, es loszuwerden, und zu bewerten, was bleiben soll. Es gibt nur ein Projekt dort, an dem ich weiterarbeiten möchte, und dafür möchte ich es zu git migrieren, damit ich mit svk fertig werden kann.Wie ein SVK-Repository zu git migrieren, mit Geschichte?

Es befindet sich in //local/foo, es hat keine Svn-Repository.

Also, was ich denke, ich möchte ein lokales leeres Svn-Repository erstellen und die Änderungen von Svk zu ihm schieben, und dann git svn verwenden, um es zu klonen.

Aber es ist so lange her, dass ich zuletzt svk verwendet habe Ich habe keine Ahnung mehr, wie das geht.

Wenn man SVK Benutzer so nett wäre, mir den Weg zu zeigen ...

This ist fast hilfreich, aber es begehen nicht mit der Geschichte zu SVN, es ist nur eine einzige zu begehen.

Antwort

1

Ok, ich es herausgefunden:

# 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 

Das ist es. Dann habe ich ein bisschen aufgeräumt:

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