tags:

views:

165

answers:

1

In git, there is a command 'git bundle' which bundles a git repository into 1 big file. Is there the equivalent command for 'hg'?

+1  A: 

Hg supports the same command. Here's the help for it:

U:\>hg help bundle
hg bundle [-f] [-t TYPE] [-a] [-r REV]... [--base REV]... FILE [DEST]

create a changegroup file

    Generate a compressed changegroup file collecting changesets not known to
    be in another repository.

    If you omit the destination repository, then hg assumes the destination
    will have all the nodes you specify with --base parameters. To create a
    bundle containing all changesets, use -a/--all (or --base null).

    You can change compression method with the -t/--type option. The available
    compression methods are: none, bzip2, and gzip (by default, bundles are
    compressed using bzip2).

    The bundle file can then be transferred using conventional means and
    applied to another repository with the unbundle or pull command. This is
    useful when direct push and pull are not available or when exporting an
    entire repository is undesirable.

    Applying bundles preserves all changeset contents including permissions,
    copy/rename information, and revision history.

options:

 -f --force      run even when the destination is unrelated
 -r --rev        a changeset intended to be added to the destination
 -b --branch     a specific branch you would like to bundle
    --base       a base changeset assumed to be available at the destination
 -a --all        bundle all changesets in the repository
 -t --type       bundle compression type to use (default: bzip2)
 -e --ssh        specify ssh command to use
    --remotecmd  specify hg command to run on the remote side

The command for the reverse operation is hg unbundle.

John Nelson
Here is a link to it in the full documentation. http://www.selenic.com/mercurial/hg.1.html#bundle
Steve Hook
Yeah, it has the same name in Mercurial... that's not coincidence because Git got its bundle command from Mercurial :-)
Martin Geisler