Работа с Git

В Tengri поддержана работа с репозиториями в системе контроля версий Git.

Поддержка Git позволяет решить следующие задачи:

  • Организация эффективной совместной работы аналитиков внутри одной инсталляции Tengri

  • Управление кодовой базой ноутбуков Tengri из центрального репозитория

  • Перемещение кодовой базы ноутбуков между разными инсталляциями Tengri посредством CI/CD-пайплайнов

git
Общая схема разработки в системе контроля версий Git

Рабочие пространства и репозитории

Рабочее пространство — это корневой элемент структуры, который состоит из репозиториев. Активное рабочее пространство отображается в левой боковой панели в корне дерева с ноутбуками.

Дерево ноутбуков отображает все репозитории активного рабочего пространства. Для каждого репозитория в дереве отображается активная ветка и все его содержимое.

folder tree

Переключаться между рабочими пространствами можно во вкладке Settings > Workspaces.

Ветки репозиториев

Для каждого репозитория при его добавлении в рабочее пространство задается дефолтная ветка.

Активная ветка отображается рядом с именем репозитория. При нажатии на имя активной ветки открывается меню работы с ветками.

Действия с ветками:

  • Переключить текущую ветку — git checkout

  • Создать новую ветку и переключиться в нее — git checkout -b

  • Удалить ветку — git branch -d

Действия с репозиториями

Кнопки действий с репозиториями отображаются при наведении на строку репозитория в дереве.

Действия:

  • Влить текущую ветку в дефолтную ветку — git merge

  • Подтянуть изменения из дефолтной ветки в текущую ветку — git merge

  • Опубликовать текущую ветку в Git — git push

  • Создать папку в корне репозитория

  • Создать ноутбук в корне репозитория

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

Действия с ноутбуками

Цвет иконки ноутбука в дереве отражает его текущее состояние:

  • Новый — создан, но ещё не опубликован в Git

  • Изменен — опубликован, но есть несохранённые изменения (черновик)

  • Опубликован — актуальная версия опубликована в Git, черновика нет

Кнопки действий с ноутбуками и папками отображаются при наведении на строку ноутбука или строку папки:

  • Publish — опубликовать черновик в Git — git push

  • Pull — подтянуть актуальную версию из Git в черновик — git pull

  • Rename — переименовать ноутбук

  • Delete — удалить ноутбук (опубликованные ноутбуки помечаются для удаления, неопубликованные удаляются сразу)

  • Restore — восстановить помеченный для удаления ноутбук

Разрешение конфликтов слияния

Если при публикации (git push) или обновлении (git merge) обнаруживается конфликт версий, открывается диалог разрешения конфликтов.

Для каждой ячейки с конфликтом нужно выбрать: оставить свою версию, принять чужую или объединить обе.

git diff RU
Полная история коммитов по всем ячейкам c возможностью отката к предыдущим коммитам доступна во вкладке History.

Администрирование рабочих пространств и репозиториев

Во вкладке Settings > Workspaces можно управлять рабочими пространствами и репозиториями.

workspace settings RU

Управление рабочими пространствами

  • Сделать текущим рабочим пространством — после этого страница перезагрузится и рабочее пространство переключится

  • Добавить репозиторий в это рабочее пространство

  • Переименовать рабочее пространство

  • Удалить рабочее пространство — доступно для всех рабочих пространств, кроме текущего

Управление репозиториями

  • Синхронизировать — подтянуть изменения из Git в дефолтную ветку репозитория

  • Переименовать

  • Удалить

После выполнения синхронизации показывается статистика: сколько ноутбуков добавлено, обновлено, удалено, сохранено с черновиками.

Добавление нового репозитория

При нажатии на Add repository открывается меню добавления репозитория, в котором задаются параметры:

  • Repository Name — отображаемое имя репозитория

  • Repository Mode — режим подключения репозитория

    • Local — создать локально в директории рабочего пространства

    • Remote — подключить внешний репозиторий

  • Remote URL — URL для режима Remote (HTTPS или SSH)

  • Default Branch — дефолтная ветка (по умолчанию main)

  • Authentication Type — тип аутентификации (HTTPS Token или SSH Private Key)

  • Access Token — токен доступа (если выбран HTTPS Token)

  • SSH Private Key — приватный SSH-ключ в формате PEM (если выбран SSH Private Key)

В режиме Local путь генерируется автоматически: {workspace_dir}/{slug}.git. Предварительный путь показывается в форме при вводе имени.