Почему git rev-parse --show-toplevel возвращает регистр, отличный от фактического пути - PullRequest
0 голосов
/ 20 ноября 2018

Я использую пакет npm, который использует git rev-parse --show-toplevel для получения пути верхнего уровня моего репозитория git.

Мой фактический путь (это в Windows)

C:\grde\username\so-on

но git возвращает

C:\GRDE\username\so-on

Почему в этом случае используется первая заглавная папка?

Это нарушает этот пакет, так как он использует возвращенное значение для хранения ссылки.Это не работает, хотя при попытке поиска ссылка сравнивает C:\grde с C:\GRDE

Обновление:

Результат dir в C:\ действительно показываетзаглавная версия имени.В проводнике, однако, он показывает строчные буквы.Как раздражает.Кажется, что у node и git разные способы определения пути к файлу.

1 Ответ

0 голосов
/ 21 ноября 2018

Когда Git разрешает путь, он канонизирует путь.В системах Unix это означает, что он разрешает все символические ссылки, а в системах без учета регистра он также канонизирует регистр.Это важно для того, чтобы Git мог легко определить, находится ли файл в хранилище, между прочим.

В этом случае ваш каталог на самом деле в верхнем регистре в файловой системе, но вы пытаетесь получить к нему доступ, используястрочная версия.Вы можете переименовать каталог следующим образом: этот ответ суперпользователя , если вы хотите, чтобы он был строчным.К сожалению, это одна из ловушек нечувствительной к регистру файловой системы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...