是否可以将googlecode hg存储库转换为大文件存储库?



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

那么,是否有任何方法将googlecode hg存储库转换为大文件存储库?

(一种想法是将本地克隆的repo转换为大文件的repo,然后将更改推送到"中央"googlecode repo,但我担心在不知道这是否有效的情况下尝试)。

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

  1. 进行本地克隆。
  2. 转换为大文件:' hg lfconvert normal_repo largefiles_repo ' '。不要删除原来的克隆,直到你确定一切正常。
  3. 重置托管存储库(参见https://code.google.com/p/support/wiki/MercurialFAQ#Mercurial_FAQ)。
  4. Push largefiles repository.

在不重置的情况下推送大文件存储库似乎有问题,因为大文件存储库本质上是原始存储库的一个分支,从第一个大文件提交的点开始。

如果push失败*,你可以push原来的克隆,你将回到你开始的地方,没有任何数据丢失。DVCS的众多优点之一。: -)

最大的缺点当然是,每个曾经克隆过你的项目的人现在都将从存储库的不同分支工作。当你做任何涉及改变历史的事情时,这总是一个危险,也是水星相位的动机。如果你想更"友善",你可以为大文件版本启动第二个项目,并在原始项目引用中放置一个链接来描述这一举动。

[*]我无法从Google Code的文档中找出是否支持大文件扩展名。有一个经过审查的功能请求,但我找不到任何提到该请求实际正在实现的内容。push失败可能是一个很好的迹象,表明不支持大文件…

最新更新