convert add_files_to_cache 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:

committed by
Junio C Hamano

parent
7327d3d1b7
commit
3efe8e4381
@ -166,14 +166,16 @@ static void update_callback(struct diff_queue_struct *q,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void update_files_in_cache(const char *prefix, const char **pathspec,
|
static void update_files_in_cache(const char *prefix,
|
||||||
|
const struct pathspec *pathspec,
|
||||||
struct update_callback_data *data)
|
struct update_callback_data *data)
|
||||||
{
|
{
|
||||||
struct rev_info rev;
|
struct rev_info rev;
|
||||||
|
|
||||||
init_revisions(&rev, prefix);
|
init_revisions(&rev, prefix);
|
||||||
setup_revisions(0, NULL, &rev, NULL);
|
setup_revisions(0, NULL, &rev, NULL);
|
||||||
init_pathspec(&rev.prune_data, pathspec);
|
if (pathspec)
|
||||||
|
copy_pathspec(&rev.prune_data, pathspec);
|
||||||
rev.diffopt.output_format = DIFF_FORMAT_CALLBACK;
|
rev.diffopt.output_format = DIFF_FORMAT_CALLBACK;
|
||||||
rev.diffopt.format_callback = update_callback;
|
rev.diffopt.format_callback = update_callback;
|
||||||
rev.diffopt.format_callback_data = data;
|
rev.diffopt.format_callback_data = data;
|
||||||
@ -181,7 +183,8 @@ static void update_files_in_cache(const char *prefix, const char **pathspec,
|
|||||||
run_diff_files(&rev, DIFF_RACY_IS_MODIFIED);
|
run_diff_files(&rev, DIFF_RACY_IS_MODIFIED);
|
||||||
}
|
}
|
||||||
|
|
||||||
int add_files_to_cache(const char *prefix, const char **pathspec, int flags)
|
int add_files_to_cache(const char *prefix,
|
||||||
|
const struct pathspec *pathspec, int flags)
|
||||||
{
|
{
|
||||||
struct update_callback_data data;
|
struct update_callback_data data;
|
||||||
|
|
||||||
@ -571,7 +574,7 @@ int cmd_add(int argc, const char **argv, const char *prefix)
|
|||||||
memset(&pathspec, 0, sizeof(pathspec));
|
memset(&pathspec, 0, sizeof(pathspec));
|
||||||
}
|
}
|
||||||
update_data.flags = flags & ~ADD_CACHE_IMPLICIT_DOT;
|
update_data.flags = flags & ~ADD_CACHE_IMPLICIT_DOT;
|
||||||
update_files_in_cache(prefix, pathspec.raw, &update_data);
|
update_files_in_cache(prefix, &pathspec, &update_data);
|
||||||
|
|
||||||
exit_status |= !!update_data.add_errors;
|
exit_status |= !!update_data.add_errors;
|
||||||
if (add_new_files)
|
if (add_new_files)
|
||||||
|
@ -336,7 +336,7 @@ static char *prepare_index(int argc, const char **argv, const char *prefix,
|
|||||||
*/
|
*/
|
||||||
if (all || (also && pathspec.nr)) {
|
if (all || (also && pathspec.nr)) {
|
||||||
fd = hold_locked_index(&index_lock, 1);
|
fd = hold_locked_index(&index_lock, 1);
|
||||||
add_files_to_cache(also ? prefix : NULL, pathspec.raw, 0);
|
add_files_to_cache(also ? prefix : NULL, &pathspec, 0);
|
||||||
refresh_cache_or_die(refresh_flags);
|
refresh_cache_or_die(refresh_flags);
|
||||||
update_main_cache_tree(WRITE_TREE_SILENT);
|
update_main_cache_tree(WRITE_TREE_SILENT);
|
||||||
if (write_cache(fd, active_cache, active_nr) ||
|
if (write_cache(fd, active_cache, active_nr) ||
|
||||||
|
2
cache.h
2
cache.h
@ -1278,7 +1278,7 @@ void packet_trace_identity(const char *prog);
|
|||||||
* return 0 if success, 1 - if addition of a file failed and
|
* return 0 if success, 1 - if addition of a file failed and
|
||||||
* ADD_FILES_IGNORE_ERRORS was specified in flags
|
* ADD_FILES_IGNORE_ERRORS was specified in flags
|
||||||
*/
|
*/
|
||||||
int add_files_to_cache(const char *prefix, const char **pathspec, int flags);
|
int add_files_to_cache(const char *prefix, const struct pathspec *pathspec, int flags);
|
||||||
|
|
||||||
/* diff.c */
|
/* diff.c */
|
||||||
extern int diff_auto_refresh_index;
|
extern int diff_auto_refresh_index;
|
||||||
|
Reference in New Issue
Block a user