зеркало из https://github.com/microsoft/git.git
reset.c: move update_index_refresh() call out of read_from_tree()
The final part of cmd_reset() essentially looks like: if (pathspec) { ... read_from_tree(...); } else { ... reset_index(...); update_index_refresh(...); ... } where read_from_tree() internally also calls update_index_refresh(). Move the call to update_index_refresh() out of read_from_tree for symmetry with the 'else' block, making read_from_tree() and reset_index() closer in functionality. Signed-off-by: Martin von Zweigbergk <martinvonz@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
b489097e1d
Коммит
bf883f3006
|
@ -145,11 +145,8 @@ static void update_index_from_diff(struct diff_queue_struct *q,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int read_from_tree(const char **pathspec, unsigned char *tree_sha1,
|
static int read_from_tree(const char **pathspec, unsigned char *tree_sha1)
|
||||||
int refresh_flags)
|
|
||||||
{
|
{
|
||||||
struct lock_file *lock = xcalloc(1, sizeof(struct lock_file));
|
|
||||||
int index_fd;
|
|
||||||
struct diff_options opt;
|
struct diff_options opt;
|
||||||
|
|
||||||
memset(&opt, 0, sizeof(opt));
|
memset(&opt, 0, sizeof(opt));
|
||||||
|
@ -157,7 +154,6 @@ static int read_from_tree(const char **pathspec, unsigned char *tree_sha1,
|
||||||
opt.output_format = DIFF_FORMAT_CALLBACK;
|
opt.output_format = DIFF_FORMAT_CALLBACK;
|
||||||
opt.format_callback = update_index_from_diff;
|
opt.format_callback = update_index_from_diff;
|
||||||
|
|
||||||
index_fd = hold_locked_index(lock, 1);
|
|
||||||
read_cache();
|
read_cache();
|
||||||
if (do_diff_cache(tree_sha1, &opt))
|
if (do_diff_cache(tree_sha1, &opt))
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -165,7 +161,7 @@ static int read_from_tree(const char **pathspec, unsigned char *tree_sha1,
|
||||||
diff_flush(&opt);
|
diff_flush(&opt);
|
||||||
diff_tree_release_paths(&opt);
|
diff_tree_release_paths(&opt);
|
||||||
|
|
||||||
return update_index_refresh(index_fd, lock, refresh_flags);
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void set_reflog_message(struct strbuf *sb, const char *action,
|
static void set_reflog_message(struct strbuf *sb, const char *action,
|
||||||
|
@ -322,9 +318,13 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
|
||||||
die(_("%s reset is not allowed in a bare repository"),
|
die(_("%s reset is not allowed in a bare repository"),
|
||||||
_(reset_type_names[reset_type]));
|
_(reset_type_names[reset_type]));
|
||||||
|
|
||||||
if (pathspec)
|
if (pathspec) {
|
||||||
return read_from_tree(pathspec, sha1,
|
struct lock_file *lock = xcalloc(1, sizeof(struct lock_file));
|
||||||
|
int index_fd = hold_locked_index(lock, 1);
|
||||||
|
return read_from_tree(pathspec, sha1) ||
|
||||||
|
update_index_refresh(index_fd, lock,
|
||||||
quiet ? REFRESH_QUIET : REFRESH_IN_PORCELAIN);
|
quiet ? REFRESH_QUIET : REFRESH_IN_PORCELAIN);
|
||||||
|
}
|
||||||
|
|
||||||
/* Soft reset does not touch the index file nor the working tree
|
/* Soft reset does not touch the index file nor the working tree
|
||||||
* at all, but requires them in a good order. Other resets reset
|
* at all, but requires them in a good order. Other resets reset
|
||||||
|
|
Загрузка…
Ссылка в новой задаче