|
SVCS - Русская документация
|
Управляет всеми физическими операциями с файлами и директориями в репозитории SVCS. Подробнее...
#include <RepositoryManager.hxx>
Открытые члены | |
| RepositoryManager (std::shared_ptr< ISubject > bus) | |
| Конструирует RepositoryManager. | |
| void | updateHead (const std::string &commit_hash) const |
| Обновляет ссылку HEAD. | |
| bool | initializeRepository (const std::string &path, bool force=false) |
| Инициализирует новый репозиторий SVCS по указанному пути. | |
| bool | isRepositoryInitialized (const std::string &path=".") |
| Проверяет, инициализирован ли репозиторий SVCS по заданному пути или его родителям. | |
| void | updateBranchReference (const std::string &branchName, const std::string &commitHash) const |
| Обновляет файл ссылки ветви хешем коммита. | |
| std::filesystem::path | getRepositoryPath () const |
| Возвращает определенный корневой путь текущего активного репозитория. | |
| bool | addFileToStaging (const std::string &filePath) |
| Пытается добавить файл в область подготовки (индекс). | |
| std::string | getHeadCommit () const |
| Извлекает хеш текущего коммита HEAD в репозитории. | |
| std::string | createCommit (const std::string &message) |
| Создает коммит из текущих подготовленных файлов. | |
| void | updateCommitReferences (const std::string &removedCommitHash, const std::string &newParentHash) const |
| Обновляет ссылки коммитов при удалении коммита. | |
| bool | revertCommit (const std::string &commit_hash) |
| Откатывает состояние репозитория к предыдущему коммиту. | |
| std::optional< CommitInfo > | getCommitByHash (const std::string &commit_hash) const |
| Извлекает структуру CommitInfo для заданного хеша коммита. | |
| std::string | getParentCommitHash (const std::string &commit_hash) const |
| Извлекает хеш родительского коммита для заданного коммита. | |
| bool | restoreFilesFromCommit (const CommitInfo &commit) const |
| Восстанавливает файлы рабочей директории до состояния, записанного в конкретном коммите. | |
| bool | clearStagingArea () |
| Очищает содержимое области подготовки (индекса). | |
| bool | saveStagedChanges (const std::string &message) |
| Создает коммит из подготовленных изменений. (Удобный метод, часто используемый SaveCommand). | |
| std::vector< std::string > | getStagedFiles () |
| Извлекает список всех файлов, в настоящее время помеченных как подготовленные (индексированные). | |
| std::vector< CommitInfo > | getCommitHistory () const |
| Извлекает полную историю коммитов для текущей ветви. | |
| std::vector< CommitInfo > | getBranchHistory (const std::string &branch_name) const |
| Извлекает историю коммитов для конкретной ветви. | |
| std::string | getCurrentBranch () const |
| Получает имя текущей ветви. | |
| bool | removeRepository (const std::filesystem::path &path) const |
| Пытается рекурсивно удалить всю структуру репозитория SVCS (например, директорию .svcs) и ее содержимое. | |
| bool | branchExists (const std::string &branch_name) const |
| Проверяет, существует ли ветвь. | |
| std::string | getBranchHead (const std::string &branch_name) const |
| Получает головной коммит ветви. | |
| std::string | getFileContentAtCommit (const std::string &commit_hash, const std::string &file_path) const |
| Получает содержимое файла в конкретном коммите. | |
| std::vector< std::string > | getCommitFiles (const std::string &commit_hash) const |
| Получает все файлы, измененные в коммите. | |
| void | setMergeState (const std::string &branch_name, const std::string &commit_hash) const |
| Устанавливает состояние слияния (для разрешения конфликтов). | |
| void | clearMergeState () const |
| Очищает состояние слияния (после завершения/прерывания слияния). | |
| bool | isMergeInProgress () const |
| Проверяет, выполняется ли слияние. | |
| std::string | getMergeBranch () const |
| Получает ветвь, которая сливается. | |
Открытые статические члены | |
| static std::string | generateCommitHash (const std::string &content) |
| Генерирует хеш коммита из содержимого. | |
Управляет всеми физическими операциями с файлами и директориями в репозитории SVCS.
RepositoryManager - это основной уровень, отвечающий за прямое взаимодействие с файловой системой для таких задач, как инициализация, управление путями, подготовка, коммиты и логирование.
|
explicit |
Конструирует RepositoryManager.
| bus | Общий указатель на шину событий (ISubject) для связи. |
| bool svcs::core::RepositoryManager::addFileToStaging | ( | const std::string & | filePath | ) |
Пытается добавить файл в область подготовки (индекс).
Обычно это включает чтение файла и обновление состояния индекса.
| filePath | Путь к файлу для подготовки. |
true, если файл успешно добавлен, false в противном случае. | bool svcs::core::RepositoryManager::branchExists | ( | const std::string & | branch_name | ) | const |
Проверяет, существует ли ветвь.
| branch_name | Имя ветви для проверки. |
| bool svcs::core::RepositoryManager::clearStagingArea | ( | ) |
Очищает содержимое области подготовки (индекса).
true, если область подготовки успешно очищена, false в противном случае. | std::string svcs::core::RepositoryManager::createCommit | ( | const std::string & | message | ) |
Создает коммит из текущих подготовленных файлов.
| message | Сообщение коммита, предоставленное пользователем. |
|
static |
Генерирует хеш коммита из содержимого.
| content | Содержимое для хеширования. |
| std::string svcs::core::RepositoryManager::getBranchHead | ( | const std::string & | branch_name | ) | const |
Получает головной коммит ветви.
| branch_name | Имя ветви. |
| std::vector< CommitInfo > svcs::core::RepositoryManager::getBranchHistory | ( | const std::string & | branch_name | ) | const |
Извлекает историю коммитов для конкретной ветви.
| branch_name | Имя ветви. |
| std::optional< CommitInfo > svcs::core::RepositoryManager::getCommitByHash | ( | const std::string & | commit_hash | ) | const |
Извлекает структуру CommitInfo для заданного хеша коммита.
| commit_hash | Хеш коммита для извлечения. |
| std::vector< std::string > svcs::core::RepositoryManager::getCommitFiles | ( | const std::string & | commit_hash | ) | const |
Получает все файлы, измененные в коммите.
| commit_hash | Хеш коммита. |
| std::vector< CommitInfo > svcs::core::RepositoryManager::getCommitHistory | ( | ) | const |
Извлекает полную историю коммитов для текущей ветви.
| std::string svcs::core::RepositoryManager::getCurrentBranch | ( | ) | const |
Получает имя текущей ветви.
| std::string svcs::core::RepositoryManager::getFileContentAtCommit | ( | const std::string & | commit_hash, |
| const std::string & | file_path ) const |
Получает содержимое файла в конкретном коммите.
| commit_hash | Хеш коммита. |
| file_path | Путь к файлу. |
| std::string svcs::core::RepositoryManager::getHeadCommit | ( | ) | const |
Извлекает хеш текущего коммита HEAD в репозитории.
| std::string svcs::core::RepositoryManager::getMergeBranch | ( | ) | const |
Получает ветвь, которая сливается.
| std::string svcs::core::RepositoryManager::getParentCommitHash | ( | const std::string & | commit_hash | ) | const |
Извлекает хеш родительского коммита для заданного коммита.
| commit_hash | Хеш дочернего коммита. |
|
nodiscard |
Возвращает определенный корневой путь текущего активного репозитория.
| std::vector< std::string > svcs::core::RepositoryManager::getStagedFiles | ( | ) |
Извлекает список всех файлов, в настоящее время помеченных как подготовленные (индексированные).
| bool svcs::core::RepositoryManager::initializeRepository | ( | const std::string & | path, |
| bool | force = false ) |
Инициализирует новый репозиторий SVCS по указанному пути.
Создает необходимые внутренние директории и файлы (например, .svcs/).
| path | Путь директории, где должен быть создан репозиторий. |
| force | Если true, принудительно инициализирует, даже если директория существует (зависит от реализации). |
true, если инициализация прошла успешно, false в противном случае. | bool svcs::core::RepositoryManager::isMergeInProgress | ( | ) | const |
Проверяет, выполняется ли слияние.
| bool svcs::core::RepositoryManager::isRepositoryInitialized | ( | const std::string & | path = "." | ) |
Проверяет, инициализирован ли репозиторий SVCS по заданному пути или его родителям.
| path | Путь, с которого начинать поиск (по умолчанию текущая директория "."). |
true, если найдена структура репозитория, false в противном случае. | bool svcs::core::RepositoryManager::removeRepository | ( | const std::filesystem::path & | path | ) | const |
Пытается рекурсивно удалить всю структуру репозитория SVCS (например, директорию .svcs) и ее содержимое.
| path | Корневой путь удаляемого репозитория. |
true, если удаление прошло успешно, false в противном случае. | bool svcs::core::RepositoryManager::restoreFilesFromCommit | ( | const CommitInfo & | commit | ) | const |
Восстанавливает файлы рабочей директории до состояния, записанного в конкретном коммите.
| commit | Структура CommitInfo, представляющая целевое состояние. |
true, если файлы успешно восстановлены, false в противном случае. | bool svcs::core::RepositoryManager::revertCommit | ( | const std::string & | commit_hash | ) |
Откатывает состояние репозитория к предыдущему коммиту.
Обычно используется для отмены эффектов предыдущего 'save' (коммита).
| commit_hash | Хеш коммита, к которому нужно откатиться (или коммита перед тем, который нужно отменить). |
true, если откат прошел успешно, false в противном случае. | bool svcs::core::RepositoryManager::saveStagedChanges | ( | const std::string & | message | ) |
Создает коммит из подготовленных изменений. (Удобный метод, часто используемый SaveCommand).
| message | Сообщение коммита. |
true, если сохранение (коммит) прошло успешно, false в противном случае. | void svcs::core::RepositoryManager::setMergeState | ( | const std::string & | branch_name, |
| const std::string & | commit_hash ) const |
Устанавливает состояние слияния (для разрешения конфликтов).
| branch_name | Ветвь, которая сливается. |
| commit_hash | Коммит, который сливается. |
| void svcs::core::RepositoryManager::updateBranchReference | ( | const std::string & | branchName, |
| const std::string & | commitHash ) const |
Обновляет файл ссылки ветви хешем коммита.
| branchName | Имя ветви для обновления. |
| commitHash | Хеш коммита для установки в качестве головы ветви. |
| void svcs::core::RepositoryManager::updateCommitReferences | ( | const std::string & | removedCommitHash, |
| const std::string & | newParentHash ) const |
Обновляет ссылки коммитов при удалении коммита.
| removedCommitHash | Хеш удаляемого коммита. |
| newParentHash | Новый хеш родителя для зависимых коммитов. |
| void svcs::core::RepositoryManager::updateHead | ( | const std::string & | commit_hash | ) | const |
Обновляет ссылку HEAD.
| commit_hash | Хеш коммита для установки в качестве HEAD. |