Mercurial 中文件重命名处理效率低下

发布于 2025-01-08 19:08:43 字数 163 浏览 0 评论 0原文

当我使用 Mercurial 重命名文件,然后提交而不进行任何更改时,为什么它仍然将完整文件发送到存储库? (我可以看出,因为随后推送到远程存储库会显示正在传输的数据量)。是不是很明显它只需要重命名?

我在Windows下使用最新版本的TortoiseHG,有问题的文件是一个20MB的文本文件。

When I rename a file using Mercurial, and then commit without any changes, why does it still send the full file to the repository? (I can tell because the subsequent push to the remote repository shows how much data is being transferred). Isn't it obvious to it that it simply needs a rename?

I'm using the latest version of TortoiseHG under Windows, and the file in question is a 20MB text file.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

谎言 2025-01-15 19:08:43

这是 Mercurial 使用的存储格式的一个已知缺陷。您可以搜索“轻量级副本”来获取完整的故事,但是简而言之,问题在于重命名时会为新文件名创建一个新的 revlog 。新的修订日志以完整文件的压缩快照开始 - 这通常不是一个大问题,但它仍然比零大小的增量更大。

除非您想修补 Mercurial 并运行实验代码,否则您现在无能为力。好消息是您只需要等待:我们一直在开发的补丁将能够自动将您现有的存储库转换为更节省空间的存储库。当您通过网络hgclone或在本地使用hgclone--pull时,就会发生这种情况。

This is a known deficiency in the storage format used by Mercurial. You can search for "lightweight copies" for the full story, but briefly, the problem is that a new revlog is created for the new file name when you rename. The new revlog starts with a compressed snapshot of the full file — this is normally not a big problem, but it's still bigger than a zero-sized delta.

There's little you can do about it now unless you want to patch your Mercurial and run experimental code. The good news is that you just have to wait: the patches that we've been working on will be able to convert your existing repository into a more space efficient one automatically. This will happen when you hg clone over the network or if you use hg clone --pull locally.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文