Break down no-lstat() condition checks in verify_uptodate()
Make it easier to grok under what conditions we can skip lstat(). While at there, shorten ie_match_stat() line for the sake of my eyes. 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
dd008b3b11
commit
d5b6629904
@ -1166,11 +1166,22 @@ static int verify_uptodate_1(struct cache_entry *ce,
|
|||||||
{
|
{
|
||||||
struct stat st;
|
struct stat st;
|
||||||
|
|
||||||
if (o->index_only || (!((ce->ce_flags & CE_VALID) || ce_skip_worktree(ce)) && (o->reset || ce_uptodate(ce))))
|
if (o->index_only)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* CE_VALID and CE_SKIP_WORKTREE cheat, we better check again
|
||||||
|
* if this entry is truly up-to-date because this file may be
|
||||||
|
* overwritten.
|
||||||
|
*/
|
||||||
|
if ((ce->ce_flags & CE_VALID) || ce_skip_worktree(ce))
|
||||||
|
; /* keep checking */
|
||||||
|
else if (o->reset || ce_uptodate(ce))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (!lstat(ce->name, &st)) {
|
if (!lstat(ce->name, &st)) {
|
||||||
unsigned changed = ie_match_stat(o->src_index, ce, &st, CE_MATCH_IGNORE_VALID|CE_MATCH_IGNORE_SKIP_WORKTREE);
|
int flags = CE_MATCH_IGNORE_VALID|CE_MATCH_IGNORE_SKIP_WORKTREE;
|
||||||
|
unsigned changed = ie_match_stat(o->src_index, ce, &st, flags);
|
||||||
if (!changed)
|
if (!changed)
|
||||||
return 0;
|
return 0;
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user