git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [RFC] Add posibility to preload stat information.

From
Jeff King <peff@peff.net>
Date
Mar 20, 2013, 16:48 UTC
Message-ID
<20130320164806.GA10752@sigill.intra.peff.net>
In-Reply-To
<1363781732-11396-1-git-send-email-iveqy@iveqy.com>
On Wed, Mar 20, 2013 at 01:15:32PM +0100, Fredrik Gustafsson wrote:
Show 5 quoted lines
> When entering a git working dir, optionally run a forked process that
> stat all files in the whole workdir and therefore loads stat information
> to RAM which will speedup things like git status and so on.
> 
> The feature is optional and by default it's off.
Kind of gross, but I guess it is useful to some people.
Show 5 quoted lines
> +__git_recursive_stat ()
> +{
> +	if test ! -e /tmp/gitbash.lock
> +	then
> +		touch /tmp/gitbash.lock
This is a tmp-race security hole. E.g., do:
  ln -s /etc/nologin /tmp/gitbash.lock

as a user; when root runs __git_recursive_stat, it will create /etc/nologin. It's not quite as bad as some other holes, because we only "touch" the file, not overwrite its contents, but you can see that it's possible to do some mischief.

Should this maybe just be ~/.gitbash.lock or something?
> +		cd $(git rev-parse --show-toplevel)
> +		find . | xargs stat 2&> /dev/null

The "stat" utility is not portable. But why not use git to do the reading? Then you can get the benefit of core.preloadindex, and you will not recurse into untracked directories that are ignored (i.e., ones that git would not go into anyway).

So maybe just run "git status >/dev/null"?
-Peff
Previous: Fredrik GustafssonNext: Junio C Hamano
Message 2 of 13 in “[RFC] Add posibility to preload stat information.”
  1. Fredrik GustafssonMar 20, 2013
  2. Jeff KingMar 20, 2013
  3. Junio C HamanoMar 20, 2013
  4. Jeff KingMar 20, 2013
  5. Thomas RastMar 21, 2013
  6. Junio C HamanoMar 21, 2013
  7. Phil HordMar 30, 2013
  8. Fredrik GustafssonMar 20, 2013
  9. Ramkumar RamachandraMar 20, 2013
  10. Fredrik GustafssonMar 20, 2013
  11. Ramkumar RamachandraMar 20, 2013
  12. Fredrik GustafssonMar 20, 2013
  13. Jeff KingMar 20, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.