Native git не имеет функциональности, но это может быть достигнуто с помощью скриптов-ловушек или сторонних инструментов.
Я пробовал metastore
.Это очень быстро, но мне не нравится необходимость установки, и метаданные не хранятся в текстовом формате.git-cache-meta
- это простой инструмент, который я пробовал, но он очень медленный для больших репозиториев (для репо с десятками тысяч файлов требуется несколько минут, чтобы обновить файл метаданных) и может иметь проблемы кроссплатформенной совместимости.setgitperms
и другие подходы также имеют свои недостатки, которые мне не нравятся.
Наконец-то я сделал скрипт для этой работы: git-store-meta .У него очень легкая зависимость (* nix shell, sort
и perl
, что требуется для git, и, необязательно, chown
, chgrp
и touch
), так что ничего дополнительногодля установки на платформу, которая может запускать git, желаемая производительность (для хранилища с десятками тысяч файлов требуется менее 10 секунд для обновления файла метаданных; хотя и дольше для создания), данные сохраняются в простой текстовый формат , и какие метаданные, которые нужно «сохранить» или «загрузить», настраиваемые .
Это отлично сработало для меня.Попробуйте, если вы не удовлетворены метастарем, git-cache-meta и другими подходами.