不同的版本控制系统如何处理二进制文件? [英] How do different version control systems handle binary files?

查看:352
本文介绍了不同的版本控制系统如何处理二进制文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我听说过一些SVN处理二进制文件比Git / Mercurial更好的说法。这是真的吗?如果是这样的话,为什么?就我所能想象的,没有版本控制系统(VCS)可以区分和合并相同二进制资源的两个版本之间的更改。

所以,并非所有VCS的在处理二进制文件不好?我并不是很了解特定VCS实现背后的技术细节,所以他们可能有一些优点和缺点。 解决方案

点在任何DVCS的分布式方面:你克隆所有文件的所有历史记录

因为二进制文件不是'如果你正在存储快速发展的二进制文件,你最终会很快得到一个大的存储库,这个库很容易移动(推拉)。

有关Git的示例,请参阅什么是git限制?



二进制文件不适合VCS带来的功能(diff,branch,merge) ,并且可以在工件存储库中更好地进行管理(例如, Nexus )。

对于CVCS(集中式VCS)来说,这不是必要的,在这种情况下,存储库可以扮演这个角色并成为二进制文件的存储器(即使它不是它的主要角色)


I have heard some claims that SVN handles binary files better than Git/Mercurial. Is this true and if so then why? As far as I can imagine, no version control system (VCS) can diff and merge changes between two revisions of the same binary resources.

So, aren't all VCS's bad at handling binary files? I am not very aware of the technical details behind particular VCS implementations so maybe they have some pros and cons.

解决方案

The main pain point is in the "Distributed" aspect of any DVCS: you are cloning everything (the all history of all files)

Since binaries aren't stored in delta for most of them, and aren't compressed as well as text file, if you are storing rapidly evolving binaries, you end up quickly with a large repository which becomes much cumbersome to move around (push/pull).

For Git for instance, see What are the git limits?.

Binaries aren't a good fit for the feature a VCS can bring (diff, branch, merge), and are better managed in an artifact repository (like a Nexus for example).
This is not necessary the case for a CVCS (Centralized VCS) where the repository could play that role and be a storage for binaries (even if its not its primary role)

这篇关于不同的版本控制系统如何处理二进制文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆