From: Sergio Callegari Date: Mon, 15 Mar 2010 00:19:01 GMT Subject: Re: On refreshing the index Message-ID: <4B9D7CF5.5010404@gmail.com> In-Reply-To: <7vmxyb3la7.fsf@alter.siamese.dyndns.org> Junio C Hamano wrote: > Sergio Callegari writes: > > >> If I run git status, git runs filters on a couple of opendocument files for >> which a filter is defined >> >> GIT_TRACE=1 git status >> trace: built-in: git 'status' >> trace: run_command: 'rezip -p ODF_UNCOMPRESS2' >> trace: exec: 'sh' '-c' 'rezip -p ODF_UNCOMPRESS2' 'rezip -p ODF_UNCOMPRESS2' >> trace: run_command: 'rezip -p ODF_UNCOMPRESS2' >> trace: exec: 'sh' '-c' 'rezip -p ODF_UNCOMPRESS2' 'rezip -p ODF_UNCOMPRESS2' >> # On branch M05 >> # Untracked files: >> # (use "git add ..." to include in what will be committed) >> # >> # WIP/ >> # program.txt >> # program.txt~ >> nothing added to commit but untracked files present (use "git add" to track) >> > > What does "git diff-files" and/or "git diff-index HEAD" say at this point? > If they do not say there are no difference, that means that the file on > the filesystem and the blob registered in the index are different, even > though after transmogrified with rezip (whatever it does) these two > different blobs may look the same. > Neither git diff-files" and/or "git diff-index HEAD say nothing at this point... > I think the difference between "may look the same" and "identical" is what > you are seeing. Try "git add" on those paths and see what happens. > Is there any way I can find out which file is the guilty one since git diff-files says nothing? E.g. a trace telling me on what is the filter being called? BTW... some notes that may be useful... 1) rezip is a mere recompressor. It takes a zip file and re-creates it at zero compression, so that the git delta logic can do a good job on it on repacking. I've found this useful on zip files, openoffice files, jar files, etc. 2) if I clone outside git, git update-index --refresh is always ok at making git status fast (i.e. not running expensive filters). 3) The problem always happens when I switch branches, right after the switch. Sergio