explain uncommit to me please
Chris Hecker
checker at d6.com
Sun Aug 15 20:35:02 BST 2010
Thanks for the replies, folks. A couple questions:
> Yes, it's still in that repository. IIRC under some conditions it
> can eventually get garbage collected, and it won't be added to a
> "bzr branch" off that branch, so if you delete that repository or it
> gets garbage collected, it's gone forever.
Is there any way to get a list of these?
> Do you need to understand it?
Since when has that ever stopped anybody from trying to understand
something? :)
Chris
On 2010/08/15 07:31, Stephen J. Turnbull wrote:
> Chris Hecker writes:
>
> > I just used bzr uncommit for the first time tonite, and I feel a
> > little dirty. :)
>
> No, you're pure and clean. Using uncommit in the privacy of your own
> repo is like getting into your private jacuzzi naked.
>
> > What happens to that revision in the branch?
>
> It disappears. It's not technically part of the branch any more.
>
> > It's still got a revid, so it's in there somewhere?
>
> Yes, it's still in that repository. IIRC under some conditions it can
> eventually get garbage collected, and it won't be added to a "bzr
> branch" off that branch, so if you delete that repository or it gets
> garbage collected, it's gone forever.
>
> > If I try to log -r revid:blah I hit the crash bug referenced here
> > (https://bugs.launchpad.net/ubuntu/+source/bzr/+bug/409266).
>
> That's a bug. It should work.
>
> Do you crash if you do
>
> bzr merge revid:blah
>
> ? If not, as long as you haven't done any commits or changed your
> workspace since the uncommit, that should undo the uncommit. (The
> other cases should also work, but describing what should happen is
> more complex than I want to deal with.)
>
> > What would have happened if I'd pushed to another branch before
> > uncommitting?
>
> That's like flashing the Prime Minister on national TV. Dirty. Don't
> do it, you could be arrested and charged with public indecency. :-)
>
> Probably it wouldn't be a big deal in the scenario you describe,
> actually, but it can be quite confusing if you try to push again to
> that branch after that. You won't be able to, without pulling the
> commit you uncommitted back into the branch where it was uncommitted,
> or uncommitting that commit from the other branch. Neither of those
> operations will necessarily be easy or obvious to accomplish once the
> two branches have diverged a bit.
>
> And the other direction is much worse. If you allow somebody else to
> pull from your branch, uncommit, then let them try to pull again,
> they're likely to get quite confused because they don't know anything
> about the uncommit.
>
> > I have a feeling this has something to do with multiple heads or
>
> Exactly.
>
> > something like that, that I don't really understand since I'm
> > pretty new to dvcs.
>
> Do you need to understand it? The rule is very simple: don't uncommit
> if the commit(s) involved have been merged (pushed, pulled) to another
> branch, *especially* not if it's not your branch. (Like any good rule
> there are interesting exceptions, but again I'm too lazy to explain
> them. :-)
>
>
More information about the bazaar
mailing list