зеркало из https://github.com/microsoft/git.git
Merge branch 'rs/check-ignore-multi'
"git check-ignore" with multiple paths got confused when one is a file and the other is a directory, which has been fixed. * rs/check-ignore-multi: check-ignore: fix mix of directories and other file types
This commit is contained in:
Коммит
796a788a1c
|
@ -72,7 +72,7 @@ static int check_ignore(struct dir_struct *dir,
|
|||
{
|
||||
const char *full_path;
|
||||
char *seen;
|
||||
int num_ignored = 0, dtype = DT_UNKNOWN, i;
|
||||
int num_ignored = 0, i;
|
||||
struct exclude *exclude;
|
||||
struct pathspec pathspec;
|
||||
|
||||
|
@ -104,6 +104,7 @@ static int check_ignore(struct dir_struct *dir,
|
|||
full_path = pathspec.items[i].match;
|
||||
exclude = NULL;
|
||||
if (!seen[i]) {
|
||||
int dtype = DT_UNKNOWN;
|
||||
exclude = last_exclude_matching(dir, &the_index,
|
||||
full_path, &dtype);
|
||||
}
|
||||
|
|
|
@ -775,6 +775,26 @@ test_expect_success PIPE 'streaming support for --stdin' '
|
|||
echo "$response" | grep "^:: two"
|
||||
'
|
||||
|
||||
test_expect_success 'existing file and directory' '
|
||||
test_when_finished "rm one" &&
|
||||
test_when_finished "rmdir top-level-dir" &&
|
||||
>one &&
|
||||
mkdir top-level-dir &&
|
||||
git check-ignore one top-level-dir >actual &&
|
||||
grep one actual &&
|
||||
grep top-level-dir actual
|
||||
'
|
||||
|
||||
test_expect_success 'existing directory and file' '
|
||||
test_when_finished "rm one" &&
|
||||
test_when_finished "rmdir top-level-dir" &&
|
||||
>one &&
|
||||
mkdir top-level-dir &&
|
||||
git check-ignore top-level-dir one >actual &&
|
||||
grep one actual &&
|
||||
grep top-level-dir actual
|
||||
'
|
||||
|
||||
############################################################################
|
||||
#
|
||||
# test whitespace handling
|
||||
|
|
Загрузка…
Ссылка в новой задаче