bundle/unbundle

Matt Mackall mpm at selenic.com
Thu Sep 8 03:40:11 CDT 2005


I've just added preliminary support for bundle and unbundle. They work
like this:

$ hg bundle changes.hg ../other-repo
$ cd ../repo
$ hg unbundle ../changes.hg
adding changesets
adding manifests
adding file changes
added 5 changesets with 8 changes to 6 files

The bundle command finds all the changes that are not in the remote
repo, generates a changegroup identical to the one used in the wire
protocol, compresses it with bzip2, and writes it into the specified
file.

This file can then be transferred with traditional means (email
attachment, FTP, scp, http, etc.) and will preserve all the changeset
information for later application with the unbundle command.

This also lets you publish your local changes on static web servers
and FTP sites without needing to export the entire project history.

For convenience, unbundle takes URLs in addition to normal filenames,
so you can do:

$ hg unbundle http://localhost/full.hg
adding changesets
adding manifests
adding file changes
added 1218 changesets with 2690 changes to 195 files

That's grabbing the full hg history from a 700K file. 

This is all a bit experimental and only about an hour old, but seems
to work.

-- 
Mathematics is the supreme nostalgia of our time.


More information about the Mercurial mailing list