2013-01-19 92 views
1

我使用hg-git Mercurial插件TortoiseHg與Github進行交互,而不使用Git,只有Hg。在Github上,我分叉了pandas repo。我成功地將我的叉子克隆到我的電腦。我想將原始大熊貓回購作爲URL中的一個URL添加,因此我可以從該回購中獲取更改,並將它們與我自己做出的任何更改結合起來。我在TortoiseHg的URL中以「上游」名稱添加了原始大熊貓回購。hg-git可以從分叉回購,但不是原始回購

但是,如果我嘗試從原始上游回購倉庫中提取,則Hg掛起很長時間,然後最終發出「504 - 網關超時」錯誤。如果我直接克隆熊貓回購(而不是克隆我的分支),我可以很好地從中取出。

奇怪的是,這似乎並沒有發生與所有回購。我用matplotlib repo做了同樣的過程(叉子,克隆叉子,然後嘗試從原來的拉)​​,它似乎從原始回購扯好了。

即使是陌生人,如果我克隆原始回購,然後將我的分叉添加爲額外的URL,我可以從兩者都拉。因此,不知何故原始克隆期間設置的URL是可以的,但手動設置相同的URL作爲源不起作用。

這似乎表明問題出在熊貓回購專門。這可能嗎? Github上有一些設置可能會影響我從該回購中拉出的能力嗎?我能做些什麼來使它工作?

+0

是否有涉及代理服務器?如果是這樣,原因可能是代理服務器上的超時時間太短。 – davidmc24

+0

@ davidmc24:我沒有使用代理服務器。另外,我不明白這是如何解釋它可以與一個回購協議合作而不是另一個回收協議,或者如果我直接克隆原始回購商,我可以從完全相同的URL提取。 – BrenBarn

+0

我對代理服務器的猜測是基於錯誤代碼的,它似乎通常與某種形式的代理有關。如果涉及代理,則克隆和提取之間的差異可能是由網絡調用的微小差異解釋的,或者屬於超時或不超時。同樣,由於大小或對象組成的差異,此回購與其他回報之間的行爲差​​異可能是可以解釋的。 – davidmc24

回答

1

我通過命令行重複了hg-git的過程,但無法複製該問題。所以有幾種可能性:

  1. 有(你的)TortoiseHG(配置)的問題。
  2. 在將URL輸入到TortoiseHG時,您輸入了某種類型的拼寫錯誤。
  3. hg-git有一個奇怪的角落案例。
  4. hgrc有一些問題 - 您的全局問題(隱藏在您的主目錄中)或您的存儲庫特定問題(位於.hg/hgrc)。

如果你提供你的hgrc文件作爲Github Gist(根據需要匿名),這可能會提供一些見解。

在此期間,一種解決方案是用手工做的混帳東西,然後強制更新:

cd path/to/hg/repo 
git fetch https://github.com/pydata/pandas.git # equal to hg pull, 
hg gimport # pulls the changesets from the hidden git repo into the mercurial repo 

如果一切正常,那麼就可能出錯保存的網址。

你仍然不得不擔心合併和重新綁定等等,但你可以在Mercurial中做到這一點。隱藏的git回購會在您推送到git遠程時自動執行,或者您可以通過hg gexport強制更新。

相關問題