我想與Mercurial玩一下,所以我試圖將我現有的一個存儲庫轉換過來。我在我的Mac上運行以下命令:如何將我的Git存儲庫轉換爲Mercurial並帶上它的標籤
hg convert myrepos myrepos-hg
命令成功導入所有我提交的,但它並沒有一起被標註在Git倉庫,8個左右的標籤帶(也沒有任何的分支機構)。我是否需要設置一個特殊參數以將我的標籤導入到Mercurial中?
我想與Mercurial玩一下,所以我試圖將我現有的一個存儲庫轉換過來。我在我的Mac上運行以下命令:如何將我的Git存儲庫轉換爲Mercurial並帶上它的標籤
hg convert myrepos myrepos-hg
命令成功導入所有我提交的,但它並沒有一起被標註在Git倉庫,8個左右的標籤帶(也沒有任何的分支機構)。我是否需要設置一個特殊參數以將我的標籤導入到Mercurial中?
您的標籤是輕量級git標籤還是全註釋標籤? hg convert
只轉換註釋標籤,但git默認創建輕量級標籤。我最近在轉換某個存儲庫時遇到了此問題。您可以檢查它們是什麼如下:
git ls-remote --tags .
運行hg convert
僅轉換結束^{}
,註釋者的標籤。你有兩個選擇:
之前,用一個小的shell腳本和 - 強制選項git標籤你可以註釋所有的標籤。
這就是問題所在。謝謝你的提示! – 2009-07-19 14:00:04
這是一個有些已知的問題。您可以嘗試改變這個補丁以下文件/usr/lib/python2.6/site-packages/hgext/convert/hg.py(或無論它在哪裏):
extra = {'branch': self.tagsbranch}
到:
extra = {'branch': 'default'}
然後再轉換它。
編輯:在深入瞭解事物的狀態看來,它可能很難 - 這不是不可能的 - 做你想做的事情。更要正確地做到這一點。
由於您只有8個標籤,可以考慮通過手工製作.hgtags文件來節省麻煩。你可以稍後弄清楚'hg convert'是怎麼回事(我會保持我的眼睛也是如此)。
好運。
我相應地修改了文件(它位於/Library/Python/2.5/site-packages/...),但不幸的是它仍然沒有轉換標籤並創建.hgtags文件。 – 2009-07-18 05:15:45
我以前見過的一個建議是使用svn作爲中介步驟。 git和hg都有出色的雙向svn轉換。
查看hg-git plugin。
將git轉換爲mercurial?在這裏,先閱讀這個警告的故事:http://www.gksoft.com/a/fun/hal-ibm.html – 2009-07-18 19:11:54