Как я могу определить, является ли файл в git исполняемым? - PullRequest
0 голосов
/ 26 апреля 2018

Если у меня есть файл в репозитории git, как я могу определить, является ли данная версия файла исполняемой или нет?

Я знаю, что git отслеживает, являются ли файлы исполняемыми или нет, иgit show покажет изменения в разрешениях на выполнение.Например, вывод git show для данной ревизии может включать:

diff --git file file
old mode 100644
new mode 100755

, что указывает на то, что полученный файл получил разрешение на выполнение.

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

(Справочная информация: у меня есть скрипт-обертка, который извлекает указанную версию файла с использованием

git show $commit:./$filename > ./$filename.$commit

Я хочу запустить chmod +x в новом файле, если и только если эта версия файла исполняемая в хранилище.)

1 Ответ

0 голосов
/ 26 апреля 2018

Используйте git ls-tree, передавая ссылку и путь к файлу, который вы хотите проверить.

Например, git ls-tree HEAD foo.txt даст что-то вроде

100644 blob 3e1d68d0714fd3d46ec22a685e317f0cf47f5e83    foo.txt

644 в первом столбце указывает на неисполняемый файл.755 будет указывать на исполняемый файл.

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