Что такое репозиторий Git только для статуса?

Документация для команды git update-index говорит об переключателе --info-only:

--info-only используется для регистрации файлов без их размещения в базе данных объектов. Это полезно для репозиториев только для состояний.

Так как Git - это система отслеживания контента, а не система отслеживания файлов, мне интересно о сценариях, в которых вы хотели бы это сделать; то есть регистрировать файлы с индексом, не помещая их (и предположительно их содержимое) в базу данных объектов.

Я также искал слова "репозиторий только для статуса" без успеха. Может ли кто-нибудь прояснить, что такое хранилище и для чего он хорош?

Ответы

Ответ 1

Изменение, которое добавило эту функцию, было частью серии исправлений Брайана Ларсена, чтобы "поддерживать работу без базы данных объектов". Вот что он объяснил с помощью:

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

Git (почти) идеально подходит для этого. Там очень мало это быстрее, чем git -diff-cache.

Конструкция git также облегчает это. git -update-cache --cacheinfo позволяет индексу обновляться без объекта в базе данных и операции могут быть выполнены вокруг индекса. Однако существуют некоторые вещи, которые неудобны, и один шоу-стоппер.

На самом деле не было никаких обсуждений о том, почему в этом потоке, и я мог найти еще один, охватывающий тему. Таким образом, возможно, это была идея, с которой Брайан играл и хотел иметь для себя.

Мне лично не известно ничего, что на самом деле использует это для чего-то, поэтому в конце концов это может быть теоретический прецедент. С другой стороны, идея довольно проста и фактически может быть использована для чего-то.