pull: Honor depth with OSTREE_REPO_PULL_FLAGS_COMMIT_ONLY

https://bugzilla.gnome.org/755224
This commit is contained in:
Matthew Barnes 2015-09-21 09:36:00 -04:00
parent 203d6ea65e
commit ed86160975
1 changed files with 19 additions and 11 deletions

View File

@ -981,8 +981,6 @@ scan_commit_object (OtPullData *pull_data,
gboolean have_parent; gboolean have_parent;
g_autoptr(GVariant) commit = NULL; g_autoptr(GVariant) commit = NULL;
g_autoptr(GVariant) parent_csum = NULL; g_autoptr(GVariant) parent_csum = NULL;
g_autoptr(GVariant) tree_contents_csum = NULL;
g_autoptr(GVariant) tree_meta_csum = NULL;
gpointer depthp; gpointer depthp;
gint depth; gint depth;
@ -1072,14 +1070,20 @@ scan_commit_object (OtPullData *pull_data,
} }
} }
g_variant_get_child (commit, 6, "@ay", &tree_contents_csum); if (!pull_data->is_commit_only)
g_variant_get_child (commit, 7, "@ay", &tree_meta_csum); {
g_autoptr(GVariant) tree_contents_csum = NULL;
g_autoptr(GVariant) tree_meta_csum = NULL;
g_variant_get_child (commit, 6, "@ay", &tree_contents_csum);
g_variant_get_child (commit, 7, "@ay", &tree_meta_csum);
queue_scan_one_metadata_object_c (pull_data, ostree_checksum_bytes_peek (tree_contents_csum),
OSTREE_OBJECT_TYPE_DIR_TREE, recursion_depth + 1);
queue_scan_one_metadata_object_c (pull_data, ostree_checksum_bytes_peek (tree_meta_csum),
OSTREE_OBJECT_TYPE_DIR_META, recursion_depth + 1);
}
queue_scan_one_metadata_object_c (pull_data, ostree_checksum_bytes_peek (tree_contents_csum),
OSTREE_OBJECT_TYPE_DIR_TREE, recursion_depth + 1);
queue_scan_one_metadata_object_c (pull_data, ostree_checksum_bytes_peek (tree_meta_csum),
OSTREE_OBJECT_TYPE_DIR_META, recursion_depth + 1);
ret = TRUE; ret = TRUE;
out: out:
return ret; return ret;
@ -1159,8 +1163,12 @@ scan_one_metadata_object_c (OtPullData *pull_data,
} }
else if (objtype == OSTREE_OBJECT_TYPE_COMMIT && pull_data->is_commit_only) else if (objtype == OSTREE_OBJECT_TYPE_COMMIT && pull_data->is_commit_only)
{ {
ret = TRUE; if (!scan_commit_object (pull_data, tmp_checksum, recursion_depth,
goto out; pull_data->cancellable, error))
goto out;
g_hash_table_insert (pull_data->scanned_metadata, g_variant_ref (object), object);
pull_data->n_scanned_metadata++;
} }
else if (is_stored) else if (is_stored)
{ {