如何使用历史记录将svk存储库迁移到git?

问题描述:

我有一个svk仓库,里面装满了镜子和当地人,我一步一步清理它,因为我试图摆脱它,并评估应该留下什么。这里只有一个项目,我想继续工作,为此我想将它迁移到git中,这样我就可以用svk完成。如何使用历史记录将svk存储库迁移到git?

它位于//local/foo,目前没有svn信息存储库。

所以,我想我想要做的是创建一个本地空的svn存储库,并将更改从svk推送到它,然后使用git svn克隆它。

但是自从我上次使用svk以来我一直都不知道该怎么去做。

如果一个SVK用户会这么好心给点我的方式......

This几乎是有帮助的,但它并没有随着历史承诺SVN,它只是一个单一的提交。

好吧,我想通了:

# 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