apply --cached: do not check newly added file in the working tree

The --cached mode does not deal with the working tree, so we
should not check it with lstat.  An earlier code omitted the
call to lstat but forgot to omit the check for the errno.

Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Junio C Hamano 2006-05-17 16:56:13 -07:00
Родитель b7627278e2
Коммит d91d4c2c50
1 изменённых файлов: 6 добавлений и 4 удалений

10
apply.c
Просмотреть файл

@ -1711,10 +1711,12 @@ static int check_patch(struct patch *patch)
if (new_name && (patch->is_new | patch->is_rename | patch->is_copy)) {
if (check_index && cache_name_pos(new_name, strlen(new_name)) >= 0)
return error("%s: already exists in index", new_name);
if (!cached && !lstat(new_name, &st))
return error("%s: already exists in working directory", new_name);
if (errno != ENOENT)
return error("%s: %s", new_name, strerror(errno));
if (!cached) {
if (!lstat(new_name, &st))
return error("%s: already exists in working directory", new_name);
if (errno != ENOENT)
return error("%s: %s", new_name, strerror(errno));
}
if (!patch->new_mode) {
if (patch->is_new)
patch->new_mode = S_IFREG | 0644;