# # # patch "database.cc" # from [92ca4299c4e498bd04fd4c3d8eef10f4147ebef5] # to [ead4270778e0c8c7b62dc515f54258ee79be7031] # ============================================================ --- database.cc 92ca4299c4e498bd04fd4c3d8eef10f4147ebef5 +++ database.cc ead4270778e0c8c7b62dc515f54258ee79be7031 @@ -167,14 +167,15 @@ database::check_format() bool have_revisions = !res.empty(); fetch(res, one_col, any_rows, query("SELECT 1 FROM rosters LIMIT 1")); bool have_rosters = !res.empty(); - + fetch(res, one_col, any_rows, query("SELECT 1 FROM revisions WHERE height IS NULL LIMIT 1")); + bool have_all_heights = res.empty(); if (!have_manifests) { // Must have been changesetified and rosterified already. // Or else the database was just created. // Do we need to regenerate cached data? - E((!have_revisions || have_rosters), + E(!have_revisions || (have_rosters && have_all_heights), F("database %s lacks some cached data\n" "run '%s db regenerate_caches' to restore use of this database") % filename % ui.prog_name); @@ -182,7 +183,7 @@ database::check_format() else { // The rosters tables should be empty. - I(!have_rosters); + I(!have_rosters && !have_all_heights); // they need to either changesetify or rosterify. which? if (have_revisions)