SVCS - Русская документация
Загрузка...
Поиск...
Не найдено
Файл HubCommand.cxx

Реализация класса HubCommand для создания голых репозиториев. Подробнее...

#include "../include/HubCommand.hxx"
#include "../../services/Event.hxx"
#include <filesystem>
#include <fstream>
#include <iostream>

Пространства имен

namespace  svcs::server
 Серверные компоненты и команды администрирования.
namespace  svcs::server::cli
 Компоненты командной строки для администрирования сервера.

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

Реализация класса HubCommand для создания голых репозиториев.

Этот файл предоставляет конкретную реализацию для класса HubCommand. Метод execute обрабатывает логику для:

  1. Проверки аргументов: Обеспечивает предоставление ровно одного валидного пути.
  2. Проверок файловой системы: Проверяет, что репозиторий еще не существует в целевом местоположении.
  3. Создания директорий: Создает целевую директорию и полную структуру "голого" репозитория .svcs (objects, refs, hooks и т.д.).
  4. Инициализации файлов: Записывает начальные файлы config, HEAD и description.
  5. Уведомлений: Использует шину событий ISubject для отчетов об успехе, информации или сообщениях об ошибках. Эта команда использует зависимость RepositoryManager косвенно, так как логика достаточно проста для самостоятельных операций файловой системы, но полагается на соглашения о путях менеджера.