{"thread":{"id":"32003","subject":"Set core.ignorecase globally","startedAt":"2012-11-02T14:39:26Z","lastAt":"2012-11-02T20:05:16Z","messageCount":4,"participants":["Kirill Likhodedov","Konstantin Khomoutov","Torsten Bögershausen"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"202427","messageId":"6DB2AD2A-6531-497E-B87E-0E884C4BCFBE@jetbrains.com","threadId":"32003","inReplyTo":null,"subject":"Set core.ignorecase globally","fromName":"Kirill Likhodedov","fromEmail":"kirill.likhodedov@jetbrains.com","sentAt":"2012-11-02T14:39:26Z","receivedAt":"2012-11-02T14:39:26Z","isPatch":false,"sender":{"key":"kirill.likhodedov@jetbrains.com","avatar":"https://gravatar.com/avatar/9fd55d2a110e8e96deb3ed7b503d7f3b9b5b1ed5ca9ef6683c15525b11b94e63?d=mp&s=160"},"body":"Hi,\n\nCurrently, core.ignorecase is set to true on case insensitive system like Windows or Mac on `git init` and `git clone`, and this setting is local to the created/cloned repository.\nHere is the man entry:\n\ncore.ignorecase\n           If true, this option enables various workarounds to enable git to work better on filesystems that are\n           not case sensitive, like FAT. For example, if a directory listing finds \"makefile\" when git expects\n           \"Makefile\", git will assume it is really the same file, and continue to remember it as \"Makefile\".\n\n           The default is false, except git-clone(1) or git-init(1) will probe and set core.ignorecase true if\n           appropriate when the repository is created.\n\nI suggest to set this globally by default when Git is installed, because there is little sense to have this option false on case insensitive systems (it will lead to confusions when renaming a file by changing only the case of letters). \n\n----------------------------------\nKirill Likhodedov\nJetBrains, Inc\nhttp://www.jetbrains.com\n\"Develop with pleasure!\"\n"},{"id":"202433","messageId":"20121102190337.66a08366de41d29e745b0e4c@domain007.com","threadId":"32003","inReplyTo":"6DB2AD2A-6531-497E-B87E-0E884C4BCFBE@jetbrains.com","subject":"Re: Set core.ignorecase globally","fromName":"Konstantin Khomoutov","fromEmail":"flatworm@users.sourceforge.net","sentAt":"2012-11-02T15:03:37Z","receivedAt":"2012-11-02T15:03:37Z","isPatch":false,"sender":{"key":"flatworm@users.sourceforge.net","avatar":null},"body":"On Fri, 2 Nov 2012 18:39:26 +0400\nKirill Likhodedov <Kirill.Likhodedov@jetbrains.com> wrote:\n\n> Currently, core.ignorecase is set to true on case insensitive system\n> like Windows or Mac on `git init` and `git clone`, and this setting\n> is local to the created/cloned repository.\n[...]\n> I suggest to set this globally by default when Git is installed,\n> because there is little sense to have this option false on case\n> insensitive systems (it will lead to confusions when renaming a file\n> by changing only the case of letters). \n\nCase sensitivity is a property of a file system, not the OS.\nWhat if I mount a device with ext3 file system via ext2fsd driver in on\nmy Windows workstation?  extN have POSIX semantics so it's pointless to\nenforce case insensitivity on them.  The same possibly applies to NFS\nmounts.\n\nAlso note that NTFS (at least by default) is case insensitive but is\ncase preserving, observe:\n\nC:\\tmp>dir /b\nfoo\n\nC:\\tmp>rename foo Foo\n\nC:\\tmp>dir /b\nFoo\n\nC:\\tmp>del fOO\n\nC:\\tmp>dir /b\n\nC:\\tmp>ver\n\nMicrosoft Windows XP [Версия 5.1.2600]\n\nI don't really know what to make out of this, but I'd not change the\ndefaults until the reasons to do this are not really pressing (and\nthey're not for now).\n"},{"id":"202434","messageId":"20121102191516.e8b7d448ff76b45990e14b1d@domain007.com","threadId":"32003","inReplyTo":"20121102190337.66a08366de41d29e745b0e4c@domain007.com","subject":"Re: Set core.ignorecase globally","fromName":"Konstantin Khomoutov","fromEmail":"flatworm@users.sourceforge.net","sentAt":"2012-11-02T15:15:16Z","receivedAt":"2012-11-02T15:15:16Z","isPatch":false,"sender":{"key":"flatworm@users.sourceforge.net","avatar":null},"body":"On Fri, 2 Nov 2012 19:03:37 +0400\nKonstantin Khomoutov <flatworm@users.sourceforge.net> wrote:\n\n> > Currently, core.ignorecase is set to true on case insensitive system\n> > like Windows or Mac on `git init` and `git clone`, and this setting\n> > is local to the created/cloned repository.\n> [...]\n> > I suggest to set this globally by default when Git is installed,\n> > because there is little sense to have this option false on case\n> > insensitive systems (it will lead to confusions when renaming a file\n> > by changing only the case of letters). \n> \n> Case sensitivity is a property of a file system, not the OS.\n> What if I mount a device with ext3 file system via ext2fsd driver in\n> on my Windows workstation?  extN have POSIX semantics so it's\n> pointless to enforce case insensitivity on them.  The same possibly\n> applies to NFS mounts.\n> \n> Also note that NTFS (at least by default) is case insensitive but is\n> case preserving, observe:\n[...]\n\nOn the other hand, on NTFS, if I unset core.ignorecase or set it to\nfalse locally, `git mv foo Foo` fails to rename a tracked file \"foo\"\nwith the \"destination file exists\" error.  I would say I would expect it\nto work under the conditions I've just described.  Not sure if this\nthould be considered a bug in Git for Windows or not -- would be great\nto hear opinions of the msysgit port developers.\n"},{"id":"202458","messageId":"5094277C.4060207@web.de","threadId":"32003","inReplyTo":"20121102191516.e8b7d448ff76b45990e14b1d@domain007.com","subject":"Re: Set core.ignorecase globally","fromName":"Torsten Bögershausen","fromEmail":"tboegi@web.de","sentAt":"2012-11-02T20:05:16Z","receivedAt":"2012-11-02T20:05:16Z","isPatch":false,"sender":{"key":"tboegi@web.de","avatar":"https://avatars.githubusercontent.com/u/7138363?v=4"},"body":"Am 2012-11-02 16:15, schrieb Konstantin Khomoutov:\n> On Fri, 2 Nov 2012 19:03:37 +0400\n> Konstantin Khomoutov <flatworm@users.sourceforge.net> wrote:\n>\n>>> Currently, core.ignorecase is set to true on case insensitive system\n>>> like Windows or Mac on `git init` and `git clone`, and this setting\n>>> is local to the created/cloned repository.\n>> [...]\n>>> I suggest to set this globally by default when Git is installed,\n>>> because there is little sense to have this option false on case\n>>> insensitive systems (it will lead to confusions when renaming a file\n>>> by changing only the case of letters).\n>>\n>> Case sensitivity is a property of a file system, not the OS.\n>> What if I mount a device with ext3 file system via ext2fsd driver in\n>> on my Windows workstation?  extN have POSIX semantics so it's\n>> pointless to enforce case insensitivity on them.  The same possibly\n>> applies to NFS mounts.\n>>\n>> Also note that NTFS (at least by default) is case insensitive but is\n>> case preserving, observe:\n> [...]\n>\n> On the other hand, on NTFS, if I unset core.ignorecase or set it to\n> false locally, `git mv foo Foo` fails to rename a tracked file \"foo\"\n> with the \"destination file exists\" error.  I would say I would expect it\n> to work under the conditions I've just described.  Not sure if this\n> thould be considered a bug in Git for Windows or not -- would be great\n> to hear opinions of the msysgit port developers.\n\nI once made a patch for git and we concluded that is is not worth\nto put that into main git because you always can do:\n\ngit mv foo tmp && git mv tmp Foo\nor\ngit mv -f foo Foo\n\n(But use the -f option with care)\n/Torsten\n"}]}