Я играл с GIT внутренностей, и заметил, что дерево объектов может магазин совершить объекты, используя LS-дерево/mktree формат:Как git GC фиксирует объекты внутри дерева?
0160000 commit <sha1> name
мне интересно, как придурок GC обрабатывает такие ситуация.
source code относится к этому как directory link
, так как нормально недействительному режим битовой 0160000
случается комбинация каталогов и ссылок битмаски, и gitlink
, поскольку он
является ссылкой на другой каталог мерзавца.
Оглядевшись, я могу видеть, что поведение подмодуля построено на этом (в паре с .gitmodules
файлом, чтобы знать, где другой каталог мерзавца есть), но будет мерзавец заслонки на него, если он нашел в дикой природе, в некоторых в другом контексте? Что делать, если коммит был локальным коммитами в базе данных объектов git? Если бы это была единственная ссылка на фиксацию, которая бы зафиксировала не GC'd, или GC не считает это ссылкой, поскольку предполагает, что она является внешней?
Это относится к фиксации в * подмодуль *, а не фиксации в текущем * * хранилище. – o11c
Да, я думал, что, поскольку деревья * могут * указывать на фиксацию того, что GC может распознать ссылки, не связанные с субмодулем, на ссылки на sha1s внутри репо в качестве ссылок на зависание. Кажется, нет. –