我正在尝试使用svn2git将 SVN 项目迁移到 git。但是,我在保存所有历史时遇到了问题。原因似乎是因为行李箱被移动了过去。我正在使用的命令是:
$ svn2git http://mysvnserver.com/myproject/iPhone/ --no-minimize-url --authors ../authors.txt
但这只是让我的历史可以追溯到 2011 年。该项目实际上是在 2010 年开始的。预计开始时看起来像这样:
myproject
trunk
branches
tags
但在 2011 年,它变成了这样:
myproject
iPhone
trunk
branches
tags
Android
trunk
branches
tags
旧的树干和树枝在 iPhone 目录下。我从这一举动完成时开始的历史。如果我svn log
在 iPhone 目录中这样做,我会得到缩短的历史记录。但是,如果我cd trunk; svn log
得到完整的历史记录。
我不知道如何把这段历史弄出来。我的想法是以某种方式创建一个 git 存储库,其中只有主干的历史可以追溯到 2010 年。然后我稍后会将它作为我的主存储库中的一个分支,并做一个 rebase 以使历史正确。但我没有运气为主干创建这个回购。我试过了:
$ svn2git http://mysvnserver.com/myproject/ --rootistrunk --authors ../authors.txt
和
$ svn2git http://mysvnserver.com/myproject/ --rootistrunk -no-minimize-url --authors ../authors.txt
没有任何成功。