зеркало из https://github.com/microsoft/git.git
ls-tree $di $dir: do not mistakenly recurse into directories
When applying two pathspecs, one of which is named as a prefix to the other, we mistakenly recursed into the shorter one. Noticed and fixed by David Reis. Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
9904fadfea
Коммит
b294ed637d
|
@ -52,6 +52,8 @@ static int show_recursive(const char *base, int baselen, const char *pathname)
|
|||
speclen = strlen(spec);
|
||||
if (speclen <= len)
|
||||
continue;
|
||||
if (spec[len] && spec[len] != '/')
|
||||
continue;
|
||||
if (memcmp(pathname, spec, len))
|
||||
continue;
|
||||
return 1;
|
||||
|
|
|
@ -165,4 +165,13 @@ test_expect_success \
|
|||
EOF
|
||||
test_output'
|
||||
|
||||
test_expect_success \
|
||||
'ls-tree with one path a prefix of the other' \
|
||||
'git ls-tree $tree path2/baz path2/bazbo >current &&
|
||||
make_expected <<\EOF &&
|
||||
040000 tree X path2/baz
|
||||
120000 blob X path2/bazbo
|
||||
EOF
|
||||
test_output'
|
||||
|
||||
test_done
|
||||
|
|
Загрузка…
Ссылка в новой задаче