git-特定版本范围内的svn克隆
git-svn clone within a specific revision range
我正在尝试使用 git-svn 导入 svn 服务器中托管的 b运行ch 项目。
存储库结构如下
root
[...]
project 1
trunk
branches
tags
project 2
trunk
branches
tags
[...]
我想实现的是导入project1和project2.
的所有svn历史
不幸的是,原始存储库包含超过 200 万个修订...完整的 git-svn 克隆将永远存在。
所以我检索了我的两个项目的第一个和最后一个修订版并尝试 运行
git svn clone -s https://svn.bansel.it/h2o/ \
--include-paths='^[/](Project1|Project2)' \
-r1788813:1792593
其中 1788813 是第一个修订版,1792593 是我感兴趣的最后一个修订版。
当我执行命令时 运行没有错误。我也注意到一些网络流量,但如果稍后我尝试 运行 git svn log
$ git svn log
fatal: bad revision 'HEAD'
rev-list --first-parent --pretty=medium HEAD --: command returned error: 128
目标存储库似乎完全是空的。
我错过了什么吗?
编辑
我将无法在导入后关闭 SVN 存储库,因此我需要双向同步
你的clone
命令有误。
-s
和 URL https://svn.bansel.it/h2o/
告诉 git-svn
查看 https://svn.bansel.it/h2o/trunk
、https://svn.bansel.it/h2o/tags
和 https://svn.bansel.it/h2o/branches
。它在那里找不到任何东西,因此您的克隆不包含任何提交,因此没有 HEAD
引用。
拥有两个 git 存储库可能是个好主意,每个项目一个,所以有两个 clone
命令,例如 git svn clone -s https://svn.bansel.it/h2o/Project1/ -r1788813:1792593
和 git svn clone -s https://svn.bansel.it/h2o/Project2/ -r1788813:1792593
。
或者,如果您希望两者都在不同远程的同一个存储库中,您可以使用 --prefix=origin-project1
和 [=23= 使用相同的 git 存储库作为目标来执行 clone
命令] 在两个单独的遥控器中获取两个项目。但我真的认为你应该为这两个使用单独的 Git 回购协议。
注意:请注意,据我所知,您还需要每个后续 fetch
的修订参数,但我可能错了,我通常不会t 限制 git-svn
.
的修订
我正在尝试使用 git-svn 导入 svn 服务器中托管的 b运行ch 项目。
存储库结构如下
root
[...]
project 1
trunk
branches
tags
project 2
trunk
branches
tags
[...]
我想实现的是导入project1和project2.
的所有svn历史不幸的是,原始存储库包含超过 200 万个修订...完整的 git-svn 克隆将永远存在。
所以我检索了我的两个项目的第一个和最后一个修订版并尝试 运行
git svn clone -s https://svn.bansel.it/h2o/ \
--include-paths='^[/](Project1|Project2)' \
-r1788813:1792593
其中 1788813 是第一个修订版,1792593 是我感兴趣的最后一个修订版。
当我执行命令时 运行没有错误。我也注意到一些网络流量,但如果稍后我尝试 运行 git svn log
$ git svn log
fatal: bad revision 'HEAD'
rev-list --first-parent --pretty=medium HEAD --: command returned error: 128
目标存储库似乎完全是空的。 我错过了什么吗?
编辑
我将无法在导入后关闭 SVN 存储库,因此我需要双向同步
你的clone
命令有误。
-s
和 URL https://svn.bansel.it/h2o/
告诉 git-svn
查看 https://svn.bansel.it/h2o/trunk
、https://svn.bansel.it/h2o/tags
和 https://svn.bansel.it/h2o/branches
。它在那里找不到任何东西,因此您的克隆不包含任何提交,因此没有 HEAD
引用。
拥有两个 git 存储库可能是个好主意,每个项目一个,所以有两个 clone
命令,例如 git svn clone -s https://svn.bansel.it/h2o/Project1/ -r1788813:1792593
和 git svn clone -s https://svn.bansel.it/h2o/Project2/ -r1788813:1792593
。
或者,如果您希望两者都在不同远程的同一个存储库中,您可以使用 --prefix=origin-project1
和 [=23= 使用相同的 git 存储库作为目标来执行 clone
命令] 在两个单独的遥控器中获取两个项目。但我真的认为你应该为这两个使用单独的 Git 回购协议。
注意:请注意,据我所知,您还需要每个后续 fetch
的修订参数,但我可能错了,我通常不会t 限制 git-svn
.