是否可以将googlecode hg存储库转换为largefile存储库?

时间:2013-05-03 04:07:49

标签: mercurial google-code

我在googlecode上托管了一个远程hg存储库。因此,我没有管理员权限来运行,例如lfconvert就此而言(据我所知),当然lfconvert只能用于本地存储库。

那么,有没有办法将googlecode hg存储库转换为largefile存储库?

(一个想法是将repo的本地克隆转换为largefile repo,然后将更改推送到“central”googlecode repo,但我担心在不知道它是否是一种有效方法的情况下尝试这种方法。)

1 个答案:

答案 0 :(得分:1)

使用您的想法进行本地转换和推送,您可以利用存储库的“重置”功能:

  1. 做一个本地克隆。
  2. 转换为largefiles:`hg lfconvert normal_repo largefiles_repo``。 在确定一切正常后,请勿删除原始克隆。
  3. 重置托管存储库(请参阅https://code.google.com/p/support/wiki/MercurialFAQ#Mercurial_FAQ)。
  4. 推送largefiles存储库。
  5. 推送largefiles存储库而不重置似乎有问题,因为largefiles存储库是essentially a fork of the original one starting at the point the first largefile was committed

    如果推送失败*,您可以推送原始克隆,并且您将返回到开始的位置,而不会丢失任何数据。 (DVCS的众多优点之一。: - ))

    当然,最大的缺点是,每个克隆过你项目的人现在都将从存储库的另一个分支中工作。当你做任何涉及改变历史的事情并且是Mercurial phases的动机时,这总是一种危险。如果你想成为'kinder',你可以为largefiles版本启动第二个项目,并在描述移动的原始项目中放置一个链接。

    [*]我无法从Google Code的文档中弄清楚是否支持largefiles扩展。有一个reviewed feature request,但我找不到任何实际执行的请求。推送失败可能是一个很好的迹象,虽然不支持大文件...