2008/5/9 Jeff King <peff@xxxxxxxx>: > 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 > Behaving as B is definitely the desired behaviour, but I am not observing that. I'll see if I can create a test case to demonstrate. Unfortunately, I don't have the right to distribute our repo so will have to attempt to reproduce the problem another way. Does anybody have a script that can take an existing repo, and create a new one with garbled-but-equivalent commits? i.e. file and directory structure is same with names changed, and there is a one-one relationship between lines of text in new repo and old one except the lines have been scrambled? It would be a useful tool for distributing private repositories for debugging reasons. > 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? I am using git version 1.5.5 > > -Peff > -- James -- 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