【问题标题】:Mercurial repo too large, can't connect, cloneMercurial repo 太大,无法连接,克隆
【发布时间】:2014-06-28 12:46:52
【问题描述】:

我们的 BitBucket 存储库已经增长到超过 3 个演出,现在当我尝试在 SourceTree 中克隆时,我得到的只是尝试连接符号。当我尝试使用 Tortoise 时,它​​会克隆到某个点然后断开连接,说它预期 # 个字节但得到了 # 个。

我无法从 BitBucket 下载 .zip,因为它太大了。我可以做些什么来克隆?

【问题讨论】:

  • 我在使用 TeamCity 和 TortoiseHg 时遇到了这个问题。我收到了布拉德提到的信息。我真的不想做部分拉来解决这个问题,以防 TC 曾经删除文件夹并试图重新拉。我能够通过切换到 SSH 来解决这个问题,尽管它有自己的问题。我的 repo 不到 500 MB,但就是这个症状。也许是其他原因导致它超时,但它非常令人恼火,尤其是我认为没有那么大的回购。

标签: git mercurial atlassian-sourcetree


【解决方案1】:

使用hg clone -r <revision> 克隆到旧版本,然后提取其余版本。如有必要,您也可以逐步拉动。

【讨论】:

  • 我只熟悉Sourcetree,如何运行终端命令?我需要安装其他东西吗?
  • 我不知道 SourceTree,但它可能是您在克隆时可以设置的选项。否则,请查看此链接:answers.atlassian.com/questions/54473/…
【解决方案2】:

我在存储在 BitBucket 上的一个非常大的数 GB 存储库时也遇到了这个问题。如果我试图简单地克隆整个 repo,它总是会在“添加文件更改”的中间中止。如果您使用的是 TortoiseHG,则错误消息类似于“中止:流意外结束(得到 ##### 字节,预期 ######)”

解决方案是“让派对开始”,只克隆前几百个签到,然后使用 Mercurial pull 命令逐步下载更多修订版。

这是命令行:

hg clone -r 500 https://Someone@bitbucket.org/MyCompany/MyRepoName MyDevFolder

这将克隆名为 MyRepoName 的存储库的前 500 个修订版 (-r 500),然后将它们复制到名为 MyDevFolder 的新文件夹中。 (当然,您可以省略“MyDevFolder”,它只会根据您的存储库名称创建一个新文件夹)

如果上述操作成功,请切换到新的开发文件夹并尝试逐步更新到更高的修订号。

cd MyDevFolder
hg pull -r 1000
hg pull -r 2000
hg pull -r 3000
...
hg pull -r [Whatever the maximum number of revisions is]
hg pull
hg update

作为预防措施,在该过程即将结束时,您应该发出一个简单的hg pull 以确保您已完整提取所有代码。

hg update 当然会更新您的MyDevFolder 中的文件,以反映源代码的最新版本。

【讨论】:

  • 这是我得到的错误。感谢您的提醒。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-13
  • 1970-01-01
  • 2010-10-24
  • 1970-01-01
相关资源
最近更新 更多