我从切换到水银Git和已经使用hg-fast-export成功。现在我有一个棘手的情况。我这是每个分支使用单独的汞库的一个项目,我想这些转换为与“适当的”树枝单一git仓库,让我的汞的变更如果可能的话。转换多个汞库单的Git仓库有多个分支
所以目前的结构是这样的 - 每个文件夹是一个汞库:
Project-v1.0
Project-v2.0
Project-v3.0
我想叫“工程”,它包含3个分支,V1.0单一的git仓库,V2落得.0和v3.0。
这可能吗?
我从切换到水银Git和已经使用hg-fast-export成功。现在我有一个棘手的情况。我这是每个分支使用单独的汞库的一个项目,我想这些转换为与“适当的”树枝单一git仓库,让我的汞的变更如果可能的话。转换多个汞库单的Git仓库有多个分支
所以目前的结构是这样的 - 每个文件夹是一个汞库:
Project-v1.0
Project-v2.0
Project-v3.0
我想叫“工程”,它包含3个分支,V1.0单一的git仓库,V2落得.0和v3.0。
这可能吗?
当汞库是从一个基站回购克隆,您可以使用hggit扩展其导出到一个混帐回购协议。说你的分支住在目录B1 /,B2/B3和/,那么所有你需要的是
cd b1; mkdir ../gb1 && git init --bare ../gb1 && hg push ../gb1; cd ..
cd b2; mkdir ../gb1 && git init --bare ../gb2 && hg push ../gb2; cd ..
cd b3; mkdir ../gb1 && git init --bare ../gb3 && hg push ../gb3; cd ..
# now you have one git repo for each hg branch
cd gb1
git remote add gb2 ../gb2
git remote add gb3 ../gb3
git fetch --all
# now you have all branches in the gb1 repo
rm -r ../gb2 ../gb3
# the other repos are now not used anymore
如果不同的汞回购协议是无关的,你必须要使用的VonC提到的嫁接点解决方案。
这应该是可能的:
Project-v2.0
历史进入Project-v1.0
GIT中回购3个不同的GIT中回购(通过添加Project-v2.0
作为远程和在一个“v2.0
取它'分支:创建2个不同的根)HEAD
的v1.0
分支变成S上的第一父提交v2.0
分支的)。filter-branch
使这些移植点永久(即不限于您的回购)(重复的Project-v3.0
,提取到的第一个到一个单独的v3.0
分支,嫁接到v2.0
分支的HEAD
,并过滤分支,使移植永久)
你有一个类似的情况(虽然它是关于“prepend一些历史”,而不是“追加”)在SO问题“How to prepend the past to a git repository?”。