lib: Fix endless upgrade problem

48db8c8 introduced a disagreement between when
notmuch_database_needs_upgrade returned TRUE and when
notmuch_database_upgrade actually performed an upgrade.  As a result,
if a database had a version less than 3, but no new features were
required, notmuch new would call notmuch_database_upgrade to perform
an upgrade, but notmuch_database_upgrade would return immediately
without updating the database version.  Hence, the next notmuch new
would do the same, and so on.

Fix this by ensuring that the upgrade-required logic is identical
between the two.
This commit is contained in:
Austin Clements 2014-09-01 18:49:07 -04:00 committed by David Bremner
parent 658a00e7c8
commit cca05ac10e

View file

@ -1222,7 +1222,7 @@ notmuch_database_upgrade (notmuch_database_t *notmuch,
target_features = notmuch->features | NOTMUCH_FEATURES_CURRENT;
new_features = NOTMUCH_FEATURES_CURRENT & ~notmuch->features;
if (! new_features)
if (! notmuch_database_needs_upgrade (notmuch))
return NOTMUCH_STATUS_SUCCESS;
if (progress_notify) {