Управляет областью подготовки (Index) репозитория СКВ.
Подробнее...
#include <Index.hxx>
|
| | Index (const fs::path &vcs_root_path, fs::path repo_root_path, ObjectStorage &storage) |
| | Конструирует менеджер Index, настраивая пути и загружая индекс.
|
|
| ~Index () |
| | Деструктор.
|
| void | addEntry (const IndexEntry &entry) |
| | Добавляет или обновляет запись в области подготовки.
|
| const IndexEntry * | getEntry (const fs::path &file_path) const |
| | Извлекает запись из индекса по относительному пути файла.
|
| void | load () |
| | Загружает записи индекса из файла индекса на диске (временный текстовый формат).
|
| void | save () const |
| | Сохраняет текущее состояние записей индекса в файл индекса (временный текстовый формат).
|
| bool | write () const |
| | Еще одна функция сохранения (как load), но возвращает bool.
|
| bool | isFileModified (const fs::path &file_path) const |
| | Проверяет, был ли файл в рабочей директории изменен с момента последней подготовки.
|
| void | stage_file (const fs::path &relative_path) |
| | Подготавливает файл, создавая объект Blob, сохраняя его в хранилище и обновляя запись Index (Основная логика 'svcs add').
|
| std::string | createTreeObject () |
| | Создает иерархическую структуру Tree на основе текущих подготовленных записей и сохраняет объекты Tree в ObjectStorage.
|
Управляет областью подготовки (Index) репозитория СКВ.
Класс Index отвечает за чтение и запись списка подготовленных файлов в файл индекса (.svcs/index), управление операцией 'svcs add' и предоставление необходимой структуры для создания коммитов.
◆ Index()
| svcs::core::Index::Index |
( |
const fs::path & | vcs_root_path, |
|
|
fs::path | repo_root_path, |
|
|
ObjectStorage & | storage ) |
Конструирует менеджер Index, настраивая пути и загружая индекс.
- Аргументы
-
| vcs_root_path | Путь к управляющей директории СКВ (например, .svcs). |
| repo_root_path | Путь к корню рабочей директории репозитория. |
| storage | Ссылка на экземпляр ObjectStorage. |
◆ addEntry()
| void svcs::core::Index::addEntry |
( |
const IndexEntry & | entry | ) |
|
Добавляет или обновляет запись в области подготовки.
- Аргументы
-
| entry | Объект IndexEntry для добавления или обновления. |
◆ createTreeObject()
| std::string svcs::core::Index::createTreeObject |
( |
| ) |
|
Создает иерархическую структуру Tree на основе текущих подготовленных записей и сохраняет объекты Tree в ObjectStorage.
- Возвращает
- Хеш SHA-1 (ID) конечного корневого объекта Tree.
- Исключения
-
| std::runtime_error | Если индекс пуст или создание дерева завершается неудачно. |
◆ getEntry()
| const IndexEntry * svcs::core::Index::getEntry |
( |
const fs::path & | file_path | ) |
const |
|
nodiscard |
Извлекает запись из индекса по относительному пути файла.
- Аргументы
-
| file_path | Относительный путь файла. |
- Возвращает
- Указатель на константный IndexEntry или nullptr, если не найден.
◆ isFileModified()
| bool svcs::core::Index::isFileModified |
( |
const fs::path & | file_path | ) |
const |
|
nodiscard |
Проверяет, был ли файл в рабочей директории изменен с момента последней подготовки.
- Аргументы
-
| file_path | Относительный путь проверяемого файла. |
- Возвращает
- true Если файл изменен, удален или не отслеживается; false в противном случае.
◆ load()
| void svcs::core::Index::load |
( |
| ) |
|
Загружает записи индекса из файла индекса на диске (временный текстовый формат).
- Исключения
-
| std::runtime_error | Если файл индекса не может быть прочитан. |
◆ save()
| void svcs::core::Index::save |
( |
| ) |
const |
Сохраняет текущее состояние записей индекса в файл индекса (временный текстовый формат).
- Исключения
-
| std::runtime_error | Если файл индекса не может быть записан. |
◆ stage_file()
| void svcs::core::Index::stage_file |
( |
const fs::path & | relative_path | ) |
|
Подготавливает файл, создавая объект Blob, сохраняя его в хранилище и обновляя запись Index (Основная логика 'svcs add').
- Аргументы
-
| relative_path | Путь к файлу относительно корневой директории репозитория. |
- Исключения
-
| std::runtime_error | Если путь недействителен или операции чтения/записи завершаются неудачно. |
◆ write()
| bool svcs::core::Index::write |
( |
| ) |
const |
|
nodiscard |
Еще одна функция сохранения (как load), но возвращает bool.
- Исключения
-
| std::runtime_error | Если файл индекса не может быть записан. |
Объявления и описания членов классов находятся в файлах: