2012-11-30 37 views
1

我们有一个我们正在迁移到git的Subversion版本库。从几乎标准的svn布局“git svn clone”

的svn库的布局几乎标准,但在历史上的一些点一些白痴开发商(好吧,这是我)不小心创建一个目录,把它称为“/富”,在库的根,而不是的树干。

“foo”在搬到“/ trunk/foo”之前,在那里住了几个星期。

现在,当我做一个“git svn clone --stdlayout [...]”时,我想念发生在主干外的历史部分。

有没有办法将“/ foo”的早期更改“合并”到git上的master的历史记录中?

* 编辑*或者,有没有办法让那些缺少修订到分支?

回答

1

我不知道这会得到你想要的东西,但我们欢迎您尝试:

  1. 克隆foo的文件夹到一个单独的文件夹。要做到这一点,你必须找出它的原始位置(/ foo)的版本范围。说这是对转100创建,在这种情况下被转移到/主干/ foo的上转200的命令应该是:

    git svn clone -r100:200 http://server/foo

你会得到另一个混帐回购协议FOO。

  1. 转到主git仓库,并加富作为远程:

    git remote add foo /path/to/foo

  2. 获取:

    git fetch foo

现在你可以设置本地在remotes/foo/master上分支或将它合并到y中我们的主人。 因为新提交和原始历史记录不会有共同的历史记录,所以您将不会拥有正确的历史记录图表,但是您将在一个git回购库中拥有所有的历史记录。

相关问题