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

Re: [PATCH 2/2] Windows: Skip fstat/lstat optimization in write_entry()

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Apr 20, 2009, 10:05 UTC
Message-ID
<alpine.DEB.1.00.0904201205010.6955@intel-tinevez-2-302>
In-Reply-To
<49EC2F7C.8070209@viscovery.net>
Hi,
On Mon, 20 Apr 2009, Johannes Sixt wrote:
Show 29 quoted lines
> From: Johannes Sixt <j6t@kdbg.org>
> 
> Commit e4c72923 (write_entry(): use fstat() instead of lstat() when file
> is open, 2009-02-09) introduced an optimization of write_entry().
> Unfortunately, we cannot take advantage of this optimization on Windows
> because there is no guarantee that the time stamps are updated before the
> file is closed:
> 
>   "The only guarantee about a file timestamp is that the file time is
>    correctly reflected when the handle that makes the change is closed."
> 
> (http://msdn.microsoft.com/en-us/library/ms724290(VS.85).aspx)
> 
> The failure of this optimization on Windows can be observed most easily by
> running a 'git checkout' that has to update several large files. In this
> case, 'git checkout' will report modified files, but infact only the
> timestamps were incorrectly recorded in the index, as can be verified by a
> subsequent 'git diff', which shows no change.
> 
> Signed-off-by: Johannes Sixt <j6t@kdbg.org>
> ---
>  My gut feeling was right: We cannot have this optimization on Windows.
> 
>  http://thread.gmane.org/gmane.comp.version-control.git/108351/focus=108357
> 
>  I've a repository where I can reproduce the error quite easily and this
>  fixes it.
> 
>  -- Hannes (who forgot to add Dscho and git@vger on the first send attempt)
You want this in 4msysgit's 'devel' branch, correct?

Ciao, Dscho "who is still interim maintainer ;-)"

Previous: Johannes SixtNext: Dmitry Potapov
Message 2 of 12 in “Windows: Skip fstat/lstat optimization in write_entry()”
  1. 2/2 Windows: Skip fstat/lstat optimization in write_entry()Johannes Sixt, Apr 20, 2009
  2. Johannes SchindelinApr 20, 2009
  3. Dmitry PotapovApr 20, 2009
  4. Hannu KoivistoApr 20, 2009
  5. Alex RiesenApr 20, 2009
  6. Dmitry PotapovApr 20, 2009
  7. Alex RiesenApr 20, 2009
  8. Johannes SixtApr 20, 2009
  9. Alex RiesenApr 20, 2009
  10. Alex RiesenApr 20, 2009
  11. Junio C HamanoApr 20, 2009
  12. Alex RiesenApr 20, 2009

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.