git-multi-pack-index
Имя
git-multi-pack-index — запись и проверка мультииндексов пакетов
Сводка
git multi-pack-index [<options>] write [--preferred-pack=<pack>]
[--[no-]bitmap] [--[no-]incremental] [--[no-]stdin-packs]
[--refs-snapshot=<path>] [--[no-]write-chain-file]
[--base=<checksum>]
git multi-pack-index [<options>] compact [--[no-]incremental]
[--[no-]bitmap] [--base=<checksum>] [--[no-]write-chain-file]
<from> <to>
git multi-pack-index [<options>] verify
git multi-pack-index [<options>] expire
git multi-pack-index [<options>] repack [--batch-size=<size>] Описание
Запись или проверка файла мультииндекса пакетов (MIDX).
Параметры
Ко всем подкомандам применимы следующие параметры командной строки:
- --object-dir=<dir>
-
Использовать указанный каталог для размещения объектов Git. Проверяется наличие текущего файла MIDX в <dir>
/packs/multi-pack-index, а индексируемых файлов пакетов — в <dir>/packs.<dir> должен быть альтернативным каталогом текущего репозитория.
- --progress
- --no-progress
-
Явно включить или отключить отображение хода выполнения. Если не указан ни один из этих параметров, ход выполнения отображается, когда стандартный поток ошибок подключён к терминалу. Поддерживается подкомандами
write,verify,expireиrepack.
Доступны следующие подкоманды:
- write
-
Записать новый файл MIDX. Для подкоманды
writeдоступны следующие параметры:- --preferred-pack=<pack>
-
Если указан, при наличии дополнительных копий объектов в других пакетах разрешать неоднозначность в пользу этого пакета. Неоднозначность для объектов, отсутствующих в предпочтительном пакете, всегда разрешается в пользу копии в пакете с самым поздним временем изменения (mtime). Если параметр не указан, по умолчанию используется пакет с самым ранним временем изменения. Предпочтительный пакет должен содержать хотя бы один объект.
- --[no-]bitmap
-
Управлять созданием мультибитовой карты пакетов.
- --stdin-packs
-
Записать мультииндекс пакетов, содержащий только набор базовых имён файлов индексов пакетов, переданный через stdin, по одному имени на строку.
- --refs-snapshot=<path>
-
При использовании с
--bitmapпри необходимости указать файл со «снимком ссылок», созданным до перепаковки.Снимок ссылок состоит из OID вершин ссылок, каждый на отдельной строке; обычно его создают с помощью
gitrepackперед созданием нового пакета. Строка может начинаться с символа+, указывающего, что ссылка, соответствующая этому OID, является «предпочтительной» (см.pack.preferBitmapTipsв git-config[1]).Файл, указанный в <path>, должен быть доступен для чтения и может содержать дубликаты. (Если один и тот же OID указан несколько раз, он помечается как предпочтительный, если хотя бы один его экземпляр начинается со специального маркера
+.) - --incremental
-
Записать инкрементальный файл MIDX, содержащий только объекты и пакеты, отсутствующие в существующем слое MIDX. При необходимости преобразует неинкрементальные файлы MIDX в инкрементальные.
- --[no-]write-chain-file
-
При использовании с
--incrementalзаписать новый слой MIDX, но не обновлять файл цепочки мультииндекса пакетов. Контрольная сумма нового слоя выводится в стандартный поток вывода, что позволяет вызывающей стороне самостоятельно собрать и записать цепочку. Требуется--incremental. - --base=<checksum>
-
Указать контрольную сумму существующего слоя MIDX, который следует использовать в качестве базового при записи нового инкрементального слоя. Специальное значение
noneозначает, что у нового слоя не должно быть базы (то есть он становится корневым слоем). Требуется--no-write-chain-file.
- compact
-
Записать новый слой MIDX, содержащий только объекты и пакеты из диапазона от <from> до <to>, где оба аргумента — контрольные суммы существующих слоёв в цепочке MIDX.
- --incremental
-
Записать результат в цепочку MIDX, а не в отдельный файл MIDX.
- --[no-]bitmap
-
Управлять созданием мультибитовой карты пакетов.
- --[no-]write-chain-file
-
При использовании с
--incrementalзаписать новый уплотнённый слой MIDX, но не обновлять файл цепочки мультииндекса пакетов. Контрольная сумма нового слоя выводится в стандартный поток вывода. Требуется--incremental. - --base=<checksum>
-
Указать контрольную сумму существующего слоя MIDX, который следует использовать в качестве базы для результата уплотнения вместо непосредственного родительского слоя <from>. Специальное значение
noneозначает, что у результата не должно быть базы.
Обратите внимание: команда compact требует записи MIDX версии 2, которую не могут читать версии Git до v2.54.
- verify
-
Проверить содержимое файла MIDX.
- expire
-
Удалить файлы пакетов, отслеживаемые файлом MIDX, но не содержащие объектов, на которые ссылается MIDX (за исключением пакетов
.keepи пакетов с мусором). Затем переписать файл MIDX, удалив все ссылки на эти файлы пакетов.Примечаниеэтот режим несовместим с инкрементальными файлами MIDX. - repack
-
Создать новый файл пакета, содержащий объекты из небольших файлов пакетов, на которые ссылается мультииндекс пакетов. Если размер, заданный аргументом
--batch-size=<size>, равен нулю, создать пакет со всеми объектами, на которые ссылается мультииндекс пакетов. Если размер пакета не равен нулю, выбрать файлы пакетов, просматривая их от самых старых к самым новым, вычисляя «ожидаемый размер»: подсчитать количество объектов в пакете, на которые ссылается мультииндекс пакетов, разделить на общее количество объектов в пакете и умножить на размер пакета. Выбирать пакеты с ожидаемым размером меньше заданного размера пакета, пока суммарный ожидаемый размер набора пакетов не достигнет как минимум заданного размера или пока не будут рассмотрены все файлы пакетов. Если выбран только один файл пакета, ничего не делать. Если создан новый файл пакета, переписать мультииндекс пакетов так, чтобы он ссылался на новый файл. При следующем запускеgit multi-pack-index expireудалит файлы пакетов, входившие в эту группу.Если
repack.packKeptObjectsравенfalse, то файлы пакетов, связанные с файлом.keep, не будут выбраны для перепаковки.Примечаниеэтот режим несовместим с инкрементальными файлами MIDX.
Примеры
-
Записать файл MIDX для файлов пакетов в текущем каталоге
.git.$ git multi-pack-index write
-
Записать файл MIDX с соответствующей битовой картой для файлов пакетов в текущем каталоге
.git.$ git multi-pack-index write --preferred-pack=<pack> --bitmap
-
Записать файл MIDX для файлов пакетов в альтернативном хранилище объектов.
$ git multi-pack-index --object-dir <alt> write
-
Проверить файл MIDX для файлов пакетов в текущем каталоге
.git.$ git multi-pack-index verify
См. также
Дополнительные сведения о функции мультииндекса пакетов и формате её файла см. в документе о структуре мультииндекса пакетов и gitformat-pack[5].
multi-pack-index
© 2005–2026 Linus Torvalds and others
Licensed under the GNU General Public License version 2.
https://git-scm.com/docs/git-multi-pack-index