Утилита для git#

Используется для автоматизации выпуска релизов и переключения между ветками в проекте решения.

Для запуска используйте gsf-cli\gsf_git.cmd.

Совет

Для удобной работы из консоли решения используйте алиас gsfp_git.cmd.

Консоль решения можно открыть ярлыком workspace/links/[project_name]/start_shell.cmd

Алгоритм выпуска релизов:

  1. Откройте консоль решения для выпуска релиза

  2. Выпустите релиз модуля
    В каталоге модуля выполните gsfp_git create_release

  3. Откройте консоль решения для релиза

    Совет

    Для переключение решения в релизную ветку в каталоге решения выполните gsfp_git switch release

  4. Переключите релиз
    Для этого в каталоге модуля выполните gsfp_git switch [release_name]

  5. Сделайте commit и push для проекта решения

Commands:#

usage: gsf_git.py [-h] [-p P] [-w W] [-m M] [-s] [--all_modules] [--use_pipeline] cmd ...

positional arguments:
  cmd                  Команды
    full_help          Распечатать справку
    refresh            Обновить исходный код решения из git репозитория
    create_generation  Выпустить поколение
    create_major       Выпустить мажорную версию
    create_minor       Выпустить минорную версию
    create_build       Выпустить билд
    create_patch_branch
                       Создаёт ветку для патча
    create_patch       Выпустить патч
    switch             Переключится на другую ветку
    update_to_last_tag
                       Актуализирует модули до последних версий тегов
    switch_to_last_tag
                       Переключает модули на последних версий тегов
    status             Отобразить статус
    version_info       Отобразить информацию по версиям

options:
  -h, --help           show this help message and exit
  -p P                 Имя проекта
  -w W                 Рабочий каталог
  -m M                 Имя модуля
  -s                   Решение
  --all_modules        Все модули
  --use_pipeline       Выполнить в режиме работы с защищёнными модулями

Full_help#

usage: gsf_git.py full_help [-h]

options:
  -h, --help  show this help message and exit

Refresh#

usage: gsf_git.py refresh [-h]

Обновляет исходный код решения и модулей git

options:
  -h, --help  show this help message and exit

Create_generation#

usage: gsf_git.py create_generation [-h] [-m M [M ...]] [--use_pipeline]

Выпускает поколение.
При этом:
- Обрабатывается версии для корректного отображения в тегах
- Увеличивается текущее поколение и билд версии модулей
- Происходит создание тегов по текущим версиям модулей
- Происходит commit и push изменений и тегов
- Нельзя создать поколение от патча

options:
  -h, --help      show this help message and exit
  -m M [M ...]    Список модулей для обновления
  --use_pipeline  Запускать пайплайн для выпуска версии вместо попытки пуша в
                  мейн

Create_major#

usage: gsf_git.py create_major [-h] [-m M [M ...]] [--use_pipeline]

Выпускает мажорную версию.
При этом:
- Обрабатывается версии для корректного отображения в тегах
- Увеличиваются текущие мажорная и билд версии модулей
- Минорная и релизная версия зануляются
- Происходит создание тегов по текущим версиям модулей
- Происходит commit и push изменений и тегов
- Нельзя создать мажорную версию от патча

options:
  -h, --help      show this help message and exit
  -m M [M ...]    Список модулей для обновления
  --use_pipeline  Запускать пайплайн для выпуска версии вместо попытки пуша в
                  мейн

Create_minor#

usage: gsf_git.py create_minor [-h] [-m M [M ...]] [--use_pipeline]

Выпускает минорную версию.
При этом:
- Обрабатывается версии для корректного отображения в тегах
- Увеличиваются текущие минорная и билд версии модулей
- Релизная версия зануляется
- Происходит создание тегов по текущим версиям модулей
- Происходит commit и push изменений и тегов
- Нельзя создать минорную версию от патча

options:
  -h, --help      show this help message and exit
  -m M [M ...]    Список модулей для обновления
  --use_pipeline  Запускать пайплайн для выпуска версии вместо попытки пуша в
                  мейн

Create_build#

usage: gsf_git.py create_build [-h] [-m M [M ...]] [--use_pipeline]

Выпускает билд.
При этом:
- Обрабатывается версии для корректного отображения в теге
- Увеличивается текущие билд версии модулей
- Происходит создание тегов по текущим версиям модулей
- Происходит commit и push изменений и тегов
- Нельзя создать билд от патча

options:
  -h, --help      show this help message and exit
  -m M [M ...]    Список модулей для обновления
  --use_pipeline  Запускать пайплайн для выпуска версии вместо попытки пуша в
                  мейн

Create_patch_branch#

usage: gsf_git.py create_patch_branch [-h]

Создаёт ветку для патча.
При этом:
- Создаётся новая ветка, если её нет
- Локальная ревизия устанавливается в ветку с патчем
- Ошибка, если есть незакоммиченные изменения
- Ошибка, если команда вызвана сразу на несколько модулей

options:
  -h, --help  show this help message and exit

Create_patch#

usage: gsf_git.py create_patch [-h] [-m M [M ...]]

Выпускает патч.
При этом:
- Обрабатывается версия для корректного отображения в теге
- Увеличивается текущая версия модуля по патчу
- Происходит создание тегов по текущим версиям модулей

options:
  -h, --help    show this help message and exit
  -m M [M ...]  Список модулей для обновления

Switch#

usage: gsf_git.py switch [-h] (-branch BRANCH | -mb MB [MB ...])

Переключает репозиторий на другую ветку.
При запуске от решения:
- Изменяется ветка в настройках проекта
- Происходит обновление репозиториев

При запуски от модуля:
- Изменяется ветка в файле `project.yaml`
  Внимание: Данные изменения не попадают в commit
- Происходит обновление исходного кода по модулю

options:
  -h, --help       show this help message and exit
  -branch BRANCH
  -mb MB [MB ...]  <module_name>:<branch_name>

Update_to_last_tag#

usage: gsf_git.py update_to_last_tag [-h] [-m M [M ...]]

Актуализирует модули до последних версий тегов.
Модули, в которых указана ветка, а не тег - игнорируются.
При этом:
- Изменяется ветка в файле `project.yaml`
  Внимание: Данные изменения не попадают в commit
- Происходит обновление исходного кода по модулю

options:
  -h, --help    show this help message and exit
  -m M [M ...]  Список модулей для обновления

Switch_to_last_tag#

usage: gsf_git.py switch_to_last_tag [-h] [-m M [M ...]]

Переключает модули на последние версии тегов.
При этом:
- Изменяется ветка в файле `project.yaml`
  Внимание: Данные изменения не попадают в commit
- Происходит обновление исходного кода по модулю

options:
  -h, --help    show this help message and exit
  -m M [M ...]  Список модулей для обновления

Status#

usage: gsf_git.py status [-h]

Отображает информацию о состоянии решения и модулей.
Позволяет увидеть список модулей по которым необходимо сделать commit или push.
Решение в списке обозначено символом `.`

options:
  -h, --help  show this help message and exit

Version_info#

usage: gsf_git.py version_info [-h]

Отображает информацию по версиям решения и модулей.
Решение обозначается символом `.`

options:
  -h, --help  show this help message and exit