Разреженная проверка для конкретного файла в пустом репо - PullRequest
1 голос
/ 24 октября 2019

У меня есть два репо: ci-test и ci-test2. Репозиторий ci-test содержит файл CI.yaml, а репозиторий ci-test2 пуст. Используя mgit, я выполняю разреженную проверку только файла CI.yaml в обоих репозиториях, и я получаю сообщение об ошибке: «Разреженная проверка не оставляет записи в рабочем каталоге». Я почти уверен, что это происходит, потому что я пытаюсь извлечь файл в репозитории ci-test2, который не содержит его. Мне было интересно, есть ли способ изящно обработать эту ошибку, возможно, заглянув в дерево чтения git. Это всего лишь пример, у меня гораздо больше репозиториев, чем этот, и мой класс MGIT Checkout ничего не знает о содержимом моих репо. У кого-нибудь есть идея?

1 Ответ

0 голосов
/ 29 октября 2019

Даже до самой разреженной проверки вы можете проверить, есть ли в удаленном хранилище файл CI.yaml: см. " Как проверить, существует ли файл на удаленном компьютере? ".

Но если вы уже загрузили хранилище (и вам нужно только извлечь / восстановить один файл в нем), git cat-file -e может работать:

-e

Выход с нулевым статусом, если <object> существует и является допустимым объектом.
Если <object> имеет недопустимый формат, завершается с ненулевым значением и выдает ошибку на stderr.

...