Browse Source

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
maint
Junio C Hamano 8 years ago
parent
commit
44427a0c18
  1. 2
      pathspec.c
  2. 22
      t/t3701-add-interactive.sh

2
pathspec.c

@ -505,7 +505,7 @@ static void init_pathspec_item(struct pathspec_item *item, unsigned flags, @@ -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 */

22
t/t3701-add-interactive.sh

@ -436,6 +436,28 @@ test_expect_success 'add -p handles globs' ' @@ -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 &&


Loading…
Cancel
Save