Re: [RFC] Add posibility to preload stat information.
- From
Thomas Rast <trast@student.ethz.ch>
- Date
- Mar 21, 2013, 10:41 UTC
- Message-ID
- <87vc8lyqz7.fsf@pctrast.inf.ethz.ch>
- In-Reply-To
- <20130320174759.GA29349@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 24 quoted lines
> On Wed, Mar 20, 2013 at 10:15:39AM -0700, Junio C Hamano wrote: > >> Jeff King <peff@peff.net> writes: >> >> > So maybe just run "git status >/dev/null"? >> >> In the background? How often would it run? I do not think a single >> lockfile solves anything. It may prevent simultaneous runs of two >> such "prime the well" processes, but the same user may be working in >> two separate repositories. > > Yes, in the background (he invokes __git_recursive_stat already in the > background). I'd think you would want to run it whenever you enter a > repository. > >> I do not see anything that prevents it from running in the same >> repository over and over again, either. "prompt" is a bad place to >> do this kind of thing. > > Yeah, I did not look closely at that. The commit message claims "When > entering a git working dir", but the implementation runs it on each > prompt invocation, which is awful. I think you'd want to check to use > rev-parse to see if you have changed into a new git repo, and only run > it once then.
I think it would actually be a somewhat interesting feature if it interacted with GIT_PS1_SHOW*. If you use these settings (I personally use SHOWDIRTYSTATE but not SHOWUNTRACKEDFILES), the prompt hangs while __git_ps1 runs git-status. It should be possible to run a git-status process in the background when entering a repository, and displaying some marker ('??' maybe) in the prompt instead of the dirty-state info until git-status has finished. That way the user doesn't have his shell blocked by cding to a big repo.
--
Thomas Rast
trast@{inf,student}.ethz.ch