[RFC] checkout and bind should not lock the master branch
Robert Collins
robertc at robertcollins.net
Sun Apr 2 00:14:05 BST 2006
When making a checkout, using either 'bzr checkout master' or 'bzr bind
master', bzr currently takes a lock out on master.
This is done so that when you are binding to a master branch, and you
have local commits, they get pushed into the master.
I.e. if you have a revision history of:
['A', 'B']
in the master and:
['A', 'B', 'C']
in the local branch, after 'bzr bind master', you will have
['A', 'B', 'C']
in the master.
In the current ui this equates to 'turn local commits into commits on
master when binding'.
When I merged bound branches the exact ui we would need was still
unclear - and its now becoming fairly clear to me that we want a
low-automation ui for this: bind, unbind should not be muddling with
what commits are where - we have commands for that, and the ui
understands that when bound you can have local commits.
So the proposal is to remove this 'syncronisation' step during 'bind' -
if you bind in the example given above, you'll end up with 'C' as a
local commit - ready for you to either revert or to push into the
master.
This will mean that 'bzr checkout' does not need to take out a write
lock on the master, and you will be able to checkout readonly branches.
I hear there is a similar limitation with lightweight checkouts where
you need a write lock to do a 'bzr checkout --lightweight branch' - this
will be because of the lock-inner-objects approach we have, where
locking a working tree locks the branch and repository... but I'll start
another thread on this.
Rob
--
GPG key available at: <http://www.robertcollins.net/keys.txt>.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 191 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20060402/c40a5dce/attachment.pgp
More information about the bazaar
mailing list