2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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:201456
用户头像

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

关注

评论

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

面试突击37:线程安全问题的解决方案有哪些?

王磊

Java java面试

面试突击36:线程安全问题是怎么产生的?

王磊

Java java面试

【模块七】王者荣耀商城异地多活架构设计

yhjhero

架构训练营

带码农《手写Mybatis》进度3:实现映射器的注册和使用

小傅哥

小傅哥 mybatis 手写Mybatis

怒肝 JavaScript 数据结构 — 数组篇(二)

杨成功

JavaScript 数据结构 4月月更

架构实战训练营模块七

刘帅

[Day7]-[动态规划] 最大子数组和

方勇(gopher)

LeetCode 动态规划 数据结构与算法、

王者荣耀商城异地多活架构设计

风中奇缘

架构实战营 「架构实战营」

什么是数据库?5分钟深入理解数据库原理。

喀拉峻

数据库 网络安全

Ben Fisch等联创爆出道德、法律丑闻,Espresso Systems风雨飘摇

BlockChain先知

Go Error 最佳实践

宇宙之一粟

Go 语言 Error 4月月更

手机应用使用情况监控统计APP

android App 自律

模块二

ASCE

王者荣耀商城异地多活架构设计

张逃逃

SkyWalking 分布式系统追踪

Rubble

4月日更

在线XML转CSV工具

入门小站

工具

OpenMLDB 获评 CSDN IT 技术影响力之星 “年度开源项目”奖项

第四范式开发者社区

人工智能 深度学习 数据库 开源 特征平台

单线程的 JavaScript 是怎么实现异步的?

CRMEB

在线OPML压缩工具

入门小站

工具

TDesign 更新周报(2022年4月第1周)

TDesign

Hoo虎符研究院|区块简报220406期

区块链前沿News

虎符交易所

王者荣耀商城异地多活架构设计

smile

使用 Next.js、LeanCloud 和 Tailwind CSS 创建全栈应用

张泽豪

全栈 LeanCloud nextjs Tailwind Vercel

BFF治理与优化实践

码猿外

架构 微服务 BFF 软件架构治理

当东数西算变成一场西游记……

脑极体

可能是全网第一个使用RediSearch实战的项目

越长大越悲伤

redis 中文分词 全文检索 SpringBoot 2 实战案例

linux之ssh-keygen命令

入门小站

Linux

虎符交易所Hoo研究院|关于跨链(上)——Cosmos

区块链前沿News

虎符交易所

怒肝 JavaScript 数据结构 — 栈篇(一)

杨成功

JavaScript 数据结构 4月月更

为什么Java仍旧生机盎然——对“为什么Java正在消亡”的回应

Geek_rze78a

Java

张国荣《热·情》演唱会再现荧幕:AI修复解锁的经典与视听生活

脑极体

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