convert refresh_index to take struct pathspec
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:
parent
17ddc66e70
commit
9b2d61499b
@ -226,19 +226,18 @@ static char *prune_directory(struct dir_struct *dir, const char **pathspec,
|
||||
return seen;
|
||||
}
|
||||
|
||||
static void refresh(int verbose, const char **pathspec)
|
||||
static void refresh(int verbose, const struct pathspec *pathspec)
|
||||
{
|
||||
char *seen;
|
||||
int i, specs;
|
||||
int i;
|
||||
|
||||
for (specs = 0; pathspec[specs]; specs++)
|
||||
/* nothing */;
|
||||
seen = xcalloc(specs, 1);
|
||||
seen = xcalloc(pathspec->nr, 1);
|
||||
refresh_index(&the_index, verbose ? REFRESH_IN_PORCELAIN : REFRESH_QUIET,
|
||||
pathspec, seen, _("Unstaged changes after refreshing the index:"));
|
||||
for (i = 0; i < specs; i++) {
|
||||
for (i = 0; i < pathspec->nr; i++) {
|
||||
if (!seen[i])
|
||||
die(_("pathspec '%s' did not match any files"), pathspec[i]);
|
||||
die(_("pathspec '%s' did not match any files"),
|
||||
pathspec->items[i].match);
|
||||
}
|
||||
free(seen);
|
||||
}
|
||||
@ -524,7 +523,7 @@ int cmd_add(int argc, const char **argv, const char *prefix)
|
||||
}
|
||||
|
||||
if (refresh_only) {
|
||||
refresh(verbose, pathspec.raw);
|
||||
refresh(verbose, &pathspec);
|
||||
goto finish;
|
||||
}
|
||||
if (implicit_dot && prefix)
|
||||
|
@ -1244,7 +1244,7 @@ int cmd_status(int argc, const char **argv, const char *prefix)
|
||||
prefix, argv);
|
||||
|
||||
read_cache_preload(&s.pathspec);
|
||||
refresh_index(&the_index, REFRESH_QUIET|REFRESH_UNMERGED, s.pathspec.raw, NULL, NULL);
|
||||
refresh_index(&the_index, REFRESH_QUIET|REFRESH_UNMERGED, &s.pathspec, NULL, NULL);
|
||||
|
||||
fd = hold_locked_index(&index_lock, 0);
|
||||
if (0 <= fd)
|
||||
|
@ -314,7 +314,7 @@ int cmd_rm(int argc, const char **argv, const char *prefix)
|
||||
}
|
||||
|
||||
parse_pathspec(&pathspec, 0, PATHSPEC_PREFER_CWD, prefix, argv);
|
||||
refresh_index(&the_index, REFRESH_QUIET, pathspec.raw, NULL, NULL);
|
||||
refresh_index(&the_index, REFRESH_QUIET, &pathspec, NULL, NULL);
|
||||
|
||||
seen = NULL;
|
||||
seen = xcalloc(pathspec.nr, 1);
|
||||
|
2
cache.h
2
cache.h
@ -520,7 +520,7 @@ extern void fill_stat_cache_info(struct cache_entry *ce, struct stat *st);
|
||||
#define REFRESH_IGNORE_MISSING 0x0008 /* ignore non-existent */
|
||||
#define REFRESH_IGNORE_SUBMODULES 0x0010 /* ignore submodules */
|
||||
#define REFRESH_IN_PORCELAIN 0x0020 /* user friendly output, not "needs update" */
|
||||
extern int refresh_index(struct index_state *, unsigned int flags, const char **pathspec, char *seen, const char *header_msg);
|
||||
extern int refresh_index(struct index_state *, unsigned int flags, const struct pathspec *pathspec, char *seen, const char *header_msg);
|
||||
|
||||
struct lock_file {
|
||||
struct lock_file *next;
|
||||
|
@ -1114,7 +1114,8 @@ static void show_file(const char * fmt, const char * name, int in_porcelain,
|
||||
printf(fmt, name);
|
||||
}
|
||||
|
||||
int refresh_index(struct index_state *istate, unsigned int flags, const char **pathspec,
|
||||
int refresh_index(struct index_state *istate, unsigned int flags,
|
||||
const struct pathspec *pathspec,
|
||||
char *seen, const char *header_msg)
|
||||
{
|
||||
int i;
|
||||
@ -1149,7 +1150,7 @@ int refresh_index(struct index_state *istate, unsigned int flags, const char **p
|
||||
continue;
|
||||
|
||||
if (pathspec &&
|
||||
!match_pathspec(pathspec, ce->name, ce_namelen(ce), 0, seen))
|
||||
!match_pathspec_depth(pathspec, ce->name, ce_namelen(ce), 0, seen))
|
||||
filtered = 1;
|
||||
|
||||
if (ce_stage(ce)) {
|
||||
|
Loading…
Reference in New Issue
Block a user