Основной сервис для управления ветвями системы контроля версий (создание, удаление, переключение).
Подробнее...
#include <BranchManager.hxx>
|
| | 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< Branch > | getAllBranches () 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 |
◆ 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).
- Аргументы
-
- Возвращает
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()
Извлекает список всех известных ветвей, включая их состояние.
- Возвращает
- Вектор структур Branch.
◆ getBranchHead()
| std::string svcs::core::BranchManager::getBranchHead |
( |
const std::string & | branch_name | ) |
const |
Извлекает хеш коммита, на который указывает конкретная ветвь.
- Аргументы
-
- Возвращает
- Хеш 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 |
Проверяет, является ли заданная строка допустимым именем для новой ветви.
- Аргументы
-
- Возвращает
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 в противном случае.
Объявления и описания членов классов находятся в файлах: