bazaar merge oddity

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

bazaar merge oddity

Andreas Röhler-2


Hi Barry,

after a merge bazaar requires a local commit nonetheless.

However, the difficulty and confusion IMHO arises from
the commit-message, necessary that way also.

As you may see in the current trunk now, your revision
353 is gone completely.

It's place is taken by my patch, while your changing
appears as rev 354 but with my commit message.

Or made I some mistake?

Cheers

Andreas

--
https://code.launchpad.net/~a-roehler/python-mode
https://code.launchpad.net/s-x-emacs-werkstatt/
_______________________________________________
Python-mode mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/python-mode
Reply | Threaded
Open this post in threaded view
|

Re: bazaar merge oddity

Barry Warsaw
On Mar 18, 2010, at 09:50 AM, Andreas Roehler wrote:

>after a merge bazaar requires a local commit nonetheless.
>
>However, the difficulty and confusion IMHO arises from
>the commit-message, necessary that way also.
>
>As you may see in the current trunk now, your revision
>353 is gone completely.
>
>It's place is taken by my patch, while your changing
>appears as rev 354 but with my commit message.
>
>Or made I some mistake?
I don't think you made any mistake, I think it's just the way dvcs in general,
and Bazaar in particular handles things.

The fundamental problem of course is that revision numbers (e.g. 353) are by
definition local and not stable.  If I were to commit a change now, it would
be r355 locally.  If you did the same thing we'd both have r355 in our local
repositories.  The first one of us to push to the master branch would "win"
and the second would have to first merge and then push, which I'm sure is what
you did.

Every revision also has a "revision id", which is a globally unique, but not
human friendly, id that will never change.

% bzr log -c 354 --show-ids
------------------------------------------------------------
revno: 354 [merge]
revision-id: [hidden email]-20100318083644-0msjrlaxvmv4mlvl
parent: [hidden email]-20100123170127-dqmdxlkb156bncvb
parent: [hidden email]-20100119204450-7iekyt7gnxw2qhfn
committer: Andreas Roehler <[hidden email]>
branch nick: 328781-bod-lands-in-string
timestamp: Thu 2010-03-18 09:36:44 +0100
message:
  revision/353 Fix some indentation merged
------------------------------------------------------------
Use --include-merges or -n0 to see merged revisions.

You can see that the parent of your change is my indentation change:

% bzr log -c [hidden email]-20100119204450-7iekyt7gnxw2qhfn
------------------------------------------------------------
revno: 352.1.1
committer: Barry Warsaw <[hidden email]>
branch nick: python-mode
timestamp: Tue 2010-01-19 15:44:50 -0500
message:
  Fix some indentation.

and the revno gets a dotted path, which is unique to the master branch (and
once you've reconciled/merged it to your local branch, yours as well).  This
shows the parenting relationship between the revisions.

Normally, this is hidden because it's mostly uninteresting, but it does make
things confusing in cases like this.  Suffice to say that Bazaar makes it
pretty difficult for you to do anything destructive like "lose" a revision.

IOW, you did the right thing!

-Barry


_______________________________________________
Python-mode mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/python-mode

signature.asc (853 bytes) Download Attachment