Skip to content

Commit

Permalink
bin/pull-local: Add --commit-metadata-only
Browse files Browse the repository at this point in the history
It might be "local", but e.g. we may be crossing filesystems. So there
are valid use cases for only wanting to pull the commit metadata with
`pull-local`.

Closes: #1769
Approved by: cgwalters
  • Loading branch information
jlebon authored and rh-atomic-bot committed Nov 1, 2018
1 parent 34a8867 commit 1dcebe8
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 2 deletions.
4 changes: 4 additions & 0 deletions src/ostree/ot-builtin-pull-local.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
#include "otutil.h"

static char *opt_remote;
static gboolean opt_commit_only;
static gboolean opt_disable_fsync;
static gboolean opt_untrusted;
static gboolean opt_bareuseronly_files;
Expand All @@ -46,6 +47,7 @@ static int opt_depth = 0;
*/

static GOptionEntry options[] = {
{ "commit-metadata-only", 0, 0, G_OPTION_ARG_NONE, &opt_commit_only, "Fetch only the commit metadata", NULL },
{ "remote", 0, 0, G_OPTION_ARG_STRING, &opt_remote, "Add REMOTE to refspec", "REMOTE" },
{ "disable-fsync", 0, 0, G_OPTION_ARG_NONE, &opt_disable_fsync, "Do not invoke fsync()", NULL },
{ "untrusted", 0, 0, G_OPTION_ARG_NONE, &opt_untrusted, "Verify checksums of local sources (always enabled for HTTP pulls)", NULL },
Expand Down Expand Up @@ -110,6 +112,8 @@ ostree_builtin_pull_local (int argc, char **argv, OstreeCommandInvocation *invoc
pullflags |= OSTREE_REPO_PULL_FLAGS_UNTRUSTED;
if (opt_bareuseronly_files)
pullflags |= OSTREE_REPO_PULL_FLAGS_BAREUSERONLY_FILES;
if (opt_commit_only)
pullflags |= OSTREE_REPO_PULL_FLAGS_COMMIT_ONLY;

if (opt_disable_fsync)
ostree_repo_set_disable_fsync (repo, TRUE);
Expand Down
16 changes: 14 additions & 2 deletions tests/basic-test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

set -euo pipefail

echo "1..$((85 + ${extra_basic_tests:-0}))"
echo "1..$((86 + ${extra_basic_tests:-0}))"

CHECKOUT_U_ARG=""
CHECKOUT_H_ARGS="-H"
Expand Down Expand Up @@ -762,7 +762,19 @@ echo "ok subdir noent"

if ! skip_one_without_user_xattrs; then
cd ${test_tmpdir}
mkdir repo3
mkdir repo4
ostree_repo_init repo4 --mode=bare-user
${CMD_PREFIX} ostree --repo=repo4 pull-local --commit-metadata-only repo test2
csum1=$($OSTREE rev-parse test2)
csum2=$(${CMD_PREFIX} ostree --repo=repo4 rev-parse test2)
assert_streq "${csum1}" "${csum2}"
test -f repo4/state/$csum1.commitpartial
echo "ok pull-local --commit-metadata-only"
rm -rf repo4
fi

if ! skip_one_without_user_xattrs; then
cd ${test_tmpdir}
ostree_repo_init repo3 --mode=bare-user
${CMD_PREFIX} ostree --repo=repo3 pull-local --remote=aremote repo test2
${CMD_PREFIX} ostree --repo=repo3 rev-parse aremote/test2
Expand Down

0 comments on commit 1dcebe8

Please sign in to comment.