Skip to content

Commit

Permalink
checkout: Fix bare-user symlink checkouts
Browse files Browse the repository at this point in the history
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: ostreedev#798

Closes: ostreedev#799
Approved by: jlebon
  • Loading branch information
cgwalters authored and rh-atomic-bot committed Apr 18, 2017
1 parent b9df96d commit 08964d5
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/libostree/ostree-repo-checkout.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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.
Expand Down
1 change: 1 addition & 0 deletions tests/basic-test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
)
}

Expand Down

0 comments on commit 08964d5

Please sign in to comment.