2009-07-18 98 views
10

我想與Mercurial玩一下,所以我試圖將我現有的一個存儲庫轉換過來。我在我的Mac上運行以下命令:如何將我的Git存儲庫轉換爲Mercurial並帶上它的標籤

hg convert myrepos myrepos-hg 

命令成功導入所有我提交的,但它並沒有一起被標註在Git倉庫,8個左右的標籤帶(也沒有任何的分支機構)。我是否需要設置一個特殊參數以將我的標籤導入到Mercurial中?

+1

將git轉換爲mercurial?在這裏,先閱讀這個警告的故事:http://www.gksoft.com/a/fun/hal-ibm.html – 2009-07-18 19:11:54

回答

6

您的標籤是輕量級git標籤還是全註釋標籤? hg convert只轉換註釋標籤,但git默認創建輕量級標籤。我最近在轉換某個存儲庫時遇到了此問題。您可以檢查它們是什麼如下:

git ls-remote --tags . 

運行hg convert僅轉換結束^{},註釋者的標籤。你有兩個選擇:

  • 補丁git.py hgext轉換擴展文件於各類
  • 改變你的Git標籤轉換爲附註的標籤轉換

之前,用一個小的shell腳本和 - 強制選項git標籤你可以註釋所有的標籤。

+0

這就是問題所在。謝謝你的提示! – 2009-07-19 14:00:04

3

這是一個有些已知的問題。您可以嘗試改變這個補丁以下文件/usr/lib/python2.6/site-packages/hgext/convert/hg.py(或無論它在哪裏):

extra = {'branch': self.tagsbranch} 

到:

extra = {'branch': 'default'} 

然後再轉換它。

編輯:在深入瞭解事物的狀態看來,它可能很難 - 這不是不可能的 - 做你想做的事情。更要正確地做到這一點。

由於您只有8個標籤,可以考慮通過手工製作.hgtags文件來節省麻煩。你可以稍後弄清楚'hg convert'是怎麼回事(我會保持我的眼睛也是如此)。

好運。

+0

我相應地修改了文件(它位於/Library/Python/2.5/site-packages/...),但不幸的是它仍然沒有轉換標籤並創建.hgtags文件。 – 2009-07-18 05:15:45

1

我以前見過的一個建議是使用svn作爲中介步驟。 git和hg都有出色的雙向svn轉換。

相關問題