David Engster writes:
>>> I also had to learn that 'branch'+'bind' is yet different from
>>> 'checkout'. This is why I always try to avoid checkouts and all that
>>> is connected to them (including 'update').
>>
>> They shouldn't behave differently:
> Well, both create a bound branch with a working tree, but 'checkout'
> does not set the parent pointer, whereas 'branch'+'bind' does set it
> ('branch' sets it, to be exact). It's a subtle difference, but confusing
> nonetheless, since from the docs I assumed that 'branch'+'bind' is fully
> equivalent to 'checkout'.
Well, the property naming is somewhat confusing, but I suppose you're
referring to 'parent_location' (see "bzr info" and "cat
.bzr/branch/branch.conf").
It is indeed automatically set during a "bzr branch", whereas "bzr
checkout" does not set this property.
In any case, you'll be using this property during, e.g., "bzr
missing". If the property is not set, the UI will error out and ask you
to provide it an URL (that, by default, will be automatically saved as
the 'parent_location' property).
Summarizing, "bzr missing" on a "bzr branch" will work out of the box,
but "bzr missing" on a "bzr checkout" will ask you to provide an URL to
compare with.
This is because the bzr developers assumed that on a "bzr checkout" you
will use "missing" with other branches that are not the bound branch
(thus you don't get 'parent_location' automatically).
Whether or not this makes sense, is not for me to say, but it confused
me at the beginning.
>> From my understanding (after reading "bzr help working-trees",
>> recommended by "bzr help update"), bazaar works on two dimensions
>> (regarding the tasks we're discussing):
>>
>> - having a working-tree
>> - having a bound branch
> [...]
>> Then, my understanding on "update" is that it brings the working-tree
>> (the files you edit) up-to-date according to the underlying branch
>> (which the "update" documentation - confusingly again - calls "merge",
>> although "merge" is yet another command).
> Thanks, that was really helpful. While I understand the logic now (or so
> I think), I'm not sure what to make of this. People might not be
> familiar with bzr, but they are often familiar with DCVS workflows
> nowadays, specifically with the trinity of clone/pull/push, which is
> usually why I recommend to use 'branch' (or the alias 'clone').
I put "bzr checkout" on the documentation for the mainline mirror
because merging into a checkout (or a bound branch) will ease some
commandline pain during merge conflicts.
> On another note: Would it be possible to have commit mails for the bzr
> repo? This would also be useful for starting the buildbot; I'm currently
> parsing the RSS feed from SourceForge for this, but it is very
> unreliable. The perfect solution for buildbot would of course be if you
> could install the buildbot commit-hook bzr plugin, but I guess this
> isn't possible at SourceForge.
If you know how to set up server-side hooks in bazaar, you can place the
scripts on the SF server (see the SF documentation to know how to login
into the project shell).
Lluis
--
"And it's much the same thing with knowledge, for whenever you learn
something new, the whole world becomes that much richer."
-- The Princess of Pure Reason, as told by Norton Juster in The Phantom
Tollbooth
|