Re: git filter-branch --subdirectory-filter

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux