mirror of
https://github.com/ostreedev/ostree.git
synced 2025-01-10 05:18:30 +03:00
core: Only do devino scan on commit (speeds up pull)
When fetching data remotely, there's no point to the devino scan because we're not going to be committing local files. Only do it for "commit".
This commit is contained in:
parent
efe27f1b05
commit
52a0b7bdb1
@ -1276,6 +1276,7 @@ devino_cache_lookup (OstreeRepo *self,
|
||||
|
||||
gboolean
|
||||
ostree_repo_prepare_transaction (OstreeRepo *self,
|
||||
gboolean enable_commit_hardlink_scan,
|
||||
GCancellable *cancellable,
|
||||
GError **error)
|
||||
{
|
||||
@ -1285,13 +1286,14 @@ ostree_repo_prepare_transaction (OstreeRepo *self,
|
||||
|
||||
self->in_transaction = TRUE;
|
||||
|
||||
if (!self->loose_object_devino_hash)
|
||||
if (enable_commit_hardlink_scan)
|
||||
{
|
||||
self->loose_object_devino_hash = g_hash_table_new_full (devino_hash, devino_equal, g_free, g_free);
|
||||
if (!self->loose_object_devino_hash)
|
||||
self->loose_object_devino_hash = g_hash_table_new_full (devino_hash, devino_equal, g_free, g_free);
|
||||
g_hash_table_remove_all (self->loose_object_devino_hash);
|
||||
if (!scan_loose_devino (self, self->loose_object_devino_hash, cancellable, error))
|
||||
goto out;
|
||||
}
|
||||
g_hash_table_remove_all (self->loose_object_devino_hash);
|
||||
if (!scan_loose_devino (self, self->loose_object_devino_hash, cancellable, error))
|
||||
goto out;
|
||||
|
||||
ret = TRUE;
|
||||
out:
|
||||
|
@ -77,6 +77,7 @@ GFile * ostree_repo_get_file_object_path (OstreeRepo *self,
|
||||
const char *object);
|
||||
|
||||
gboolean ostree_repo_prepare_transaction (OstreeRepo *self,
|
||||
gboolean enable_commit_hardlink_scan,
|
||||
GCancellable *cancellable,
|
||||
GError **error);
|
||||
|
||||
|
@ -1333,7 +1333,7 @@ ostree_builtin_pull (int argc, char **argv, GFile *repo_path, GError **error)
|
||||
}
|
||||
}
|
||||
|
||||
if (!ostree_repo_prepare_transaction (pull_data->repo, NULL, error))
|
||||
if (!ostree_repo_prepare_transaction (pull_data->repo, FALSE, NULL, error))
|
||||
goto out;
|
||||
|
||||
pull_data->metadata_scan_active = TRUE;
|
||||
|
@ -351,7 +351,7 @@ ostree_builtin_commit (int argc, char **argv, GFile *repo_path, GError **error)
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (!ostree_repo_prepare_transaction (repo, cancellable, error))
|
||||
if (!ostree_repo_prepare_transaction (repo, TRUE, cancellable, error))
|
||||
goto out;
|
||||
|
||||
in_transaction = TRUE;
|
||||
|
@ -196,7 +196,7 @@ ostree_builtin_pull_local (int argc, char **argv, GFile *repo_path, GError **err
|
||||
|
||||
g_print ("%u objects to copy\n", g_hash_table_size (objects_to_copy));
|
||||
|
||||
if (!ostree_repo_prepare_transaction (data.dest_repo, cancellable, error))
|
||||
if (!ostree_repo_prepare_transaction (data.dest_repo, FALSE, cancellable, error))
|
||||
goto out;
|
||||
|
||||
g_hash_table_iter_init (&hash_iter, objects_to_copy);
|
||||
|
Loading…
Reference in New Issue
Block a user