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

Re: [BUG ext4?] Working tree getting out of date "spontaneously"

From
Linus Torvalds <torvalds@linux-foundation.org>
Date
Jun 5, 2009, 15:39 UTC
Message-ID
<alpine.LFD.2.01.0906050825120.6847@localhost.localdomain>
In-Reply-To
<20090605132126.GB11035@atjola.homenet>
On Fri, 5 Jun 2009, Björn Steinbrink wrote:
Show 12 quoted lines
> > 
> > *wait a minute, doing nothing*
> > 
> > doener@atjola:git (master) $ git diff-index --name-only HEAD
> > Documentation/RelNotes-1.6.3.2.txt
> > Documentation/git.txt
> > contrib/completion/git-completion.bash
> > grep.c
> 
> Hm, looks like this is not a git bug. Went back to 1.5.4, and even that
> shows the error. So I actually looked at the files, and indeed, the file
> in the working tree gets modified. stat(1) shows:
You have beagle running, don't you?

It's a piece of sh*t, and uses extended attributes to track indexing information.

So the "wait a minute" will just give beagle the chance to index your git working tree, and update the extended attributes. That is entirely hidden from all normal filesystem stat information, *EXCEPT* it changes ctime, since the inode is changed.

It's annoying as hell. Beagle is broken. It's a particularly inefficient way to store index information, and it is annoying that an indexing engine actually changes the files it indexes.

You can tell git to ignore CTIME, by using
	[core]
		trustctime = false
and now git will ignore the mess that beagle makes of things. 

The other alternative is to tell beagle to behave. The beagle people claims this makes things slower. Which is quite possibly true, since the kernel is optimized and caches things well (extended attributes in the filesystem), and beagles alternative model is probably some incredibly crappy indexing built on top of MySQL.

Your choice.
		Linus
Previous: Theodore TsoNext: Björn Steinbrink
Message 12 of 13 in “[BUG?] Working tree getting out of date "spontaneously"”
  1. Björn SteinbrinkJun 5, 2009
  2. Robin RosenbergJun 5, 2009
  3. Björn SteinbrinkJun 5, 2009
  4. Björn SteinbrinkJun 5, 2009
  5. Björn SteinbrinkJun 5, 2009
  6. Björn SteinbrinkJun 5, 2009
  7. Theodore TsoJun 5, 2009
  8. Björn SteinbrinkJun 5, 2009
  9. Theodore TsoJun 5, 2009
  10. Björn SteinbrinkJun 5, 2009
  11. Theodore TsoJun 5, 2009
  12. Linus TorvaldsJun 5, 2009
  13. Björn SteinbrinkJun 5, 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.