Re: [git-for-windows] Case insensitive branch names

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

 




On 2015-12-21 18.37, Junio C Hamano wrote:
> Duy Nguyen <pclouds@xxxxxxxxx> writes:
>
>> On Mon, Dec 21, 2015 at 6:01 PM, Philip Oakley <philipoakley@xxxxxxx> wrote:
>>> On the Git User's list, Diego J. reported that:
>>>
>>> 'When I "checkout" a branch using different Upper Case/Lower Case than the
>>> original, the branch doesn't show in "git branch [--list]"' [1]
>>>
>>> While case sensitivity for filenames is a common issue on Windows and the
>>> like, I haven't seen any discussion regarding ref name sensitivity - any
>>> pointers to past discussions?
>> Multiple ref backend [1] should solve this.
> Yup, I had the same reaction.  Instead of restricting the namespace
> of branches even on systems that do not have this problem, use a ref
> backend that is not limited by the underlying filesystem.  A much
> better solution.
>
> In addition to the LMDB backend, it might not be a bad idea to add
> another filesystem-based backend that encodes the refnames safely on
> case insensitive or case destroying filesystem.  That way, those who
> do not want an extra dependency but do want case sensitive refnames
> would have an option, and having two non-default backends with quite
> different semantics may be a good way to ensure that the API for
> refs backend is kept sane.

This has been reported (probably a couple of times),
one copy I have here was under "Branch Name Case Sensitivity"
around Feb/March 2014.

The lstat() in refs.c can not be fixed, as the underlying OS/FS thinks
that lstat("nocase") == lstat("NoCase") and
open("nocase") == NoCase").

The the "real name" will not be detected, unless somebody does
opendir(), readdir() and closedir().
This is expensive (in terms of execution time), and nobody
has tried to do something.


One cheap solution would be to run "git pack-refs" internally,
either from C-code inside Git itself, or from a script.

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