# # # patch "cmd_ws_commit.cc" # from [a8b67d157497c0d27dd85bf2004342f52fdf10a4] # to [66094a27fe835dbad1fbb480bc50a567a150ade9] # ============================================================ --- cmd_ws_commit.cc a8b67d157497c0d27dd85bf2004342f52fdf10a4 +++ cmd_ws_commit.cc 66094a27fe835dbad1fbb480bc50a567a150ade9 @@ -654,9 +654,18 @@ CMD(disapprove, "disapprove", "", CMD_RE rev_set.insert(parent_rev); erase_ancestors(db, rev_set); - E(rev_set.size() < 2, origin::user, - F("revisions %s and %s do not share common history, cannot invert") - % parent_rev % child_rev); + if (rev_set.size() > 1) + { + set ancestors; + db.get_common_ancestors (rev_set, ancestors); + E(ancestors.size() > 0, origin::user, + F("revisions %s and %s do not share common history, cannot invert") + % parent_rev % child_rev); + E(ancestors.size() < 1, origin::user, + F("revisions share common history" + ", but %s is not an ancestor of %s, cannot invert") + % parent_rev % child_rev); + } walk_revisions(db, child_rev, parent_rev); db.get_revision(parent_rev, rev);