Являются ли git ls-файлы действительно независимыми от символов?Если нет, то что? - PullRequest
4 голосов
/ 25 февраля 2011

Я работаю в Mac OS 10.6 с git версии 1.7.0.

Если я выполню

echo "" > frëd   # that's f r \xEB d
git ls-files --other 'f*'

Я вернусь

"fre\314\210d"                     # that's 14 characters including two \'s

, тогда как ls f* сообщает

frëd                               # 4 characters, 5 bytes

Это вызывает плохое поведение в режиме magit-status в Emacs.

Как я могу обойти это и сделать так, чтобы файлы git ls сообщали так же что делает ls, не интерпретируя байты имени файла?

- Дэвид

1 Ответ

5 голосов
/ 25 февраля 2011

Git экранирует имя файла, так что оно не содержит каких-либо сложных для интерпретации символов, таких как последовательности терминалов, общие разделители, такие как перевод строки и т. Д. Кстати, кстати, (gnu) ls, но здесь ls более терпимо,Вы можете использовать флаг -z, чтобы получить исходные имена в формате с машинным разбором с нулевым символом в конце.Magit должен использовать его (разбор побегов более хрупок), исправьте его, если можете.

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