[MERGE] When adding rich root data follow the standard revision graph rules, so it does not create 'inconstent parents'.
John Arbash Meinel
john at arbash-meinel.com
Tue May 5 04:46:04 BST 2009
-----BEGIN PGP SIGNED MESSAGE-----
Robert Collins wrote:
> This fixes the bug Aaron found vis-a-vis upgrading to rich roots - that
> you got inconsistent parents and had to immediately reconcile to fix
If the core of this is needing to have a Graph.heads() call on the
rich-root items, you'll find that Inter1And2Helper needs the same fix. I
basically copy & pasted (and then massaged the code to fit) the code
into InterDifferingSerializer, because I wanted to remove the extra pass
over inventories that Inter1and2Helper imposed.
I also just did a quick grep, and I don't see any heads() calls in all
Which I *think* means that you aren't fully testing the inter-format
fetching across the smart server, since you said in the past that it
would use the streaming code path for that....
I only did a quick glance over the code. The only thing that really
sticks out is:
+ # root_id may be in the parent anyway.
+ tree = self.source.revision_tree(parent_id)
+ except errors.NoSuchRevision:
+ # ghost, can't refer to it.
^- But I guess this only happens when the root_id really does change,
which is a *very* rare occurrence.
(Not giving a final vote, since I didn't fully review the patch.)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
-----END PGP SIGNATURE-----
More information about the bazaar