SVCS - Русская документация
Загрузка...
Поиск...
Не найдено
Класс svcs::core::Index

Управляет областью подготовки (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 IndexEntrygetEntry (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Если файл индекса не может быть записан.

Объявления и описания членов классов находятся в файлах: