我正在使用TortoiseHg与hg-git Mercurial插件与Github进行交互而不使用Git,只有Hg。在Github上,我分叉了pandas repo。我成功克隆了我的电脑到我的电脑。我想在Hg中添加原始的pandas repo作为URL,因此我可以从该repo中提取更改并将它们与我自己做的任何更改集成。我在TortoiseHg的URL中添加了原始的pandas repo,名称为“upstream”。
但是,如果我尝试从原始上游回购中提取,Hg会挂起很长时间,然后最终发出“504 - 网关超时”错误。如果我直接克隆pandas repo(而不是克隆我的fork),我可以很好地完成它。
奇怪的是,所有回购似乎都没有发生这种情况。我使用matplotlib repo执行了相同的过程(fork,克隆fork,然后尝试从原始文件中拉出),它似乎从原始repo拉出来就好了。
更奇怪的是,如果我克隆原始仓库,然后将我的分叉添加为额外的URL,我可以从两者中提取。因此,原始克隆期间设置的URL是可以的,但是手动设置相同的URL作为源不起作用。
这似乎表明问题出在了pandas repo上。这可能吗? Github上有一些设置会影响我从该回购中获取的能力吗?我能做些什么才能让它发挥作用?
答案 0 :(得分:2)
我通过命令行使用hg-git
重复了该过程,无法复制问题。所以有一些可能性:
hg-git
中有一个奇怪的角落案例。hgrc
中出现问题 - 您的全局(隐藏在主目录中)或特定于存储库的(.hg/hgrc
中)。 如果您将hgrc
文件作为Github Gist(根据需要对其进行匿名化)提供,则可能会提供一些见解。
与此同时,一个解决方案是手动执行git,然后强制更新:
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
如果这样可行,那么保存的URL可能有问题。
你仍然需要担心合并和变基等等,但你可以在Mercurial中做到这一点。当你推送到git遥控器时,隐藏的git repo会自动出现,或者你可以通过hg gexport
强制它进行更新。