24#include <unordered_map>
48namespace fs = std::filesystem;
130 std::unordered_map<std::string, Remote> remotes_;
139 fs::path config_path_;
174 bool addRemote(
const std::string& name,
const std::string& url);
200 bool hasRemote(
const std::string& name)
const;
213 std::string
getRemoteUrl(
const std::string& name)
const;
261 size_t count()
const {
return remotes_.size(); }
void save() const
Сохраняет текущие конфигурации удаленных репозиториев обратно в файл конфигурации.
Определения RemoteManager.cxx:74
RemoteManager(const fs::path &repo_path)
Конструирует RemoteManager и загружает существующие удаленные репозитории.
Определения RemoteManager.cxx:24
bool hasRemote(const std::string &name) const
Проверяет, существует ли удаленный репозиторий с заданным именем.
Определения RemoteManager.cxx:54
std::string getRemoteUrl(const std::string &name) const
Получает URL настроенного удаленного репозитория.
Определения RemoteManager.cxx:58
std::vector< std::string > listRemotes() const
Перечисляет имена всех настроенных удаленных репозиториев.
Определения RemoteManager.cxx:66
void load()
Загружает (или перезагружает) конфигурации удаленных репозиториев из файла конфигурации.
Определения RemoteManager.cxx:88
size_t count() const
Получает количество настроенных удаленных репозиториев.
Определения RemoteManager.hxx:147
bool removeRemote(const std::string &name)
Удаляет конфигурацию удаленного репозитория по имени.
Определения RemoteManager.cxx:43
bool addRemote(const std::string &name, const std::string &url)
Добавляет новую конфигурацию удаленного репозитория.
Определения RemoteManager.cxx:29
Серверные компоненты и команды администрирования.
Remote(const std::string &name, const std::string &url)
Конструирует структуру Remote.
Определения RemoteManager.hxx:60
std::string name
Короткое имя удаленного репозитория (например, "origin").
Определения RemoteManager.hxx:43
std::string url
URL (путь или сетевой адрес) удаленного репозитория.
Определения RemoteManager.hxx:48
std::string fetch_spec
Refspec, определяющий что извлекать (например, "+refs/heads/*:refs/remotes/origin/*").
Определения RemoteManager.hxx:53