sha1-name.c: remove the_repo from diagnose_invalid_index_path()

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Nguyễn Thái Ngọc Duy 2019-04-16 16:33:34 +07:00 committed by Junio C Hamano
parent c931ba4e78
commit 0488481e79
3 changed files with 15 additions and 4 deletions

8
dir.c
View File

@ -2315,6 +2315,14 @@ int file_exists(const char *f)
return lstat(f, &sb) == 0; return lstat(f, &sb) == 0;
} }
int repo_file_exists(struct repository *repo, const char *path)
{
if (repo != the_repository)
BUG("do not know how to check file existence in arbitrary repo");
return file_exists(path);
}
static int cmp_icase(char a, char b) static int cmp_icase(char a, char b)
{ {
if (a == b) if (a == b)

4
dir.h
View File

@ -269,7 +269,9 @@ extern void add_exclude(const char *string, const char *base,
int baselen, struct exclude_list *el, int srcpos); int baselen, struct exclude_list *el, int srcpos);
extern void clear_exclude_list(struct exclude_list *el); extern void clear_exclude_list(struct exclude_list *el);
extern void clear_directory(struct dir_struct *dir); extern void clear_directory(struct dir_struct *dir);
extern int file_exists(const char *);
int repo_file_exists(struct repository *repo, const char *path);
int file_exists(const char *);
extern int is_inside_dir(const char *dir); extern int is_inside_dir(const char *dir);
extern int dir_inside_of(const char *subdir, const char *dir); extern int dir_inside_of(const char *subdir, const char *dir);

View File

@ -1664,11 +1664,12 @@ static void diagnose_invalid_oid_path(const char *prefix,
} }
/* Must be called only when :stage:filename doesn't exist. */ /* Must be called only when :stage:filename doesn't exist. */
static void diagnose_invalid_index_path(struct index_state *istate, static void diagnose_invalid_index_path(struct repository *r,
int stage, int stage,
const char *prefix, const char *prefix,
const char *filename) const char *filename)
{ {
struct index_state *istate = r->index;
const struct cache_entry *ce; const struct cache_entry *ce;
int pos; int pos;
unsigned namelen = strlen(filename); unsigned namelen = strlen(filename);
@ -1708,7 +1709,7 @@ static void diagnose_invalid_index_path(struct index_state *istate,
ce_stage(ce), filename); ce_stage(ce), filename);
} }
if (file_exists(filename)) if (repo_file_exists(r, filename))
die("Path '%s' exists on disk, but not in the index.", filename); die("Path '%s' exists on disk, but not in the index.", filename);
if (is_missing_file_error(errno)) if (is_missing_file_error(errno))
die("Path '%s' does not exist (neither on disk nor in the index).", die("Path '%s' does not exist (neither on disk nor in the index).",
@ -1814,7 +1815,7 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo,
pos++; pos++;
} }
if (only_to_die && name[1] && name[1] != '/') if (only_to_die && name[1] && name[1] != '/')
diagnose_invalid_index_path(repo->index, stage, prefix, cp); diagnose_invalid_index_path(repo, stage, prefix, cp);
free(new_path); free(new_path);
return -1; return -1;
} }