diff options
author | Colin Walters <walters@verbum.org> | 2017-04-18 10:13:45 -0400 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2017-04-18 17:13:18 -0400 |
commit | 53b9b50e3646c2ccea184e0a1b316e466c62e322 (patch) | |
tree | 3db1fc7287c3094a3858f8003abc820ec01116b3 | |
parent | 8742287b117cb8a04d4106d37bfe0e15f9666ef7 (diff) | |
download | ostree-53b9b50e3646c2ccea184e0a1b316e466c62e322.tar.gz |
checkout: Fix bare-user symlink checkouts
Logic error introduced after refactoring; we hoisted the
`is_bare_user_symlink` variable to the top, but its computation
below. But the `is_bare` symlink depended on it.
Closes: https://github.com/ostreedev/ostree/issues/798
Closes: #799
Approved by: jlebon
-rw-r--r-- | src/libostree/ostree-repo-checkout.c | 2 | ||||
-rw-r--r-- | tests/basic-test.sh | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/src/libostree/ostree-repo-checkout.c b/src/libostree/ostree-repo-checkout.c index 392e16fd..71511824 100644 --- a/src/libostree/ostree-repo-checkout.c +++ b/src/libostree/ostree-repo-checkout.c @@ -479,7 +479,6 @@ checkout_one_file_at (OstreeRepo *repo, (current_repo->mode == OSTREE_REPO_MODE_BARE && options->mode == OSTREE_REPO_CHECKOUT_MODE_NONE) || (repo_is_usermode && options->mode == OSTREE_REPO_CHECKOUT_MODE_USER); - gboolean is_bare = is_hardlinkable && !is_bare_user_symlink; gboolean current_can_cache = (options->enable_uncompressed_cache && current_repo->enable_uncompressed_cache); gboolean is_archive_z2_with_cache = (current_repo->mode == OSTREE_REPO_MODE_ARCHIVE_Z2 @@ -491,6 +490,7 @@ checkout_one_file_at (OstreeRepo *repo, * as well as write_object(). */ is_bare_user_symlink = (repo_is_usermode && is_symlink); + const gboolean is_bare = is_hardlinkable && !is_bare_user_symlink; /* Verify if no_copy_fallback is set that we can hardlink, with a * special exception for bare-user symlinks. diff --git a/tests/basic-test.sh b/tests/basic-test.sh index 294854bf..f4b2b118 100644 --- a/tests/basic-test.sh +++ b/tests/basic-test.sh @@ -44,6 +44,7 @@ validate_checkout_basic() { assert_has_file baz/cow assert_file_has_content baz/cow moo assert_has_file baz/deeper/ohyeah + assert_symlink_has_content somelink nosuchfile ) } |