NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

Mercurial 2.0 携 Largefile 插件发布

  • 2011-11-18
  • 本文字数:1011 字

    阅读完需:约 3 分钟

Selenic 发布了 Mercurial 2.0 ,这是他们三个月来对该 DVCS 工具的常规升级。

本次发布带来了 Largefile 插件——一种将集中式数据存储带入迥异的分布式版本管理系统的方式。鉴于 Mercurial 的 Revlog 存储机制并不能很好地契合二进制大文件的存储,Largefile 插件提供了一个集中式存储,二进制大文件可以从那里按需下载。

如果二进制大文件经常会被更新,那么在任何 DVCS 中存储它们,都可能会出现问题;甚至即便二进制文件可以通过增量压缩(比如,仅仅存储变更的部分)来存储,大文件也会很快地使资源库膨胀起来。此外,假如这些资源已经成为了资源库历史的一部分,它们无法在不影响内容哈希值的情况下从资源库中精简掉(prune),因此也就无法修改资源库的版本。

取决于使用的版本管理系统的不同而不同,是否将大资源文件存放在不同的分支(比如,不经常获取[fetch]的分支)会影响到复制出的资源库(而不是源资源库)。Mercurial 的 Largefile 插件使用了不同的方法,在复制出的资源库中提供了(从效果上)指向大文件的符号链接。

当前检出[checkout]的版本并没有必要包含这些大文件,它们并不会随着复制[clone]或者获取[fetch]/推送[push]的操作而下载。但是,如果检出某个包含了一个或者多个这样大文件链接的版本,Mercurial 会打开一个单独的链接以从集中式存储服务器下载内容。很明显,这意味着为了检出资源库的某些版本,Mecurial 需要能够连接到集中式存储服务器,但是本地的 Mercurial 复本将会保持上次下载的大文件的缓存,而且假如它们已经被下载,就可以不用再去从服务器获取。

hg add命令有了一个新选项--large,允许指定文件为大文件(因此把该文件存入“集中式的、但是缓存的、按需下载的”存储)。或者,可以设置一个确切的文件大小(默认是大于 10Mb)或者使用命名模式(比如,*.zip)来自动标记大文件。注意,资源库格式必须通过hg lfconvert命令升级,以利用新格式的优势。同时注意,追踪大文件状态的dirstate命令,在 Mercurial 2.0 中目前是被限制在 2Gb 以内,但有希望在 2.0 发布之后会发布补丁。

Mercurial 2.0 同时也带来了 graft 命 令——给 Mercurial 实现了 cherry pick 功能。它使用了合并[merge]的机理以判断哪些修改应该被呈现,然后再将它们零碎地移植过来,而不创建一个新的合并节点。与其他的 cherry-pick 实现一样,如果代码修改已经被复制过来,它将不会被重复复制。

查看英文原文 Mercurial 2.0 Released with LargeFiles extension

2011-11-18 08:201137
用户头像

发布了 76 篇内容, 共 23.4 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

2023-07-02:给定一个1~N的排列,每次将相邻两数相加,可以得到新的序列,长度是N-1 再对新的序列,每次将相邻两数相加,可以得到新的序列,长度是N-2 这样下去可以最终只剩一个数字 比如 :

福大大架构师每日一题

Go 福大大架构师每日一题

大厂月入3w+,失业焦虑折磨着我

程序员晚枫

程序员 大厂 焦虑

AI、机器学习、大模型、生成式AI和安全

啸天

人工智能 机器学习 安全 大模型 ChatGPT

什么是KubeEdge?

谐云

kuberedge kurbernetes

浅谈kubernetes存储—glusterfs故障排查

谐云

kuberedge

边阅读,边成长

少油少糖八分饱

阅读 每天读本书 书评

98位企业技术高管入学百度AICA 大模型带来AI人才三大能力要求

飞桨PaddlePaddle

人工智能 百度 paddle 百度飞桨

“科创中国”大湾区青年百人会论坛成功举办

飞桨PaddlePaddle

人工智能 百度 paddle 百度飞桨

ChatGLM2-6B环境搭建

IT蜗壳-Tango

WebAssembly:让Istio变得更强大

谐云

istio WebAssenbly

在 Go 中如何实现类似 Python 中的 with 上下文管理器

江湖十年

Go 后端

传统网络环境应付不了企业发展需求,华为云下载加速解决方案体验如何?

YG科技

开心档之C++ 模板

雪奈椰子

一文讲透 Redis 事务 (事务模式 VS Lua 脚本)

高端章鱼哥

lua redis vs

MySQL笔记之Checkpoint机制

互联网工科生

MySQL 高可用 CheckPoint

落地领域大模型应知必会 (1) :主要微调方法总览

Baihai IDP

人工智能 白海科技 大语言模型 大模型微调 领域大模型

腾讯社交广告全国招募合伙人 无区域行业限制 终身售后

互联网广告践行者

什么是WebAssembly及其必要性

谐云

WebAssenbly

业财一体,精细管控丨华为云SparkPack助力成长型企业数字化转型

YG科技

代码随想录训练营Day03- 链表(上)

jjn0703

代码随想录训练营Day04 - 链表(下)

jjn0703

华为云下载加速解决方案:让您的下载更快更稳定

YG科技

基于eBPF技术的可观测实践探索

谐云

云原生

基于多尺度图神经网络的流场预测,实现精度与速度的平衡

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

从低谷逆转,数字化转型企业可以信任华为云SparkPack

YG科技

C++实现对RGB图片进行编码

智趣匠

IoTLink版本更新V1.34.0

山东云则信息科技

Java Vue 后端 物联网 前段

云原生MYSQL数据库架构分享

谐云

MySQL 云原生

红队攻防之快速打点

权说安全

网络攻防

福昕软件与国广传媒达成战略合作,共促AI技术创新发展

新消费日报

华为云SparkPack:成长型企业的数字化转型利器

YG科技

Mercurial 2.0携Largefile插件发布_语言 & 开发_Alex Blewitt_InfoQ精选文章