В моем репо, как долго должен длиться самый длинный префикс хеша, чтобы предотвратить любое наложение?
--abbrev-commit
Флаг может быть использован в сочетании сgit log
а такжеgit rev-list
чтобы показывать частичные префиксы вместо полных 40-символьных хэшей SHA-1 объектов фиксации. СогласноPro Git book,
по умолчанию он использует семь символов, но при необходимости делает их длиннее, чтобы SHA-1 оставался однозначным [...]
Кроме того, короткие SHA имеют длину не менее 4 символов. Тем не менее, согласно книге Pro Git,
Как правило, от восьми до десяти символов более чем достаточно, чтобы быть уникальными в рамках проекта.
Например, ядро Linux, которое представляет собой довольно большой проект с более чем 450 тыс. Коммитов и 3,6 млн. Объектов, не имеет двух объектов, чьи SHA-1 перекрываются больше, чем первые 11 символов.
Поскольку длина самого длинного префикса, необходимого для предотвращения какого-либо перекрытия между всеми хэшами префиксов объектов фиксации (11 в случае ядра Linux), является приблизительным показателем размера репо, я хотел бы программно определить соответствующее количество в мой собственный локальный репозиторий. Как я могу это сделать?