On Sun, 2010-12-19 at 03:23 +0100, Thomas Rast wrote: > Jan Wielemaker wrote: > > The reported problems also apply to the next module. What appears to > > work is this: > > > > * Walk through the history, finding the commit where the directory > > is created. > > * use git tag -l --contains <commit that created dir> to get the > > tags we want to keep. > > * get all tags, use comm and delete the tags not in the `contained' > > set above. > > > > Not very friendly and I'm (with Thomas) about the status of these > > findings. I like to thank Thomas for giving me the right clue. > > Now I finally remember where I knew this problem from: > > http://article.gmane.org/gmane.comp.version-control.git/91708 > > (My memory really sucks.) Funny. That was me having problems with filtering out directories as well :-) I thought your patch was added using the --prune-empty flag. I guess you can comment on that. I can confirm that I've got nice and clean filtering using * git filter-branch --subdirectory-filter <dir> --prune-empty --tag-name-filter cat -- --all followed by the steps above. I use qgit with the tree-view enabled to find the place where the hierarchy changes from the complete one to the only-this-dir one. You can do a binary search for that and you spot the exact commit easily by the gap in the history-line. Then I run this little bit of code: #!/bin/bash contains="$1" git tag | sort > tags.all git tag -l --contains $contains | sort > tags.keep for t in `comm -23 tags.all tags.keep`; do git tag -d $t done Not ideal, but doable. Cheers --- Jan -- 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