For binary files should I use bfiles or bigfiles?

1.1k views Asked by At

There are a few mercurial extensions for dealing with large binary files.

I'd like to use the one that is most likely to be official (ie distributed with mercurial).
Kiln 2.0 uses a fork of Bfiles for its binary files. Does that make it more likely to become official?

Which is the preferred (semi-official) extension for handling binary files?

4

There are 4 answers

0
retracile On BEST ANSWER

It appears that Mercurial is planning to incorporate the 'largefiles' extension for the November 2.0 release. Mercurial incorporated the 'largefiles' extension in the 2.0 release. This extension is a descendent of 'kbfiles' (from Kiln), which is in turn a descendent of the bfiles extension.

It makes largefile support much more integrated into the Mercurial commands than bfiles did, and supports pushing to http(s) urls which I believe bfiles did not.

4
VonC On

Errr... Nexus. Or any other artifact repositories (or any other backup systems if you only need the latest version).
Because no binary file (especially large one) really belong to a VCS where you would want to diff or merge.

Sure, you could use a VCS, and there are actually good arguments for it, but a VCS is simply not designed for that at its core.

0
Klaim On

It seems that BigFiles is recommanded by game developpers using Mercurial, so maybe you should go with it. However if you want to know wich one is worked to be included in a coming version of mercurial, you should ask in or read the developers' mailing list.

2
Greg Ward On

It's too early to tell. And it is way too early to start talking about including any of these extensions with Mercurial. IMHO they should all be considered experimental.

(I'm the author of one of those extensions (bfiles), so this is as authoritative an answer as you are likely to get. If someone proposed shipping any one of these extensions with Mercurial today, including mine, I would be strenuously opposed.)

Also, there is no logical link between game development and which extension to choose. It doesn't matter if you're tracking movies, game data, jar files, medical imaging data, or what: most source-control systems are not very good at handling it, and there is no clear answer yet which is the right way to do it with Mercurial.

IMHO stackoverflow is really not the right place for this sort of discussion; the mercurial-devel list is.