Ответ 1
Изменение, которое добавило эту функцию, было частью серии исправлений Брайана Ларсена, чтобы "поддерживать работу без базы данных объектов". Вот что он объяснил с помощью:
Иногда вы можете сохранить контрольный журнал того, что изменилось, где, а кем. Вам не нужно знать точные данные об изменении, и файлы настолько велики, что хранение дополнительной копии данных в Кэш объектной базы данных является чрезмерно дорогостоящим.
Git (почти) идеально подходит для этого. Там очень мало это быстрее, чем git -diff-cache.
Конструкция git также облегчает это. git -update-cache --cacheinfo позволяет индексу обновляться без объекта в базе данных и операции могут быть выполнены вокруг индекса. Однако существуют некоторые вещи, которые неудобны, и один шоу-стоппер.
На самом деле не было никаких обсуждений о том, почему в этом потоке, и я мог найти еще один, охватывающий тему. Таким образом, возможно, это была идея, с которой Брайан играл и хотел иметь для себя.
Мне лично не известно ничего, что на самом деле использует это для чего-то, поэтому в конце концов это может быть теоретический прецедент. С другой стороны, идея довольно проста и фактически может быть использована для чего-то.