# # # patch "database.cc" # from [802de287aedca9d74d33dc4ae464641cc19029e2] # to [31c97120c8936dfa1b4c08de37a6162cc3d9299e] # ============================================================ --- database.cc 802de287aedca9d74d33dc4ae464641cc19029e2 +++ database.cc 31c97120c8936dfa1b4c08de37a6162cc3d9299e @@ -2949,6 +2949,7 @@ database::delete_existing_revs_and_certs imp->execute(query("DELETE FROM revisions")); imp->execute(query("DELETE FROM revision_ancestry")); imp->execute(query("DELETE FROM revision_certs")); + imp->execute(query("DELETE FROM branch_leaves")); } void @@ -3540,6 +3541,10 @@ database::record_as_branch_leaf(cert_val set current_leaves; get_branch_leaves(branch, current_leaves); + set::const_iterator self = current_leaves.find(rev); + if (self != current_leaves.end()) + return; // already recorded (must be adding a second branch cert) + bool all_parents_were_leaves = true; for (set::const_iterator p = parents.begin(); p != parents.end(); ++p)