sysroot-upgrader: Check merge deployment, not ref for differences

Otherwise this broke atomicity; we could fetch/store the ref, then
crash, and then not upgrade the next time we tried upgrading.

The correct model is: the tree has changed if the new ref is different
from the merge deployment.
This commit is contained in:
Colin Walters 2014-03-31 14:41:13 -04:00
parent 1fd01077a5
commit 913337c557
1 changed files with 3 additions and 4 deletions

View File

@ -431,7 +431,7 @@ ostree_sysroot_upgrader_pull (OstreeSysrootUpgrader *self,
gboolean ret = FALSE;
gs_unref_object OstreeRepo *repo = NULL;
char *refs_to_fetch[] = { self->origin_ref, NULL };
gs_free char *from_revision = NULL;
const char *from_revision = NULL;
gs_free char *new_revision = NULL;
gs_free char *origin_refspec = NULL;
@ -443,9 +443,8 @@ ostree_sysroot_upgrader_pull (OstreeSysrootUpgrader *self,
else
origin_refspec = g_strdup (self->origin_ref);
if (!ostree_repo_resolve_rev (repo, origin_refspec, TRUE, &from_revision,
error))
goto out;
g_assert (self->merge_deployment);
from_revision = ostree_deployment_get_csum (self->merge_deployment);
if (self->origin_remote)
{