git filter-branch can "forget" directories on case insensitive filesystems

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

 



When running git filter-branch on a case insensitive filesystem, the
working tree checked out for filtering is missing a directory in my
project. This is probably related to the problem discussed here:
http://article.gmane.org/gmane.comp.version-control.git/154662

In contrast to that report, this one affects repositories on
case-insensitive filesystems, regardless of the setting of
core.ignorecase.

To reproduce the problem, follow the steps below. I tested them with
git 1.7.0.4 on a laptop running Ubuntu, with the repository on a Fat32
USB drive.

mkdir gittest
cd gittest
git init
mkdir testdir
echo 'abc' >testdir/testfile
git add testdir
git commit -m foo
git rm -r testdir
mkdir testDir
echo 'abc' >testDir/testfile
git add testDir
git commit -m bar

Now, check out master^1 and master to ensure the commits look as
expected. Then, run this:

git filter-branch --tree-filter 'ls' master

You will notice that the directory vanishes when the second commit is filtered.

The problem occurs whether core.ignorecase is set to true or false. It
doesn't occur on case sensitive filesystems.

Simeon
--
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]