Which VCSes have "uncommit"?

Matthew D. Fuller fullermd at over-yonder.net
Thu Nov 5 16:41:44 GMT 2009


On Thu, Nov 05, 2009 at 04:41:49PM +0100 I heard the voice of
Daniel Carrera, and lo! it spake thus:
> 
> Does anyone know which distributed VCSes have an "uncommit" feature
> at least as powerful and at least as easy as the one from Bazaar?
> The only examples I know are Bazaar and Darcs ("darcs unrecord").
> 
> I get the impression that Mercurial and Git can use "rebase" to
> achieve this, but that this is more complicated. So they would meet
> the "at least as powerful" criterion but not the "at least as easy"
> criterion.

I think you're mixing up things.  uncommit and rebase don't have much
to do with each other.  Rebase creates new [sets of] revisions based
on some variation of existing revs.  uncommit just shifts the head of
the branch to some other existing rev (usually 'earlier', and in
normal usage the previous); you can do almost that with pull, except
uncommit leaves your WT in the same state.

AFAIK, everybody can do essentially what uncommit does.  With git,
it's some manipulation of 'reset' (--soft or --merge, maybe?).  mtn,
you'd do something like use update to shift your WT basis to the other
rev, and then remove the branch cert from the revs you want to pop
off.  hg maybe you just use pull (without -u)?


-- 
Matthew Fuller     (MF4839)   |  fullermd at over-yonder.net
Systems/Network Administrator |  http://www.over-yonder.net/~fullermd/
           On the Internet, nobody can hear you scream.



More information about the bazaar mailing list