threads / discuss / 10768

linux-2.6 clone with CygWin git

Subject: linux-2.6 clone with CygWin git

## tl;dr

7 messages between Nov 9, 2007 and Nov 10, 2007.

replies: 6people: 6as markdown or json

Medve Emilian· Nov 9, 2007, 14:29 UTC · lore
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· Nov 9, 2007, 15:00 UTC · re: Medve Emilian · lore

Re: linux-2.6 clone with CygWin git

Medve Emilian wrote:
Show 47 quoted lines
> 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· Nov 9, 2007, 15:02 UTC · re: Medve Emilian · lore

Re: linux-2.6 clone with CygWin git

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:
Show 55 quoted lines
> 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· Nov 9, 2007, 15:03 UTC · re: Medve Emilian · lore

Re: linux-2.6 clone with CygWin git

On Fri, Nov 09, 2007 at 07:29:07AM -0700, Medve Emilian wrote:
Show 5 quoted lines
>#       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· Nov 9, 2007, 17:16 UTC · re: David Brown · lore

Re: linux-2.6 clone with CygWin git

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
Andreas Ericsson· Nov 10, 2007, 09:50 UTC · re: Pascal Obry · lore

Re: linux-2.6 clone with CygWin git

Pascal Obry wrote:
Show 10 quoted lines
> 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
Brian Dessent· Nov 9, 2007, 21:24 UTC · re: Medve Emilian · lore

Re: linux-2.6 clone with CygWin git

[ 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

← back to recent threads