How to get rid of big binary files buried in my repository's history

Martin Geisler mg at daimi.au.dk
Wed Feb 25 02:44:01 CST 2009


Tim Molendijk <tim at timmolendijk.nl> writes:

> I very much don't like this situation, but how can I truly get rid of
> the file? If I simply remove it, it remains part of a past changeset,
> so every time I make a new clone of the repository it will need to be
> downloaded again (twice in my case).

The problem that moved/renamed files take up extra space is known:

  http://www.selenic.com/mercurial/bts/issue883

You can add yourself to the nosy list if you want to follow the issue.

> If I update back to a revision before I added the file I lose all my
> changes that followed, and I cannot see how I could merge these
> changes back in without merging back in the video file as well.

As suggested you can either:

* clone the repository at a revision before you added the file. Then
  redo the following changesets. You can redo the changesets in many
  ways:

  - use hg export and hg import
  - use MQ
  - use the transplant extension

  This approach has the advantage that previous changesets are left
  untouched and so other clones will still be related to your clone.

* convert the repository hg -> hg and use a filemap.

  I don't know why, but this will change revision hashes on all
  changesets, including those from before the file was added.

-- 
Martin Geisler

VIFF (Virtual Ideal Functionality Framework) brings easy and efficient
SMPC (Secure Multiparty Computation) to Python. See: http://viff.dk/.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://selenic.com/pipermail/mercurial/attachments/20090225/13042ae3/attachment.pgp 


More information about the Mercurial mailing list