From 521e0ec3ac87b539190f3a6cc310237fbaf39517 Mon Sep 17 00:00:00 2001 From: Jonathan Lebon Date: Mon, 30 Jul 2018 11:11:34 -0400 Subject: [PATCH] lib/commit: Only auto-update summary if refs were written Closes: #1693 Approved by: mwleeds --- src/libostree/ostree-repo-commit.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/libostree/ostree-repo-commit.c b/src/libostree/ostree-repo-commit.c index dd225e63..d464cd0a 100644 --- a/src/libostree/ostree-repo-commit.c +++ b/src/libostree/ostree-repo-commit.c @@ -2195,19 +2195,21 @@ ostree_repo_commit_transaction (OstreeRepo *self, if (self->txn.refs) if (!_ostree_repo_update_refs (self, self->txn.refs, cancellable, error)) return FALSE; - g_clear_pointer (&self->txn.refs, g_hash_table_destroy); if (self->txn.collection_refs) if (!_ostree_repo_update_collection_refs (self, self->txn.collection_refs, cancellable, error)) return FALSE; - g_clear_pointer (&self->txn.collection_refs, g_hash_table_destroy); /* Update the summary if auto-update-summary is set, because doing so was * delayed for each ref change during the transaction. */ - if (!_ostree_repo_maybe_regenerate_summary (self, cancellable, error)) + if ((self->txn.refs || self->txn.collection_refs) && + !_ostree_repo_maybe_regenerate_summary (self, cancellable, error)) return FALSE; + g_clear_pointer (&self->txn.refs, g_hash_table_destroy); + g_clear_pointer (&self->txn.collection_refs, g_hash_table_destroy); + self->in_transaction = FALSE; if (!ot_ensure_unlinked_at (self->repo_dir_fd, "transaction", 0))