36namespace fs = std::filesystem;
109 std::map<fs::path, IndexEntry> entries;
118 fs::path index_file_path;
127 fs::path repo_root_path;
151 static void getFileMetaData(
const fs::path& full_path,
152 long long& size, fs::file_time_type& mtime);
168 Index(
const fs::path& vcs_root_path, fs::path repo_root_path,
ObjectStorage& storage);
234 [[nodiscard]]
bool write()
const;
247 [[nodiscard]]
bool isFileModified(
const fs::path& file_path)
const;
262 void stage_file(
const fs::path& relative_path);
Управляет чтением, записью и жизненным циклом объектов СКВ на диске с использованием формата Git.
Управляет областью подготовки (Index) репозитория СКВ.
Определения Index.hxx:60
bool isFileModified(const fs::path &file_path) const
Проверяет, был ли файл в рабочей директории изменен с момента последней подготовки.
Определения Index.cxx:100
std::string createTreeObject()
Создает иерархическую структуру Tree на основе текущих подготовленных записей и сохраняет объекты Tre...
Определения Index.cxx:249
void stage_file(const fs::path &relative_path)
Подготавливает файл, создавая объект Blob, сохраняя его в хранилище и обновляя запись Index (Основная...
Определения Index.cxx:67
void save() const
Сохраняет текущее состояние записей индекса в файл индекса (временный текстовый формат).
Определения Index.cxx:152
Index(const fs::path &vcs_root_path, fs::path repo_root_path, ObjectStorage &storage)
Конструирует менеджер Index, настраивая пути и загружая индекс.
Определения Index.cxx:45
const IndexEntry * getEntry(const fs::path &file_path) const
Извлекает запись из индекса по относительному пути файла.
Определения Index.cxx:59
void addEntry(const IndexEntry &entry)
Добавляет или обновляет запись в области подготовки.
Определения Index.cxx:55
bool write() const
Еще одна функция сохранения (как load), но возвращает bool.
Определения Index.cxx:220
void load()
Загружает записи индекса из файла индекса на диске (временный текстовый формат).
Определения Index.cxx:174
Управляет базой данных объектов системы контроля версий, включая сохранение и восстановление объектов...
Определения ObjectStorage.hxx:37
Основные структуры данных СКВ и модель объектов.
Представляет одну запись файла в области подготовки (Index).
Определения Index.hxx:32
long long file_size
Размер файла в байтах.
Определения Index.hxx:51
fs::path file_path
Путь к файлу относительно корневой директории репозитория.
Определения Index.hxx:41
fs::file_time_type last_modified
Время последнего изменения файла, используется для обнаружения изменений.
Определения Index.hxx:46
std::string blob_hash
Хеш SHA-256 содержимого файла (ID объекта Blob).
Определения Index.hxx:36