BigFiles Extension for Mercurial

The BigFiles Extension is a plugin for Mercurial that allows you to more efficiently manage Big files and Binary files.For more on this problem see this link Binary Files and Mercurial.

NOTE: For another solution to this problem see BFiles Extension for Mercurial.

  • to see all the commands supported by the extension:
    hg -v help b
    list of commands:
          reverse effect of earlier changeset
     bigadd, badd:
          add the specified files to big files repo
     bigrefresh, brefresh:
          update big files tracking as per working directory.
     bigstatus, bstatus:
          show changed big files in the working directory
     bigupdate, bup, bigcheckout, bco:
          fetch files from versions directory as recorded in '.bigfiles'.
          subdivision search of changesets
          set or show the current branch name
          list repository named branches
          create a changegroup file

Download and Unzip Extension

    • Unzip to somewhere ie. C:\bigfiles_mercurialExtension

Congifure in .hg/hgrc file:

bigfiles = C:\bigfiles_MercurialExtension\bigfiles\

repo = C:\bigfilesCentralRepo


Add file:

hg badd MyProject/
  • This creates a file called .bigfilesin my root directory that looks like:
    syntax: glob
  • This also created a binary representation of your file in the bigfiles repository:


hg bstat

S FSbuild/

Mercurial add will add .bigfiles but ignore the

hg -v add

adding .bigfiles
    • Notice that Mercurial ignored the file altogether.
  • Commit and Push as normal
    • Mercurial will commit and push the .bigfiles but not the actual binary.

Binary File Modifications:

  • Just to brefresh to update the modified binary:
    hg -v brefresh
    • This will update the .bigfiles has for that zip:
      syntax: glob
      • NOTICE the hash is different from above
  • It will place a version of the binary file in the repository as well:
  • Commit and push as normal.

Problems integrating with TortoiseHG:

  • Like the BFiles Extension for Mercurial the integration with TortoiseHG isn’t great.


  • To add a bigfile you need to do it on the command line before refreshing in TortoiseHG
  • If you modify the bigfile you need to do a brefresh on the command line before refreshing and committing in TortoiseHG (otherwise it won’t see it)
  • Although it doesn’t totally crap out like the BFilesExtension…when you commit with this extension you’ll see the uncommitted zip file (unchecked but still there)
    • In other words it doesn’t quite ignore it.

On the plus side the downloading of the appropriate binary seems rather seamless just through a TortoiseHG update.

It's only fair to share...
Share on Facebook
Tweet about this on Twitter
Share on LinkedIn

Leave a Reply