Thread (13 messages) flat view 13 messages, 4 authors, 2016-06-15

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

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: 2016-06-15 22:46:54


On Fri, 5 Jun 2009, Björn Steinbrink wrote:
quoted
*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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help