【问题标题】:How to use Mercurial's LargeFiles extension?如何使用 Mercurial 的 LargeFiles 扩展?
【发布时间】:2011-11-19 22:27:34
【问题描述】:

我使用 Mercurial 进行游戏开发,并尝试使用 Mercurial 2.0 中包含的 LargeFiles 扩展来跟踪大型二进制资产。不幸的是,没有关于扩展的大量文档,所以我不确定人们应该如何使用它。

例如,有什么方法可以安全地清除 .hg/largefiles 目录?如果我正在使用最新版本,并且希望始终能够访问互联网,那么我不需要旧版本的大文件使存储库变得混乱,因为这就是使用大文件扩展的全部意义所在。

另外,我如何对大文件存储的位置进行更细粒度的控制?我只能假设它是在运行hg init 的计算机上创建的,但我不知道细节。

谢谢!

【问题讨论】:

    标签: mercurial


    【解决方案1】:

    我没有任何关于如何安全清除 .hg/largefiles 目录的指导。

    大文件存储

    默认情况下,大文件存储似乎存储在以下位置之一:

    Windows: C:\Users\Username\AppData\Local\largefiles

    OSX: /Users/username/Library/Caches/largefiles

    Linux:(这是我的最佳猜测)

    • /home/username/largefiles
    • /home/username/.cache/largefiles

    用户配置:

    但是,可以使用usercache 设置在全局设置文件中进行更改,如下所示:

    [largefiles]
    usercache = c:\path\to\largefiles\cache\
    

    注意:这还没有记录。这让我想知道它是否会发生变化。

    来源:

    【讨论】:

    • 感谢您的信息!我不知道从哪里开始探源,所以这是找出细微细节的一个很好的开始。我想如果还没有关于用户缓存的任何官方文档,那么对其进行大量更改可能会有点危险。
    • 约翰,我试图把这个 ([largefiles] usercache=/mnt/driveb/mercurial-repo/largefiles) 放在 mercurial 的 hgweb.cgi 以及 .hg/hgrc 的里面服务器上的回购,但我仍然得到同样的错误。难道我做错了什么?我正在使用标准版本的 mercurial 2.0,从源代码构建...
    • @Rok 错误是什么?您是否还包括 [Extensions] largefiles= 以启用扩展?我的回答只描述了文件的存储位置以及如何更改它。如果您刚刚开始,我会查看mercurial.selenic.com/wiki/LargefilesExtension 的文档。
    • @JohnAllers:我在客户端和服务器上启用了扩展。提交顺利,推送客户端抛出:中止:远程存储:无法将 /path/.hg/largefiles/5ede... 放到远程存储 url/hg/testlargefiles 和服务器上 [错误] [客户端 192.168...] status = statusmessage(status.code, status.message) [error] [client 192.168 ...] /usr/local/lib64/python2.6/site-packages/mercurial/hgweb/hgweb_mod.py:137: DeprecationWarning: BaseException .message 自 Python 2.6 起已被弃用 [Wed Nov 23 23:46:47 2011] [error] [client 192.168.150.233] return '0\\n%s\\n' % inst.message
    • @JohnAllers:我也关注了您列出的官方文档。不知道我会错过什么。有没有办法打开 hgweb.cgi 调试给我更多的细节?
    【解决方案2】:

    我只是为通过搜索进入该主题的其他人发布此内容。

    当前,当通过 IIS 托管时,在 mercurial python 模块中使用 largefiles 扩展存在问题。如果您在通过 TortoiseHg 将大型变更集(或大型文件)推送到 IIS 时遇到问题,请参阅 this post

    问题最终证明是 Python 2.7.3 中引入的 SSL 处理中的一个错误(可能解释了为什么有这么多未解决的帖子寻找 Mercurial 问题的人)。回滚到 Python 2.7.2 让我更进一步(在 30Mb 推送而不是 15Mb 时被阻止),但为了正确解决问题,我必须安装 IISCrypto 实用程序以完全禁用通过 SSLv2 的传输。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多