зеркало из https://github.com/microsoft/git.git
read-cache.c: replace update_index_if_able with repo_&
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:
Родитель
e1ff0a32e4
Коммит
1b0d968b34
|
@ -1396,7 +1396,7 @@ int cmd_status(int argc, const char **argv, const char *prefix)
|
||||||
wt_status_collect(&s);
|
wt_status_collect(&s);
|
||||||
|
|
||||||
if (0 <= fd)
|
if (0 <= fd)
|
||||||
update_index_if_able(&the_index, &index_lock);
|
repo_update_index_if_able(the_repository, &index_lock);
|
||||||
|
|
||||||
if (s.relative_paths)
|
if (s.relative_paths)
|
||||||
s.prefix = prefix;
|
s.prefix = prefix;
|
||||||
|
|
|
@ -634,7 +634,7 @@ int cmd_describe(int argc, const char **argv, const char *prefix)
|
||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
fd = hold_locked_index(&index_lock, 0);
|
fd = hold_locked_index(&index_lock, 0);
|
||||||
if (0 <= fd)
|
if (0 <= fd)
|
||||||
update_index_if_able(&the_index, &index_lock);
|
repo_update_index_if_able(the_repository, &index_lock);
|
||||||
|
|
||||||
repo_init_revisions(the_repository, &revs, prefix);
|
repo_init_revisions(the_repository, &revs, prefix);
|
||||||
argv_array_pushv(&args, diff_index_args);
|
argv_array_pushv(&args, diff_index_args);
|
||||||
|
|
|
@ -212,7 +212,7 @@ static void refresh_index_quietly(void)
|
||||||
discard_cache();
|
discard_cache();
|
||||||
read_cache();
|
read_cache();
|
||||||
refresh_cache(REFRESH_QUIET|REFRESH_UNMERGED);
|
refresh_cache(REFRESH_QUIET|REFRESH_UNMERGED);
|
||||||
update_index_if_able(&the_index, &lock_file);
|
repo_update_index_if_able(the_repository, &lock_file);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int builtin_diff_files(struct rev_info *revs, int argc, const char **argv)
|
static int builtin_diff_files(struct rev_info *revs, int argc, const char **argv)
|
||||||
|
|
|
@ -1020,8 +1020,7 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
|
||||||
refresh_index(the_repository->index, REFRESH_QUIET, NULL, NULL,
|
refresh_index(the_repository->index, REFRESH_QUIET, NULL, NULL,
|
||||||
NULL);
|
NULL);
|
||||||
if (0 <= fd)
|
if (0 <= fd)
|
||||||
update_index_if_able(the_repository->index,
|
repo_update_index_if_able(the_repository, &lock_file);
|
||||||
&lock_file);
|
|
||||||
rollback_lock_file(&lock_file);
|
rollback_lock_file(&lock_file);
|
||||||
|
|
||||||
if (has_unstaged_changes(the_repository, 1)) {
|
if (has_unstaged_changes(the_repository, 1)) {
|
||||||
|
@ -1378,7 +1377,7 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
|
||||||
fd = hold_locked_index(&lock_file, 0);
|
fd = hold_locked_index(&lock_file, 0);
|
||||||
refresh_cache(REFRESH_QUIET);
|
refresh_cache(REFRESH_QUIET);
|
||||||
if (0 <= fd)
|
if (0 <= fd)
|
||||||
update_index_if_able(&the_index, &lock_file);
|
repo_update_index_if_able(the_repository, &lock_file);
|
||||||
rollback_lock_file(&lock_file);
|
rollback_lock_file(&lock_file);
|
||||||
|
|
||||||
if (has_unstaged_changes(the_repository, 1) ||
|
if (has_unstaged_changes(the_repository, 1) ||
|
||||||
|
|
6
cache.h
6
cache.h
|
@ -823,12 +823,6 @@ extern void fill_stat_cache_info(struct cache_entry *ce, struct stat *st);
|
||||||
extern int refresh_index(struct index_state *, unsigned int flags, const struct pathspec *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);
|
||||||
extern struct cache_entry *refresh_cache_entry(struct index_state *, struct cache_entry *, unsigned int);
|
extern struct cache_entry *refresh_cache_entry(struct index_state *, struct cache_entry *, unsigned int);
|
||||||
|
|
||||||
/*
|
|
||||||
* Opportunistically update the index but do not complain if we can't.
|
|
||||||
* The lockfile is always committed or rolled back.
|
|
||||||
*/
|
|
||||||
extern void update_index_if_able(struct index_state *, struct lock_file *);
|
|
||||||
|
|
||||||
extern void set_alternate_index_output(const char *);
|
extern void set_alternate_index_output(const char *);
|
||||||
|
|
||||||
extern int verify_index_checksum;
|
extern int verify_index_checksum;
|
||||||
|
|
14
read-cache.c
14
read-cache.c
|
@ -2654,9 +2654,9 @@ out:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int verify_index(const struct index_state *istate)
|
static int repo_verify_index(struct repository *repo)
|
||||||
{
|
{
|
||||||
return verify_index_from(istate, get_index_file());
|
return verify_index_from(repo->index, repo->index_file);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int has_racy_timestamp(struct index_state *istate)
|
static int has_racy_timestamp(struct index_state *istate)
|
||||||
|
@ -2672,11 +2672,13 @@ static int has_racy_timestamp(struct index_state *istate)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void update_index_if_able(struct index_state *istate, struct lock_file *lockfile)
|
void repo_update_index_if_able(struct repository *repo,
|
||||||
|
struct lock_file *lockfile)
|
||||||
{
|
{
|
||||||
if ((istate->cache_changed || has_racy_timestamp(istate)) &&
|
if ((repo->index->cache_changed ||
|
||||||
verify_index(istate))
|
has_racy_timestamp(repo->index)) &&
|
||||||
write_locked_index(istate, lockfile, COMMIT_LOCK);
|
repo_verify_index(repo))
|
||||||
|
write_locked_index(repo->index, lockfile, COMMIT_LOCK);
|
||||||
else
|
else
|
||||||
rollback_lock_file(lockfile);
|
rollback_lock_file(lockfile);
|
||||||
}
|
}
|
||||||
|
|
|
@ -140,5 +140,11 @@ int repo_read_index_preload(struct repository *,
|
||||||
const struct pathspec *pathspec,
|
const struct pathspec *pathspec,
|
||||||
unsigned refresh_flags);
|
unsigned refresh_flags);
|
||||||
int repo_read_index_unmerged(struct repository *);
|
int repo_read_index_unmerged(struct repository *);
|
||||||
|
/*
|
||||||
|
* Opportunistically update the index but do not complain if we can't.
|
||||||
|
* The lockfile is always committed or rolled back.
|
||||||
|
*/
|
||||||
|
void repo_update_index_if_able(struct repository *, struct lock_file *);
|
||||||
|
|
||||||
|
|
||||||
#endif /* REPOSITORY_H */
|
#endif /* REPOSITORY_H */
|
||||||
|
|
|
@ -2378,7 +2378,7 @@ int require_clean_work_tree(struct repository *r,
|
||||||
fd = repo_hold_locked_index(r, &lock_file, 0);
|
fd = repo_hold_locked_index(r, &lock_file, 0);
|
||||||
refresh_index(r->index, REFRESH_QUIET, NULL, NULL, NULL);
|
refresh_index(r->index, REFRESH_QUIET, NULL, NULL, NULL);
|
||||||
if (0 <= fd)
|
if (0 <= fd)
|
||||||
update_index_if_able(r->index, &lock_file);
|
repo_update_index_if_able(r, &lock_file);
|
||||||
rollback_lock_file(&lock_file);
|
rollback_lock_file(&lock_file);
|
||||||
|
|
||||||
if (has_unstaged_changes(r, ignore_submodules)) {
|
if (has_unstaged_changes(r, ignore_submodules)) {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче