forked from Mirrors/flatpak-builder
appstream: Don't create new commit for unchanged appstream branch
parent
3602c53dd8
commit
3187c0c142
|
@ -1911,6 +1911,7 @@ xdg_app_repo_generate_appstream (OstreeRepo *repo,
|
||||||
GHashTableIter iter;
|
GHashTableIter iter;
|
||||||
gpointer key;
|
gpointer key;
|
||||||
gpointer value;
|
gpointer value;
|
||||||
|
gboolean skip_commit = FALSE;
|
||||||
|
|
||||||
arches = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
|
arches = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
|
||||||
|
|
||||||
|
@ -2021,33 +2022,51 @@ xdg_app_repo_generate_appstream (OstreeRepo *repo,
|
||||||
if (!ostree_repo_write_mtree (repo, mtree, &root, cancellable, error))
|
if (!ostree_repo_write_mtree (repo, mtree, &root, cancellable, error))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (!ostree_repo_write_commit (repo, parent, "Update", NULL, NULL,
|
|
||||||
OSTREE_REPO_FILE (root),
|
|
||||||
&commit_checksum, cancellable, error))
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
if (gpg_key_ids)
|
/* No need to commit if nothing changed */
|
||||||
|
if (parent)
|
||||||
{
|
{
|
||||||
int i;
|
g_autoptr(GFile) parent_root;
|
||||||
|
|
||||||
for (i = 0; gpg_key_ids[i] != NULL; i++)
|
if (!ostree_repo_read_commit (repo, parent, &parent_root, NULL, cancellable, error))
|
||||||
{
|
goto out;
|
||||||
const char *keyid = gpg_key_ids[i];
|
|
||||||
|
|
||||||
if (!ostree_repo_sign_commit (repo,
|
if (g_file_equal (root, parent_root))
|
||||||
commit_checksum,
|
skip_commit = TRUE;
|
||||||
keyid,
|
|
||||||
gpg_homedir,
|
|
||||||
cancellable,
|
|
||||||
error))
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ostree_repo_transaction_set_ref (repo, NULL, branch, commit_checksum);
|
if (!skip_commit)
|
||||||
|
{
|
||||||
|
if (!ostree_repo_write_commit (repo, parent, "Update", NULL, NULL,
|
||||||
|
OSTREE_REPO_FILE (root),
|
||||||
|
&commit_checksum, cancellable, error))
|
||||||
|
goto out;
|
||||||
|
|
||||||
if (!ostree_repo_commit_transaction (repo, &stats, cancellable, error))
|
if (gpg_key_ids)
|
||||||
goto out;
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; gpg_key_ids[i] != NULL; i++)
|
||||||
|
{
|
||||||
|
const char *keyid = gpg_key_ids[i];
|
||||||
|
|
||||||
|
if (!ostree_repo_sign_commit (repo,
|
||||||
|
commit_checksum,
|
||||||
|
keyid,
|
||||||
|
gpg_homedir,
|
||||||
|
cancellable,
|
||||||
|
error))
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ostree_repo_transaction_set_ref (repo, NULL, branch, commit_checksum);
|
||||||
|
|
||||||
|
if (!ostree_repo_commit_transaction (repo, &stats, cancellable, error))
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
ostree_repo_abort_transaction (repo, cancellable, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
Loading…
Reference in New Issue