Слияние независимых репозиториев в Git

Git без проблем позволяет слить два разных проекта в один.

tree-of-merge-different-projects-in-git

Сделать это очень просто.

  1. Делаем резервные копии репозиториев, если они не синхронизированы с серверов.
  2. В первом репозитории добавляем внешний репозиторий, в качестве которого указываем путь ко второму репозиторию. Путь может быть локальным или к репозиторию на сервере.
  3. Подкачиваем второй репозиторий.
  4. Если вы работаете в Git Gui, то добавляем метку к ветки второго репозитория.
  5. Производим слияние веток первого и второго репозитория. В Git Gui для этого нужно использовать метку.
Реклама

Статические переменные вместо глобальных на Си/Си++

Использование глобальных переменных считается дурным тоном, потому что создает много проблем. Избавиться от них можно с помощью ключевого слова static, которое создает статические переменные.

Есть простой способ избавиться от большинства глобальных переменных.

void fun(void) {
    static int A = 10;
    ...
}

Переменная A располагается в глобальной области памяти, но имеет локальную область видимости (в пределах функции fun). То есть переменная сохраняет свое значение между вызовами функции. Начальное значение переменной равно 10.

Этот способ не годится, если функциям нужно обмениваться данными, например, обработчику прерывания с основной программой. Это решается созданием глобальной переменной в отдельном файле. Ниже приведен код такого файла.

static int A = 10;

void setA(const int value) {
    A = value;
}

int getA(void) {
    return A;
}

Область видимости переменной A — только этот файл. Никаким способом к ней нельзя получить доступ из других файлов. Функции setA и getA позволяют получить и установить значение переменной.