Subject: Re: Question about --tree-filter

From: Johannes Sixt <[email-masked]>
Date: Wed, 04 Feb 2009 17:37:11 +0100

Sergio Callegari schrieb:
> in working with the "rezip" filter for the efficient git management of
> openoffice, zip and docx files, I am encountering the following problem.
> 
> Suppose that you have an existing repository and that you want to convert it
> into a repository using the rezip filters: git filter-branch should be the tool
> to do the conversion.
> 
> Initially I believed that once set up the appropriate .git/config filter entries
> and a .git/info/attributes file tying the filter to the appropriate file types,
> it would have been enough to
> 
> git filter-branch --tree-filter true tag-name-filter cat
> 
> to do the conversion.
> This is also what I suggested in my original post about the rezip script.
> 
> Unfortunately, this does not seem to work as expected.  Not all files get
> rewritten as filtered blobs.

Before the tree-filter runs, the files are checked out (and smudged by
rezip). But they are marked as unchanged (because they were checked out
moments ago). Since your tree-filter doesn't do anything, no new blobs are
added to the index, and none of your files are cleaned by rezip.

I think your brute-force tree-filter should be

   rm -f "$GIT_INDEX_FILE"

assuming that a .gitattributes file is already in all revisions.

-- Hannes