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

Re: git reset and ctime

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Dec 4, 2010, 00:51 UTC
Message-ID
<20101204005131.GB15906@burratino>
In-Reply-To
<AANLkTimyYTup+PqJFJ+2g-tVwWXA2bxTT3noonEuKBSu@mail.gmail.com>
Hi Greg,
ghazel@gmail.com wrote:
> I've encountered a strange issue where "git reset --hard" insists on
> "Checking out files ..." when all that is changed is the ctime

There is a performance trade-off. Refreshing the index requires reading+hashing the existing file if the stat information changed; this could be faster or slower than blindly overwriting depending on the situation.

That said, I have no strong objection to an implicit refresh in "git reset" (performance-sensitive scripts should be using read-tree directly anyway). Have you tried making that change to builtin/reset.c? How does it perform in practice?

Show 5 quoted lines
>              My deploy process (capistrano) maintains a cached copy of
> a git repo, which it fetches, resets, and then hardlinks files from
> when a deploy occurs ( https://github.com/37signals/fast_remote_cache
> ). The hardlinking step is meant to save the time of copying the file.
> but hardlinking changes the ctime of the source files.

Interesting. Setting "[core] trustctime = false" in the repository configuration could be a good solution (no performance downside I can think of).

Hope that helps, Jonathan

Previous: ghazel@gmail.comNext: ghazel@gmail.com
Message 2 of 8 in “git reset and ctime”
  1. ghazel@gmail.comDec 3, 2010
  2. Jonathan NiederDec 4, 2010
  3. ghazel@gmail.comDec 4, 2010
  4. Jonathan NiederDec 4, 2010
  5. Junio C HamanoDec 4, 2010
  6. Drew NorthupDec 6, 2010
  7. Jonathan NiederDec 6, 2010
  8. Drew NorthupDec 7, 2010

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.