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

Is there a scriptable way to update the stat-info in the index without having git open and read those files?

From
Elijah Newren <newren@gmail.com>
Date
Aug 22, 2011, 22:28 UTC
Message-ID
<CABPp-BEiN7ffNmvLCvEfz056M_F36j+gV9t6J9-x_=H9q0rZFw@mail.gmail.com>
Hi,
I want to do something really close to
  git update-index -q --refresh
However, I want it to assume the files in the working tree are
unmodified from the index (i.e. don't waste time opening and reading
the file) and simply update the stat information in the index to match
the current files on disk.

Yes, I know that would be unsafe if the files don't have the appropriate contents; I'm promising that they do have the appropriate contents and don't want to pay the performance penalty for git to verify. Is that possible?

A little more detail, for the curious: I have a script that is, among other things, renaming large numbers of files. Calling 'git mv <old> <new>' on each pair took forever. So I switched to manually renaming the files in the working copy myself, and using git update-index --index-info to do the renames in the index. The result was _much_ faster, but of course that method blows away all the stat information for the relevant files and causes any subsequent git operation (after my script is done) to be slow. I inserted a 'git update-index -q --refresh' at the end of my script to fix that, but that is much slower than I want since it has to re-read all the affected files to ensure they haven't been modified (however, it isn't as slow as forking many git-mv processes). I've tried to look for a way to speed up this update, but haven't found one. Did I miss it?

Thanks, Elijah

Next: Junio C Hamano
Message 1 of 3 in “Is there a scriptable way to update the stat-info in the index without having git open and read those files?”
  1. Elijah NewrenAug 22, 2011
  2. Junio C HamanoAug 22, 2011
  3. Pete WyckoffAug 27, 2011

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.