106 std::shared_ptr<ISubject> eventBus_;
107 std::shared_ptr<RepositoryManager> repoManager_;
133 bool interactive =
false;
178 std::vector<std::string> files;
187 std::vector<std::string> excludePatterns;
200 [[nodiscard]]
bool addInteractive()
const;
213 [[nodiscard]]
bool addPatch(
const std::string& filePath)
const;
226 [[nodiscard]]
bool showDryRun(
const std::vector<std::string>& files)
const;
241 [[nodiscard]]
bool shouldAddFile(
const std::string& file,
bool force)
const;
255 [[nodiscard]] AddOptions parseArguments(
const std::vector<std::string>& args)
const;
270 std::shared_ptr<RepositoryManager> repoManager);
283 bool execute(
const std::vector<std::string>& args)
override;
307 [[nodiscard]] std::string
getName()
const override {
return "add"; }
329 [[nodiscard]] std::string
getUsage()
const override;
Объявление интерфейса ICommand для всех исполняемых CLI команд.
Определяет интерфейс для компонента Subject (Издатель) шаблона Observer.
Declaration of the RepositoryManager class, managing all repository-level file operations.
Реализует команду "add" для Simple Version Control System (SVCS).
Определения AddCommand.hxx:63
void showHelp() const override
Отображает подробную справочную информацию для команды.
Определения AddCommand.cxx:295
bool execute(const std::vector< std::string > &args) override
Выполняет команду "add" с заданными аргументами.
Определения AddCommand.cxx:57
std::string getName() const override
Получает имя команды.
Определения AddCommand.hxx:177
std::vector< std::string > getAllFilesInDirectory(const std::string &directory) const
Получает все пути к файлам в заданной директории рекурсивно.
Определения AddCommand.cxx:268
AddCommand(std::shared_ptr< ISubject > subject, std::shared_ptr< RepositoryManager > repoManager)
Конструктор для AddCommand.
Определения AddCommand.cxx:19
std::string getUsage() const override
Получает синтаксис использования команды.
Определения AddCommand.cxx:291
std::string getDescription() const override
Получает краткое описание команды.
Определения AddCommand.cxx:287
Интерфейс (абстрактный базовый класс) для всех команд, выполняемых через CLI.
Определения ICommand.hxx:31
Компоненты командной строки и реализации команд.
FileStatus
Определяет статус файла в SVCS.
Определения AddCommand.hxx:32
@ MODIFIED
Файл отслеживается и был изменен с последнего коммита.
Определения AddCommand.hxx:41
@ DELETED
Файл отслеживается, но был удален из рабочей директории.
Определения AddCommand.hxx:46
@ UNMODIFIED
Файл отслеживается и не имеет изменений с последнего коммита.
Определения AddCommand.hxx:51
@ UNTRACKED
Файл присутствует, но не отслеживается SVCS.
Определения AddCommand.hxx:36
Основные структуры данных СКВ и модель объектов.