我從切換到水銀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?」。