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

Re: Question about --tree-filter

From
Johannes Sixt <j.sixt@viscovery.net>
Date
Feb 5, 2009, 08:32 UTC
Message-ID
<498AA41D.3000609@viscovery.net>
In-Reply-To
<4989FDC6.2080404@gmail.com>
[ Don't cull Cc list, please! ]
Sergio Callegari schrieb:
> And if I experiment filter-branch again, with exactly the same
> parameters, apparently some of the files that did not get the new blob
> in the beginning do...  which looks completely weird.

I think I know what's going on. filter-branch has this code where the tree-filter is applied:

	git checkout-index -f -u -a ||
		die "Could not checkout the index"

This command may take a while to complete, and at the end it writes the index file. At this point:

(=) Some files may have the same timestamp as the index file.
(<) Others have an earlier timestamp.
Later we have this code:
	(
		git diff-index -r --name-only $commit
		git ls-files --others
	) |
	git update-index --add --replace --remove --stdin

The files (=) are racily-clean, and are added to the database; they pass through the clean filter (rezip). The files (<) are regarded as unchanged, and are not added again, and are not rezipped.

>    find ./ -type f -exec touch \{\} \;

This could help, too, because now all files are regarded as either racily-clean (same timestamp as index file) or as changed (newer timestamp).

-- Hannes
Previous: Sergio CallegariNext: Sergio Callegari
Message 4 of 6 in “Question about --tree-filter”
  1. Sergio CallegariFeb 4, 2009
  2. Johannes SixtFeb 4, 2009
  3. Sergio CallegariFeb 4, 2009
  4. Johannes SixtFeb 5, 2009
  5. Sergio CallegariFeb 5, 2009
  6. Johannes SixtFeb 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.