"diff -r submit:" should not need to look at the parent

Stefan Monnier monnier at iro.umontreal.ca
Fri May 7 21:56:25 BST 2010


> Is this using the parent as the submission branch?

Sorry, I meant the submit branch, yes.

> How do we know what
> revision the parent is at if we don't look at it.  If you could say
> "use the last known parent value" that would be one possibility.
> But remember that the submit: value *changes* if the parent merged
> some of your changes.

Yes, I know there are some subtle differences.  Thing is: for 100% of my
branches, those differences don't apply, and I suspect that's the case
for many other people.

So, yes, a new setting for "use the last known parent value" would work
just fine for me (but note that if I pull from some other branch that
has merged new changes from my submit branch, I'd like that to be
reflected in my "last known submit value").

> Note that if you want to imitate Arch and use a 'mostly up to date'
> mirror of the remote branch, then you can do:
> bzr branch $REAL_PARENT local_parent
> bzr branch local_parent mybranch

And indeed, I work around this problem in the way you suggest, by having
a local mirror of my upstream submit branch.  But this also suffers from
the subtlety mentioned above: if I pull from some other branch that has
merged from my upstream submit branch, "submit:" will still use my local
out of date mirror, even tho the DAG already has more recent data at
hand (it just doesn't know that this more recent data comes from the
relevant branch).

So I have to be careful to make sure my local mirror is at least as
up-to-date as the last merge performed locally or on some other branch
from which I pull.  When I forget that detail, I get diffs which make me
very confused indeed (so I end up using a script that updates the mirror
everytime I pull from some other branch, which is especially painful
because the upstream submit branch is slow [I'll you all guess which
branch I'm referring to]).


        Stefan


PS: I really can't figure out why Bzr had to invent all those duplicate
names: "pull" uses "parent", "merge" uses "submit"?  Why not have the
"pull" branch, the "push" branch, the "merge" branch, so it's obvious
which setting is used with which command?




More information about the bazaar mailing list