From: Junio C Hamano Date: Sat, 16 Jan 2010 04:39:31 GMT Subject: Re: [PATCH 1/2] rm: only refresh entries that we may touch Message-ID: <7v8wbyiry4.fsf@alter.siamese.dyndns.org> In-Reply-To: <1263481341-28401-2-git-send-email-pclouds@gmail.com> Nguyễn Thái Ngọc Duy writes: > diff --git a/builtin-rm.c b/builtin-rm.c > index 57975db..4cac3d1 100644 > --- a/builtin-rm.c > +++ b/builtin-rm.c > @@ -169,7 +169,6 @@ int cmd_rm(int argc, const char **argv, const char *prefix) > > if (read_cache() < 0) > die("index file corrupt"); > - refresh_cache(REFRESH_QUIET); > > pathspec = get_pathspec(prefix, argv); > seen = NULL; > @@ -181,6 +180,7 @@ int cmd_rm(int argc, const char **argv, const char *prefix) > struct cache_entry *ce = active_cache[i]; > if (!match_pathspec(pathspec, ce->name, ce_namelen(ce), 0, seen)) > continue; > + refresh_cache_entry(ce, 1); Why does this pass "1" instead of "0"? The existing code does not give refresh_cache() REFRESH_REALLY bit, and a patch that is marked as a pure optimization should pass 0. If you really mean it, please spell it as CE_MATCH_IGNORE_VALID and justify why it is a good change in a separate patch. Thanks.