selectively applying changesets

Eric M. Hopper hopper at
Sun Sep 25 16:08:55 CDT 2005

On Sun, 2005-09-25 at 22:50 +0200, Stefan van der Walt wrote:
> Say two users, A and B, are working on a project.  B clones the latest
> stable release and adds two features (as changesets 1 through 10 and
> 20 through 30, separately) into his public repository.  User A then
> decides to merge back only the first feature, changesets 1 through 10,
> into his repository.
> In pseudo-hg, A wants to do something like:
> $ hg pull -r 1:10 B
> $ hg update -m
> Is an export/import the appropriate way to do this?

Currently, export/import is the only way to do this, but it isn't a very
good way.  Mostly because the changesets will not be properly identified
with the same unique hashes on the import side as they are on the export

This means if you ever do an actual 'pull' from a remote repository, you
will get all the same changes again, but they will be considered to be
different changesets that happen on a branch.

There are ways to sort of simulate the behavior you want by pulling
_all_ the changes, then updating to a particular changset and branching
off from there.  But it isn't really quite the same.  Also, if a lot of
people do this eventually there'll end up being this vast sea of
orphaned changsets that keep moving from repository to repository but
are basically dead as far as new development based on them is concerned.

I've been thinking of good ways to deal with this problem, as my own
development style would tend to create a lot of these orphaned branches
that should probably never be seen outside my repositories.

Have fun (if at all possible),
The best we can hope for concerning the people at large is that they
be properly armed.  -- Alexander Hamilton
-- Eric Hopper (hopper at --
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 185 bytes
Desc: This is a digitally signed message part
Url :

More information about the Mercurial mailing list