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

Представляет единую, неизменяемую историческую точку (снимок) в истории репозитория. Подробнее...

#include <Commit.hxx>

Граф наследования:svcs::core::Commit:
svcs::core::VcsObject

Открытые члены

 Commit ()
 Конструктор по умолчанию.
 Commit (std::string thash, std::vector< std::string > phashes, std::string auth, std::string msg, std::time_t tstamp=std::time(nullptr))
 Основной конструктор для объекта Commit.
std::string getType () const override
 Возвращает тип объекта СКВ.
std::string serialize () const override
 Сериализует метаданные Commit в стандартизированный канонический формат для хеширования и хранения.
const std::string & getTreeHash () const
 Возвращает хеш ID связанного корневого объекта Tree.
const std::vector< std::string > & getParentHashes () const
 Возвращает хеш ID родительских коммитов.
const std::string & getAuthor () const
 Возвращает строку автора и email для коммита.
std::time_t getTimestamp () const
 Возвращает UNIX временную метку создания коммита.
const std::string & getMessage () const
 Возвращает пользовательское сообщение коммита.
void setMessage (const std::string &msg)
 Устанавливает сообщение коммита.
void setTimestamp (std::time_t tstamp)
 Устанавливает временную метку коммита.
void setTimestampNow ()
 Устанавливает временную метку коммита на текущее время.
void setParent (const std::string &parent)
 Устанавливает хеш родительского коммита.
Открытые члены унаследованные от svcs::core::VcsObject
 VcsObject ()=default
 Конструктор по умолчанию. Требуется для производных классов.
 VcsObject (const VcsObject &other)=default
 Конструктор копирования. Требуется для производных классов для корректного копирования hash_id.
virtual ~VcsObject ()=default
 Виртуальный деструктор.
std::string getHashId () const
 Возвращает уникальный хеш-идентификатор объекта.

Открытые статические члены

static Commit deserialize (const std::string &raw_content)
 Создает объект Commit из сериализованной строки, прочитанной из базы данных объектов.
Открытые статические члены унаследованные от svcs::core::VcsObject
static std::string calculateHash (const std::string &content)
 Вычисляет SHA-256 хеш для заданного канонического содержимого.

Дополнительные унаследованные члены

Защищенные члены унаследованные от svcs::core::VcsObject
void computeHash (const std::string &content)
 Вычисляет криптографический хеш-идентификатор для содержимого объекта.
Защищенные данные унаследованные от svcs::core::VcsObject
std::string hash_id
 Уникальный криптографический хеш-идентификатор (например, SHA-256) для этого объекта.

Подробное описание

Представляет единую, неизменяемую историческую точку (снимок) в истории репозитория.

Этот объект связывает структуру содержимого (хеш Tree) с метаданными (автор, сообщение, история родителей).

Конструктор(ы)

◆ Commit()

svcs::core::Commit::Commit ( std::string thash,
std::vector< std::string > phashes,
std::string auth,
std::string msg,
std::time_t tstamp = std::time(nullptr) )

Основной конструктор для объекта Commit.

Инициализирует поля метаданных, сортирует хеши родителей для согласованности и немедленно вычисляет хеш ID объекта.

Аргументы
thashХеш корневого объекта Tree.
phashesХеши непосредственных родительских коммитов.
authСтрока автора и email.
msgПользовательское сообщение коммита.
tstampВремя создания коммита (по умолчанию текущее время).

Методы

◆ deserialize()

Commit svcs::core::Commit::deserialize ( const std::string & raw_content)
static

Создает объект Commit из сериализованной строки, прочитанной из базы данных объектов.

Аргументы
raw_contentСериализованные строковые данные, обычно прочитанные из распакованного файла объекта.
Возвращает
Commit Полностью восстановленный объект Commit.

◆ getAuthor()

const std::string & svcs::core::Commit::getAuthor ( ) const
nodiscard

Возвращает строку автора и email для коммита.

Возвращает
const std::string& Строка автора.

◆ getMessage()

const std::string & svcs::core::Commit::getMessage ( ) const
nodiscard

Возвращает пользовательское сообщение коммита.

Возвращает
const std::string& Сообщение коммита.

◆ getParentHashes()

const std::vector< std::string > & svcs::core::Commit::getParentHashes ( ) const
nodiscard

Возвращает хеш ID родительских коммитов.

Возвращает
const std::vector<std::string>& Список хешей родителей (отсортированный).

◆ getTimestamp()

std::time_t svcs::core::Commit::getTimestamp ( ) const
nodiscard

Возвращает UNIX временную метку создания коммита.

Возвращает
std::time_t Значение временной метки.

◆ getTreeHash()

const std::string & svcs::core::Commit::getTreeHash ( ) const
nodiscard

Возвращает хеш ID связанного корневого объекта Tree.

Возвращает
const std::string& Хеш дерева.

◆ getType()

std::string svcs::core::Commit::getType ( ) const
nodiscardoverridevirtual

Возвращает тип объекта СКВ.

Возвращает
std::string Всегда возвращает "commit".

Замещает svcs::core::VcsObject.

◆ serialize()

std::string svcs::core::Commit::serialize ( ) const
nodiscardoverridevirtual

Сериализует метаданные Commit в стандартизированный канонический формат для хеширования и хранения.

Сериализованный формат включает пары ключ/значение (tree, parent, author), за которыми следует сообщение.

Возвращает
std::string Стандартизированные сериализованные данные коммита.

Замещает svcs::core::VcsObject.

◆ setMessage()

void svcs::core::Commit::setMessage ( const std::string & msg)

Устанавливает сообщение коммита.

Аргументы
msgНовое сообщение коммита.

◆ setParent()

void svcs::core::Commit::setParent ( const std::string & parent)

Устанавливает хеш родительского коммита.

Аргументы
parentХеш родительского коммита.

◆ setTimestamp()

void svcs::core::Commit::setTimestamp ( std::time_t tstamp)

Устанавливает временную метку коммита.

Аргументы
tstampНовое значение временной метки.

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