Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

How do you deal with binary files in your Google Code Mercurial repository? I have heard something about bfiles extension and such, but I do not know where to begin.

If you are going to say I should not put binary files in my HG repository, then where should I put them? They need to be pullable/downloadable by other developers. However, I do not need merging, diffing or keeping copies of different versions of binary files. I just need to get the latest binary file in the repository so that they update when you do a hg pull -u.

I hope this does not mean I have to stop using Google Code and get some custom installation.

share|improve this question
To provide advice on options for large binary files, could you provide more details on your project (platform, environment, language, etc.)? – Goyuix Apr 10 '11 at 15:23
C#, Windows and Mercurial. The project is a game with plenty of binary files (textures, model files). – rFactor Apr 16 '11 at 15:51
up vote 3 down vote accepted

If the binary files are not particularly large (most images are just fine for example), then there is no reason to worry. Google Code will accept binary files just fine and Mercurial can handle diffing them without issue.

The only time you need to worry about the bfiles extension is if you are dealing with very large binary files - and in that case I would suggest you strongly consider if you really need to have them included in your same source code repository. I am not against versioning them, or otherwise keeping a known good copy, but consider keeping them in a separate repository or some other read only location that can be included in your project as needed.

As your models are probably embedded resources of some kind in your project, I would suggest that you just go ahead and version them with the rest of your assets as it will complicate your build process if they aren't. They are unlikely to change as much as your source code, so once you get past the initial hit of transferring the 300MB, your commits, pushes and pulls will be quick.

You may also want to consider alternative mercurial providers, like - I wouldn't say they are necessarily better or worse, they just offer a different set of services around the source code management. Disclaimer: I generally prefer BitBucket.

share|improve this answer
I have tens of 3d models with textures where each model take about 15 MB on average. The total size is about 300 MB. Where else would I put them if not in the repository? Does Google offer any other solutions, I do have an 80 GB Google account. – rFactor Apr 16 '11 at 15:53

It appears Mercurial doesn't really care if it's binary. There are some solutions, I don't know how well they work with Google Code. ExternalBinaries and BFiles (and more links on this page)

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .