2009-08-19 100 views
0

我有一個svk倉庫,裏面裝滿了鏡子和當地人,我一步一步清理它,因爲我試圖擺脫它,並評估應該留下什麼。這裏只有一個項目,我想繼續工作,爲此我想將它遷移到git中,這樣我就可以用svk完成。如何使用歷史記錄將svk存儲庫遷移到git?

它位於//local/foo,目前沒有svn信息存儲庫。

所以,我想我想要做的是創建一個本地空的svn存儲庫,並將更改從svk推送到它,然後使用git svn克隆它。

但是自從我上次使用svk以來我一直都不知道該怎麼去做。

如果一個SVK用戶會這麼好心給點我的方式......

This幾乎是有幫助的,但它並沒有隨着歷史承諾SVN,它只是一個單一的提交。

回答

1

好吧,我想通了:

# 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 

就是這樣。然後我做了一些清理:

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 
相關問題