On Samstag, 16. April 2011, Michael O'Cleirigh wrote: > The --subdirectory-filter will look for a single directory and then rewrite > history to make its content the root. This is ok except for cases where we > want to retain history of those files before they were moved into that > directory. > > The --egrep-filter option allows specifying an egrep regex for the files in > the tree of each commit to keep. For example: > > Directories we want are A, B, C, D and they exist in several different > lifetimes. A and B exist sometimes together then B and C and finally then > D. > > e.g. git-filter-branch --egrep-filter "(A|B|C|D)" > > Each commit will then contain different combination's of A or B or C or D > (up to A and B and C and D). Why do you need a new --...-filter option for this? Your implementation is merely an instance of an --index-filter, and at that a very specialized one, which operates only at the top-most directory level. > + git ls-tree $commit | egrep "$filter_egrep" | git mktree | xargs git read-tree -i -m -- Hannes -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html