diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-04-26 15:39:03 +0900 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-04-26 15:39:03 +0900 |
commit | 44427a0c18c0179be72223650715f031a10a5e66 (patch) | |
tree | 09eac9c685901b249bef83acaa93e21e18dd366a | |
parent | Merge branch 'pc/t2027-git-to-pipe-cleanup' (diff) | |
parent | pathspec: honor `PATHSPEC_PREFIX_ORIGIN` with empty prefix (diff) | |
download | tgif-44427a0c18c0179be72223650715f031a10a5e66.tar.xz |
Merge branch 'ps/pathspec-empty-prefix-origin'
A recent update broke "git add -p ../foo" from a subdirectory.
* ps/pathspec-empty-prefix-origin:
pathspec: honor `PATHSPEC_PREFIX_ORIGIN` with empty prefix
-rw-r--r-- | pathspec.c | 2 | ||||
-rwxr-xr-x | t/t3701-add-interactive.sh | 22 |
2 files changed, 23 insertions, 1 deletions
diff --git a/pathspec.c b/pathspec.c index 69ef86b85a..50f76fff45 100644 --- a/pathspec.c +++ b/pathspec.c @@ -505,7 +505,7 @@ static void init_pathspec_item(struct pathspec_item *item, unsigned flags, * original. Useful for passing to another command. */ if ((flags & PATHSPEC_PREFIX_ORIGIN) && - prefixlen && !get_literal_global()) { + !get_literal_global()) { struct strbuf sb = STRBUF_INIT; /* Preserve the actual prefix length of each pattern */ diff --git a/t/t3701-add-interactive.sh b/t/t3701-add-interactive.sh index f9528fa00c..2ecb43a616 100755 --- a/t/t3701-add-interactive.sh +++ b/t/t3701-add-interactive.sh @@ -436,6 +436,28 @@ test_expect_success 'add -p handles globs' ' test_cmp expect actual ' +test_expect_success 'add -p handles relative paths' ' + git reset --hard && + + echo base >relpath.c && + git add "*.c" && + git commit -m relpath && + + echo change >relpath.c && + mkdir -p subdir && + git -C subdir add -p .. 2>error <<-\EOF && + y + EOF + + test_must_be_empty error && + + cat >expect <<-\EOF && + relpath.c + EOF + git diff --cached --name-only >actual && + test_cmp expect actual +' + test_expect_success 'add -p does not expand argument lists' ' git reset --hard && |