Skip to content

Commit

Permalink
checkout: work from a subdirectory
Browse files Browse the repository at this point in the history
When switching branches from a subdirectory, checkout rewritten
in C extracted the toplevel of the tree in there.

This should fix it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Junio C Hamano committed Feb 21, 2008
1 parent b0030db commit 6010d2d
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 1 deletion.
1 change: 0 additions & 1 deletion builtin-checkout.c
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,6 @@ static int merge_working_tree(struct checkout_opts *opts,
topts.dir = xcalloc(1, sizeof(*topts.dir));
topts.dir->show_ignored = 1;
topts.dir->exclude_per_dir = ".gitignore";
topts.prefix = prefix;
tree = parse_tree_indirect(old->commit->object.sha1);
init_tree_desc(&trees[0], tree->buffer, tree->size);
tree = parse_tree_indirect(new->commit->object.sha1);
Expand Down
34 changes: 34 additions & 0 deletions t/t7201-co.sh
Original file line number Diff line number Diff line change
Expand Up @@ -263,4 +263,38 @@ test_expect_success 'checkout with ambiguous tag/branch names' '
'

test_expect_success 'switch branches while in subdirectory' '
git reset --hard &&
git checkout master &&
mkdir subs &&
(
cd subs &&
git checkout side
) &&
! test -f subs/one &&
rm -fr subs
'

test_expect_success 'checkout specific path while in subdirectory' '
git reset --hard &&
git checkout side &&
mkdir subs &&
>subs/bero &&
git add subs/bero &&
git commit -m "add subs/bero" &&
git checkout master &&
mkdir -p subs &&
(
cd subs &&
git checkout side -- bero
) &&
test -f subs/bero
'

test_done

0 comments on commit 6010d2d

Please sign in to comment.