Я пытаюсь управлять индексом репозитория по сравнению с его деревом HEAD с помощью libgit2 (через Objective-Git, но я все больше и больше обнаруживаю, что возглавляю дыру в ванили libgit2), и мне интересно, что именно битмакс flags_extended field на git_index_entry структура фактически означает. Кроме того, когда эти флаги установлены? Я копал через источник libgit2, но не могу найти, где flags_extended входит в игру.В libgit2, что означает git_index_entry-> flags_extended mean (и когда они установлены)?
Я спрашиваю:
У меня есть простой тест хранилище с одной фиксацией, содержащими несколько простых тестовых файлов. Рабочая копия имеет один отслеживаемый файл с незначительным изменением и один необработанный файл, оба из которых были поставлены снаружи (git add .
на командной строке). В моем приложении мне нужно «отключить» файлы, поэтому я получаю их соответствующие структуры git_index_entry. Я ожидал, что у flags_extended будет установлен параметр GIT_IDXENTRY_UPDATED для измененного файла и GIT_IDXENTRY_ADDED для ранее не проверенного файла, но на самом деле оба flags_extended поля пустые, что и вызвало этот вопрос (единственное, что установлено GIT_IDX_ENTRY_NAMEMASK в поле flags) ,
Я могу, конечно, получить дерево HEAD и сравнить записи с записями в индексе, но я надеялся, что libgit2 уже предоставил эту информацию через flags_extended.
Спасибо! Я действительно хочу, чтобы этот материал был где-то документально зарегистрирован (хотя комментарий к документации упоминает, что эти флаги не сохраняются на диске, у него нет никаких указаний на * где * именно они используются). Я сделаю ручное сравнение с HEAD! –