0

我正在使用 TortoiseHg 和 hg-git Mercurial 插件来与 Github 交互,而不使用 Git,只使用 Hg。在 Github 上,我分叉了pandas 存储库。我成功地将我的叉子克隆到我的电脑上。我想将原始 pandas 存储库添加为 Hg 中的 URL,因此我可以从该存储库中提取更改并将它们与我自己所做的任何更改集成。我在 TortoiseHg 的 URL 中添加了原始的 pandas 存储库,名称为“upstream”。

但是,如果我尝试从原始上游 repo 中提取,Hg 会挂起很长时间,然后最终会发出“504 - 网关超时”错误。如果我直接克隆 pandas repo(而不是克隆我的 fork),我可以很好地从中提取。

奇怪的是,这似乎并非所有回购都发生。我用matplotlib repo做了同样的过程(fork,克隆 fork,然后尝试从原始库中提取),它似乎从原始 repo 中提取就好了。

更奇怪的是,如果我克隆原始 repo,然后将我的 fork 添加为额外的 URL,我可以从两者中提取。所以不知何故,在原始克隆期间设置的 URL 是可以的,但是手动将相同的 URL 设置为源是行不通的。

这似乎表明问题出在 pandas repo 上。这可能吗?Github 上是否有一些设置可能会影响我从该回购中提取的能力?我该怎么做才能让它发挥作用?

4

1 回答 1

2

hg-git通过命令行重复了这个过程,但无法复制问题。所以有几种可能:

  1. (您的)TortoiseHG(配置)存在问题。
  2. 在将 URL 输入 TortoiseHG 时,您输入了某种类型的错字。
  3. 中有一个奇怪的角落案例hg-git
  4. 某些事情在您的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 存储库将自动出现,或者您可以强制它通过hg gexport.

于 2013-05-14T11:37:36.897 回答