creating checkouts, bound branches and standalone branches from an existing branch
John A Meinel
john at arbash-meinel.com
Sun Feb 12 05:20:08 GMT 2006
Denys Duchier wrote:
> Robert Collins <robertc at robertcollins.net> writes:
>
>> I can get some code in front of me to hack and commit on in three way:
>> * Create a checkout
>> * Create a bound branch
>> * create a standalone branch
>>
>> The first one [...] clearly has to be 'bzr checkout URL [PATH]'.
>>
>> The third one [...] 'bzr branch URL PATH'
>>
>> But what about the bound branch case? Should that be 'get' ? or 'bzr
>> branch --bind' ?
>
> How about inverting the question and trying it from joe random's perspective, a
> user who has no particular interest in VCS nor in the underlying concepts that
> are important to us (as designers and implementers).
>
> It seems to me that, from a user's perspective, the most important thing is to
> obtain a copy of some project so that they can use it and modify it.
I would agree with you here. I would say the easiest to perform command
should give the user something they can get a remote project, make some
changes, and submit them back.
...
> produce a working tree (checkout) that is lightly bound to the branch at URL.
> This is exactly the centralized model. It is unsurprising.
This is where I disagree with you. The problem is that getting the
checkout doesn't let you make any modifications, because you are most
likely to *not* have commit rights in the remote project.
Also, while the initial get would be fast, all other operations would be
very slow (having to access the remote repository).
I think if we focus on getting knits in, the initial branch can be very
fast (at least much faster than it is now). And then if someone does a
'get', they have a very functional offline-capable branch. We might
default to a bound branch, since that would also be centralized-like.
...
> The point is that the primary effect of "bzr get" is to obtain a working tree of
> the project at URL. The option determines in particular what happens when the
> user commits. This could also be done as follows:
>
> bzr get --commit=remote URL PATH
> bzr get --commit=local,remote URL PATH
> bzr get --commit=local URL PATH
>
> Cheers,
>
> --Denys
Doing it as use cases is interesting. I'm not sure if --commit= is the
best one, but it might be. Perhaps '--access=remote, --access=remote,local'
Just a thought.
In response to Robert's original question yes 'checkout, and branch' are
well defined. I would tend to make the option 'branch --bound', but
after this discussion we might also want to have 'get' default to a
bound branch.
(We might also support a 'bzr mirror' command, which might actually
disable committing locally, but I don't know if we want to go there.)
John
=:->
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 249 bytes
Desc: OpenPGP digital signature
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20060211/1216c9aa/attachment.pgp
More information about the bazaar
mailing list