# linux-2.6 clone with CygWin git

7 messages from 2007-11-09 to 2007-11-10. Participants: Medve Emilian, Andreas Ericsson, Simon Sasburg, David Brown, Pascal Obry, Brian Dessent.
Thread: https://gitlist.dev/t/10768

## Medve Emilian, 2007-11-09 14:29

Subject: linux-2.6 clone with CygWin git
Message-ID: <598D5675D34BE349929AF5EDE9B03E270174D8A2@az33exm24.fsl.freescale.net>
URL: https://gitlist.dev/e/598D5675D34BE349929AF5EDE9B03E270174D8A2%40az33exm24.fsl.freescale.net

```
Hello,


I noticed that something might not be right with my CygWin git (latest
CygWin relevant build packages + a few days old git build from the next
& master branches). When I clone, say,  Linus' tree over the native git
protocol everything goes fine but a git-status shows this:

$ git-status
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#
#       modified:   include/linux/netfilter/xt_CONNMARK.h
#       modified:   include/linux/netfilter/xt_DSCP.h
#       modified:   include/linux/netfilter/xt_MARK.h
#       modified:   include/linux/netfilter/xt_TCPMSS.h
#       modified:   include/linux/netfilter_ipv4/ipt_CONNMARK.h
#       modified:   include/linux/netfilter_ipv4/ipt_DSCP.h
#       modified:   include/linux/netfilter_ipv4/ipt_ECN.h
#       modified:   include/linux/netfilter_ipv4/ipt_MARK.h
#       modified:   include/linux/netfilter_ipv4/ipt_TCPMSS.h
#       modified:   include/linux/netfilter_ipv4/ipt_TOS.h
#       modified:   include/linux/netfilter_ipv4/ipt_TTL.h
#       modified:   include/linux/netfilter_ipv6/ip6t_HL.h
#       modified:   include/linux/netfilter_ipv6/ip6t_MARK.h
#       modified:   net/ipv4/netfilter/ipt_ECN.c
#       modified:   net/ipv4/netfilter/ipt_TOS.c
#       modified:   net/ipv4/netfilter/ipt_TTL.c
#       modified:   net/ipv6/netfilter/ip6t_HL.c
#       modified:   net/netfilter/xt_CONNMARK.c
#       modified:   net/netfilter/xt_DSCP.c
#       modified:   net/netfilter/xt_MARK.c
#       modified:   net/netfilter/xt_TCPMSS.c
#
no changes added to commit (use "git add" and/or "git commit -a")

git-fsck --strict --full finds no fault in the clone, git-reset --hard
goes fine but changes nothing in the output of git-status. Some
additional superficial investigation showed that git-diff doesn't even
compare my checked out tree against the latest commit. Checkout of
various commits shows the same issue.

Can somebody please double-check this scenario for me just to validate
that this happens only due to some particular factors combination on my
box?


Thanks,
Emil.

```

## Andreas Ericsson, 2007-11-09 15:00

Subject: Re: linux-2.6 clone with CygWin git
Message-ID: <47347625.9040705@op5.se>
URL: https://gitlist.dev/e/47347625.9040705%40op5.se
In-Reply-To: <598D5675D34BE349929AF5EDE9B03E270174D8A2@az33exm24.fsl.freescale.net>

```
Medve Emilian wrote:
> Hello,
> 
> 
> I noticed that something might not be right with my CygWin git (latest
> CygWin relevant build packages + a few days old git build from the next
> & master branches). When I clone, say,  Linus' tree over the native git
> protocol everything goes fine but a git-status shows this:
> 
> $ git-status
> # On branch master
> # Changed but not updated:
> #   (use "git add <file>..." to update what will be committed)
> #
> #       modified:   include/linux/netfilter/xt_CONNMARK.h
> #       modified:   include/linux/netfilter/xt_DSCP.h
> #       modified:   include/linux/netfilter/xt_MARK.h
> #       modified:   include/linux/netfilter/xt_TCPMSS.h
> #       modified:   include/linux/netfilter_ipv4/ipt_CONNMARK.h
> #       modified:   include/linux/netfilter_ipv4/ipt_DSCP.h
> #       modified:   include/linux/netfilter_ipv4/ipt_ECN.h
> #       modified:   include/linux/netfilter_ipv4/ipt_MARK.h
> #       modified:   include/linux/netfilter_ipv4/ipt_TCPMSS.h
> #       modified:   include/linux/netfilter_ipv4/ipt_TOS.h
> #       modified:   include/linux/netfilter_ipv4/ipt_TTL.h
> #       modified:   include/linux/netfilter_ipv6/ip6t_HL.h
> #       modified:   include/linux/netfilter_ipv6/ip6t_MARK.h
> #       modified:   net/ipv4/netfilter/ipt_ECN.c
> #       modified:   net/ipv4/netfilter/ipt_TOS.c
> #       modified:   net/ipv4/netfilter/ipt_TTL.c
> #       modified:   net/ipv6/netfilter/ip6t_HL.c
> #       modified:   net/netfilter/xt_CONNMARK.c
> #       modified:   net/netfilter/xt_DSCP.c
> #       modified:   net/netfilter/xt_MARK.c
> #       modified:   net/netfilter/xt_TCPMSS.c
> #
> no changes added to commit (use "git add" and/or "git commit -a")
> 
> git-fsck --strict --full finds no fault in the clone, git-reset --hard
> goes fine but changes nothing in the output of git-status. Some
> additional superficial investigation showed that git-diff doesn't even
> compare my checked out tree against the latest commit. Checkout of
> various commits shows the same issue.
> 
> Can somebody please double-check this scenario for me just to validate
> that this happens only due to some particular factors combination on my
> box?
> 

Your filesystem is not case sensitive and there are files with identical
names (apart from the case thing) in the Linux kernel repo.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

```

## Simon Sasburg, 2007-11-09 15:02

Subject: Re: linux-2.6 clone with CygWin git
Message-ID: <981e6de60711090702y2132a5eq889ac1b62993adce@mail.gmail.com>
URL: https://gitlist.dev/e/981e6de60711090702y2132a5eq889ac1b62993adce%40mail.gmail.com
In-Reply-To: <598D5675D34BE349929AF5EDE9B03E270174D8A2@az33exm24.fsl.freescale.net>

```
This is not a problem with git.

The kernel tree contains files which only differ from other files by case.

If on a case-insensitive filesystem this will cause problems like the
ones you noticed.

On Nov 9, 2007 3:29 PM, Medve Emilian <Emilian.Medve@freescale.com> wrote:
> Hello,
>
>
> I noticed that something might not be right with my CygWin git (latest
> CygWin relevant build packages + a few days old git build from the next
> & master branches). When I clone, say,  Linus' tree over the native git
> protocol everything goes fine but a git-status shows this:
>
> $ git-status
> # On branch master
> # Changed but not updated:
> #   (use "git add <file>..." to update what will be committed)
> #
> #       modified:   include/linux/netfilter/xt_CONNMARK.h
> #       modified:   include/linux/netfilter/xt_DSCP.h
> #       modified:   include/linux/netfilter/xt_MARK.h
> #       modified:   include/linux/netfilter/xt_TCPMSS.h
> #       modified:   include/linux/netfilter_ipv4/ipt_CONNMARK.h
> #       modified:   include/linux/netfilter_ipv4/ipt_DSCP.h
> #       modified:   include/linux/netfilter_ipv4/ipt_ECN.h
> #       modified:   include/linux/netfilter_ipv4/ipt_MARK.h
> #       modified:   include/linux/netfilter_ipv4/ipt_TCPMSS.h
> #       modified:   include/linux/netfilter_ipv4/ipt_TOS.h
> #       modified:   include/linux/netfilter_ipv4/ipt_TTL.h
> #       modified:   include/linux/netfilter_ipv6/ip6t_HL.h
> #       modified:   include/linux/netfilter_ipv6/ip6t_MARK.h
> #       modified:   net/ipv4/netfilter/ipt_ECN.c
> #       modified:   net/ipv4/netfilter/ipt_TOS.c
> #       modified:   net/ipv4/netfilter/ipt_TTL.c
> #       modified:   net/ipv6/netfilter/ip6t_HL.c
> #       modified:   net/netfilter/xt_CONNMARK.c
> #       modified:   net/netfilter/xt_DSCP.c
> #       modified:   net/netfilter/xt_MARK.c
> #       modified:   net/netfilter/xt_TCPMSS.c
> #
> no changes added to commit (use "git add" and/or "git commit -a")
>
> git-fsck --strict --full finds no fault in the clone, git-reset --hard
> goes fine but changes nothing in the output of git-status. Some
> additional superficial investigation showed that git-diff doesn't even
> compare my checked out tree against the latest commit. Checkout of
> various commits shows the same issue.
>
> Can somebody please double-check this scenario for me just to validate
> that this happens only due to some particular factors combination on my
> box?
>
>
> Thanks,
> Emil.
> -
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

```

## David Brown, 2007-11-09 15:03

Subject: Re: linux-2.6 clone with CygWin git
Message-ID: <20071109150306.GA20531@old.davidb.org>
URL: https://gitlist.dev/e/20071109150306.GA20531%40old.davidb.org
In-Reply-To: <598D5675D34BE349929AF5EDE9B03E270174D8A2@az33exm24.fsl.freescale.net>

```
On Fri, Nov 09, 2007 at 07:29:07AM -0700, Medve Emilian wrote:

>#       modified:   include/linux/netfilter/xt_CONNMARK.h
>
>Can somebody please double-check this scenario for me just to validate
>that this happens only due to some particular factors combination on my
>box?

It's because of the case-insensitive nature of the filesystem.  The kernel
contains both an xt_connmark.h and an xt_CONNMARK.h file, that are
different.  But only one exists on Windows, so git sees the first one it
wrote as having been modified.

David

```

## Pascal Obry, 2007-11-09 17:16

Subject: Re: linux-2.6 clone with CygWin git
Message-ID: <473495E1.3080305@obry.net>
URL: https://gitlist.dev/e/473495E1.3080305%40obry.net
In-Reply-To: <20071109150306.GA20531@old.davidb.org>

```
David Brown a écrit :
> It's because of the case-insensitive nature of the filesystem.  The kernel
> contains both an xt_connmark.h and an xt_CONNMARK.h file, that are
> different.  But only one exists on Windows, so git sees the first one it
> wrote as having been modified.

Probably not something for the list... but if you ask me this is just
bad practice anyway. Casing has no semantic, it is nonsense to have two
files with the same name with different casing!

Pascal.

-- 

--|------------------------------------------------------
--| Pascal Obry                           Team-Ada Member
--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE
--|------------------------------------------------------
--|              http://www.obry.net
--| "The best way to travel is by means of imagination"
--|
--| gpg --keyserver wwwkeys.pgp.net --recv-key C1082595

```

## Brian Dessent, 2007-11-09 21:24

Subject: Re: linux-2.6 clone with CygWin git
Message-ID: <4734D025.B08B725B@dessent.net>
URL: https://gitlist.dev/e/4734D025.B08B725B%40dessent.net
In-Reply-To: <598D5675D34BE349929AF5EDE9B03E270174D8A2@az33exm24.fsl.freescale.net>

```

[ Please note, it's spelled "Cygwin" not "CygWin". ]

Medve Emilian wrote:

> Can somebody please double-check this scenario for me just to validate
> that this happens only due to some particular factors combination on my
> box?

As others have pointed out, this is not a git issue -- you'd have run
into the same problem with a simple tarball of the kernel source because
of the filesystem case insensitivity.  Cygwin provides managed mounts to
work around this Win32 limitation, at the cost of non-Cygwin apps seeing
uglified filenames and a decreased effective maximum path length due to
the mangling.

Brian

```

## Andreas Ericsson, 2007-11-10 09:50

Subject: Re: linux-2.6 clone with CygWin git
Message-ID: <47357EDF.2000708@op5.se>
URL: https://gitlist.dev/e/47357EDF.2000708%40op5.se
In-Reply-To: <473495E1.3080305@obry.net>

```
Pascal Obry wrote:
> David Brown a écrit :
>> It's because of the case-insensitive nature of the filesystem.  The kernel
>> contains both an xt_connmark.h and an xt_CONNMARK.h file, that are
>> different.  But only one exists on Windows, so git sees the first one it
>> wrote as having been modified.
> 
> Probably not something for the list... but if you ask me this is just
> bad practice anyway. Casing has no semantic, it is nonsense to have two
> files with the same name with different casing!
> 

You're right, it's not something for this list. Try arguing your case at
the linux kernel mailing list.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

```
