Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将连续的SVN和BZR回购加入GIT?_Git_Svn_Bazaar - Fatal编程技术网

如何将连续的SVN和BZR回购加入GIT?

如何将连续的SVN和BZR回购加入GIT?,git,svn,bazaar,Git,Svn,Bazaar,一个奇怪的要求,我承认 我们有一个项目,目前在Bazaar中管理,但以前存储在Subversion中。然而,以前的开发商并没有复制历史,而是将SVN回购单次导出,并开始了全新的BZR回购 因此,我们有以下几点: SVN: A-B-C-D BZR: E-F-G-H 我想要的是: GIT: A-B-C-D-E-D-G-H 谢谢使用git过滤器分支可能最简单。事实上,这是过滤器分支文档中的一个示例: 要将提交(通常位于另一个历史记录的顶端)设置为当前初始提交的父级,以便将其他历史记录粘贴到当前历史

一个奇怪的要求,我承认

我们有一个项目,目前在Bazaar中管理,但以前存储在Subversion中。然而,以前的开发商并没有复制历史,而是将SVN回购单次导出,并开始了全新的BZR回购

因此,我们有以下几点:

SVN: A-B-C-D
BZR: E-F-G-H
我想要的是:

GIT: A-B-C-D-E-D-G-H

谢谢

使用
git过滤器分支
可能最简单。事实上,这是过滤器分支文档中的一个示例:

要将提交(通常位于另一个历史记录的顶端)设置为当前初始提交的父级,以便将其他历史记录粘贴到当前历史记录后面,请执行以下操作:

git过滤器分支--父过滤器“sed”s/^\$/-p/”头

这里是您的提交D,假设您是从BZR提交E到H的分支工作的。所以我假设您使用了迁移工具将svn和BZR历史记录都导入git,并将它们作为单独的分支导入到单个存储库中。

我使用了一个稍微不同的过程(使用.git/info/grafts,后跟过滤器树),但您的回答为我指明了正确的方向。谢谢!
       git filter-branch --parent-filter 'sed "s/^\$/-p <graft-id>/"' HEAD