64 std::shared_ptr<RepositoryManager> repo_manager);
85 [[nodiscard]] std::string
getName()
const override;
107 [[nodiscard]] std::string
getUsage()
const override;
120 bool execute(
const std::vector<std::string>& args)
override;
143 void debugBranchHistory(
const std::string& branch_name,
const std::string& head_commit)
const;
156 bool mergeBranch(
const std::string& branch_name)
const;
167 bool abortMerge()
const;
178 [[nodiscard]]
bool isMergeInProgress()
const;
193 std::string findCommonAncestor(
const std::string& commit1,
const std::string& commit2)
const;
210 bool performThreeWayMerge(
const std::string& ancestor,
211 const std::string& current,
212 const std::string& other)
const;
231 static bool mergeFileContent(
const std::string& ancestor_content,
232 const std::string& current_content,
233 const std::string& other_content,
234 std::string& merged_content);
244 std::shared_ptr<ISubject> event_bus_;
253 std::shared_ptr<RepositoryManager> repo_manager_;
Объявление интерфейса ICommand для всех исполняемых CLI команд.
Определяет интерфейс для компонента Subject (Издатель) шаблона Observer.
Declaration of the RepositoryManager class, managing all repository-level file operations.
Интерфейс (абстрактный базовый класс) для всех команд, выполняемых через CLI.
Определения ICommand.hxx:31
bool execute(const std::vector< std::string > &args) override
Выполняет команду merge с заданными аргументами.
Определения MergeCommand.cxx:37
std::string getName() const override
Получает имя команды.
Определения MergeCommand.cxx:25
std::string getDescription() const override
Получает описание команды.
Определения MergeCommand.cxx:29
MergeCommand(std::shared_ptr< ISubject > event_bus, std::shared_ptr< RepositoryManager > repo_manager)
Конструирует MergeCommand с шиной событий и менеджером репозитория.
Определения MergeCommand.cxx:20
void showHelp() const override
Отображает справочную информацию для команды.
Определения MergeCommand.cxx:73
~MergeCommand() override=default
Деструктор.
std::string getUsage() const override
Получает синтаксис использования команды.
Определения MergeCommand.cxx:33
Компоненты командной строки и реализации команд.
Основные структуры данных СКВ и модель объектов.
Компоненты сервисного слоя и инфраструктурные сервисы.