On Fri, May 09, 2008 at 05:38:12PM +1000, James Sadler wrote: > I originally tried --subdirectory-filter by itself to see if it would > do the job, but it filtered more commits than I thought it should > (some commits that touched the subdir were missing after filter-branch > was run). > > I then began to question my understanding of the semantics of > subdirectory-filter. > > Is it meant to: > A) Only keep commits where ALL of the changes in the commit only touch > content under $DIR? > B) Only keep commits where SOME of the changes in the commit touch > content under $DIR? > > I suspected that it was behaving as A. My understanding is that it should behave as B. E.g.: git init mkdir subdir1 subdir2 echo content 1 >subdir1/file echo content 2 >subdir2/file git add . git commit -m initial echo changes 1 >>subdir1/file git commit -a -m 'only one' echo more changes 1 >>subdir1/file echo more changes 2 >>subdir2/file git commit -a -m 'both' git filter-branch --subdirectory-filter subdir1 git log --name-status --pretty=oneline should show something like: b119e21829b6039aa8fe938fb0304a9a7436b84d both M file db2ad8e702f36a1df99dd529aa594e756010b191 only one M file dacb4c2536e61c18079bcc73ea81fa0fb139c097 initial A file IOW, all commits touch subdir1/file, which becomes just 'file'. It could be a bug in git-filter-branch. What version of git are you using? -Peff -- 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