git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Windows path handling changed between versions

From
GSGeofrey Sanders <geofrey.sanders@gmail.com>
Date
Sep 1, 2015, 16:55 UTC
Message-ID
<CAFPYLHASH_LZ2YgQWjfPKCwq_n-9HVNotkimiQDY1Qy8_8gtwg@mail.gmail.com>
I recently upgraded from Windows Git 1.6.2 to 2.5.0 and found myself
unable to rebase. Turns out paths didn't used to be case-sensitive and
now they are, causing a number of operations to halt. A repo created
by pointing at the directory
    c:\core\guidewire\Dev\2.4
would (I suppose) technically have been invalid the whole time because
Windows reports the current path as
    C:\core\guidewire\Dev\2.4
, but msys Git 1.6.2 evidently made a case-insensitive path comparison
so the discrepancy was suppressed.
The proximate cause of errors was
    git rev-parse --is-inside-work-tree
which would output 'false' even inside the working tree.
"--is-inside-git-dir" also printed 'false' in directories where it
should have said 'true'. I actually missed the problem in plain sight
at first, because I created a new repo (in which everything worked as
expected), and then did a directory diff... the worktree paths were
different but I only noticed the names, not the case difference in the
drive letter. More details in this SO question:
http://stackoverflow.com/q/32280644/2835086

I was able to repair my existing repos by changing the 'worktree' value in gitconfig - s/c/C/ did the trick - but the whole thing was a surprise.

Is this a bug in the current version? Windows doesn't distinguish on case, so maybe applications shouldn't either. Was this a bug in the prior version? Maybe creating a repo with a worktree path that doesn't match the file system should have been an error from the very beginning. Was this user error? Maybe I did something wrong and should have known better, but got away with it for a while.

Any feedback welcome, -gws

Next: Johannes Schindelin
Message 1 of 3 in “Windows path handling changed between versions”
  1. Geofrey SandersSep 1, 2015
  2. Johannes SchindelinSep 1, 2015
  3. Geofrey SandersSep 1, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.