Есть ли способ заставить git не создавать index.lock для операций только для чтения, таких как git status
?Git: не создавать index.lock для операций только для чтения
Я показываю статус моего рабочего дерева в tmux, обновляя каждую пару секунд. В основном я анализирую вывод git status --branch --ignored --porcelain
и несколько других команд. Проблема в том, что для больших репозиториев git status
может занять несколько секунд. За это время я не могу запускать какие-либо другие команды git, потому что репозиторий заблокирован.
EDIT:
Вот некоторые фотографии из соответствующей части моей tmux линии. Описание для символов слева направо:
В синхронизации с удаленной ветвью | 2 поэтапных изменения | 1 неустановленное изменение | 5 проигнорированных файлов | 1 регистрационный номер:
В синхронизации с удаленной ветвью | никаких изменений в рабочем дереве | 5 игнорируемых файлов:
Впереди удаленная ветка на 1 фиксации | никаких изменений в рабочем дереве | 5 игнорируемых файлов:
Хороший вопрос; 'status' блокирует индекс, чтобы он мог обновить кеш статистики. Я не вижу очевидного способа отключить это из документации, но стоит знать, что вы отказываетесь: будущие вызовы 'status' должны будут перекомпилировать работу, которая была бы кеширована. Это может быть не оптимальным в вашем скрипте. –
Потеря кеширования для меня не проблема. Как я уже сказал, он используется только для отображения текущего состояния рабочего дерева. Я все время запускаю статус git. –
* Я разбираю вывод 'git status'.* Вы не должны этого делать, потому что 'git status' - * фарфор * (высокий уровень). Вместо этого вы должны проанализировать вывод команд Git более низкого уровня. – Jubobs