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

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

#include <BranchManager.hxx>

Классы

struct  Branch
 Структура для хранения метаданных одной ветви. Подробнее...

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

 BranchManager (std::shared_ptr< ISubject > event_bus)
 Конструирует BranchManager.
void createDefaultBranches ()
 Создает начальный набор ветвей по умолчанию (например, 'main').
bool createBranch (const std::string &name)
 Создает новую ветвь, указывающую на определенный коммит (обычно HEAD).
bool createBranchFromCommit (const std::string &name, const std::string &commit_hash)
 Создает новую ветвь из определенного коммита.
std::string getHeadCommit ()
 Получает хеш коммита текущего HEAD.
bool deleteBranch (const std::string &name, bool force=false)
 Удаляет существующую ветвь.
bool renameBranch (const std::string &old_name, const std::string &new_name)
 Переименовывает существующую ветвь.
bool switchBranch (const std::string &name)
 Переключает активную ветвь на указанное имя.
std::vector< BranchgetAllBranches () const
 Извлекает список всех известных ветвей, включая их состояние.
std::string getCurrentBranch () const
 Извлекает имя текущей активной ветви.
bool updateBranchHead (const std::string &branch_name, const std::string &commit_hash)
 Обновляет хеш коммита, на который указывает указанная ветвь.
bool branchExists (const std::string &name) const
 Проверяет, существует ли ветвь с заданным именем.
std::string getBranchHead (const std::string &branch_name) const
 Извлекает хеш коммита, на который указывает конкретная ветвь.

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

static bool isValidBranchName (const std::string &name)
 Проверяет, является ли заданная строка допустимым именем для новой ветви.
static bool commitExists (const std::string &commit_hash)
 Проверяет, существует ли коммит (реализация, предположительно, проверяет хранилище объектов).

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

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

Этот класс абстрагирует детали хранения ветвей и предоставляет высокоуровневый интерфейс для манипулирования ветвями. Он использует внутреннюю карту для отслеживания ветвей и передает статус/ошибки через шину событий ISubject.

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

◆ BranchManager()

svcs::core::BranchManager::BranchManager ( std::shared_ptr< ISubject > event_bus)
explicit

Конструирует BranchManager.

Аргументы
event_busОбщий указатель на шину событий (ISubject) для связи.

Методы

◆ branchExists()

bool svcs::core::BranchManager::branchExists ( const std::string & name) const

Проверяет, существует ли ветвь с заданным именем.

Аргументы
nameИмя ветви для проверки.
Возвращает
true, если ветвь существует, false в противном случае.

◆ commitExists()

bool svcs::core::BranchManager::commitExists ( const std::string & commit_hash)
static

Проверяет, существует ли коммит (реализация, предположительно, проверяет хранилище объектов).

Аргументы
commit_hashХеш для проверки.
Возвращает
true, если коммит существует, false в противном случае.

◆ createBranch()

bool svcs::core::BranchManager::createBranch ( const std::string & name)

Создает новую ветвь, указывающую на определенный коммит (обычно HEAD).

Аргументы
nameИмя новой ветви.
Возвращает
true, если ветвь успешно создана, false в противном случае.

◆ createBranchFromCommit()

bool svcs::core::BranchManager::createBranchFromCommit ( const std::string & name,
const std::string & commit_hash )

Создает новую ветвь из определенного коммита.

Аргументы
nameИмя ветви.
commit_hashХеш коммита, от которого создается ветвь.
Возвращает
true, если успешно, false в противном случае.

◆ deleteBranch()

bool svcs::core::BranchManager::deleteBranch ( const std::string & name,
bool force = false )

Удаляет существующую ветвь.

Предотвращает удаление текущей ветви, если только force не равно true.

Аргументы
nameИмя ветви для удаления.
forceЕсли true, принудительно удаляет, даже если ветвь не полностью слита (зависит от реализации).
Возвращает
true, если ветвь успешно удалена, false в противном случае.

◆ getAllBranches()

std::vector< BranchManager::Branch > svcs::core::BranchManager::getAllBranches ( ) const

Извлекает список всех известных ветвей, включая их состояние.

Возвращает
Вектор структур Branch.

◆ getBranchHead()

std::string svcs::core::BranchManager::getBranchHead ( const std::string & branch_name) const

Извлекает хеш коммита, на который указывает конкретная ветвь.

Аргументы
branch_nameИмя ветви.
Возвращает
Хеш HEAD коммита ветви, или пустая строка, если ветвь не существует.

◆ getCurrentBranch()

std::string svcs::core::BranchManager::getCurrentBranch ( ) const

Извлекает имя текущей активной ветви.

Возвращает
Строковое имя текущей ветви.

◆ getHeadCommit()

std::string svcs::core::BranchManager::getHeadCommit ( )

Получает хеш коммита текущего HEAD.

Возвращает
std::string Хеш коммита текущего HEAD, или пустая строка, если не найден.

◆ isValidBranchName()

bool svcs::core::BranchManager::isValidBranchName ( const std::string & name)
static

Проверяет, является ли заданная строка допустимым именем для новой ветви.

Аргументы
nameСтрока для проверки.
Возвращает
true, если имя допустимо, false в противном случае.

◆ renameBranch()

bool svcs::core::BranchManager::renameBranch ( const std::string & old_name,
const std::string & new_name )

Переименовывает существующую ветвь.

Аргументы
old_nameТекущее имя ветви.
new_nameЖелаемое новое имя для ветви.
Возвращает
true, если ветвь успешно переименована, false в противном случае.

◆ switchBranch()

bool svcs::core::BranchManager::switchBranch ( const std::string & name)

Переключает активную ветвь на указанное имя.

Обычно это включает обновление ссылки HEAD и извлечение файлов (логика извлечения файлов может находиться в RepositoryManager).

Аргументы
nameИмя ветви для переключения.
Возвращает
true, если переключение было успешным, false в противном случае.

◆ updateBranchHead()

bool svcs::core::BranchManager::updateBranchHead ( const std::string & branch_name,
const std::string & commit_hash )

Обновляет хеш коммита, на который указывает указанная ветвь.

Аргументы
branch_nameИмя ветви для обновления.
commit_hashНовый хеш коммита.
Возвращает
true, если обновление было успешным, false в противном случае.

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