DigitableCourses

Обновление и удаление

Обновление Digit: digit update и его шаги, предварительный снимок состояния, автоматический откат при испорченном pull, обновление против другой ветки, миграция конфигурации. И удаление: digit uninstall с сохранением или полной очисткой данных.

Обновление и удаление

digit update

Тянет свежий код из main репозитория digitable-lol/digit, обновляет зависимости и предлагает донастроить то, что появилось со времени вашей установки.

Установка через Homebrew обновляется вместе с остальными пакетами:

brew upgrade digitable-lol/tap/digit

Digit сам определяет, каким способом он установлен — по раскладке каталогов, а не по переменной окружения, — и печатает подходящую команду. Способ виден в digit --version и в digit doctor.

Что происходит при обновлении

  1. Снимок состояния до обновления. По умолчанию — лёгкий: данные сопряжения, задания cron, config.yaml, .env, auth.json и прочие файлы, которые меняются во время работы. Файлы больше 1 ГиБ пропускаются, чтобы большая база сессий не растягивала обновление.
  2. git pull свежего кода и обновление подмодулей.
  3. Проверка синтаксиса и автоматический откат. После pull Digit компилирует девять критических файлов, которые импортируются при каждом запуске. Если хоть один не разбирается — например, в нём остался маркер конфликта слияния, — Digit делает git reset --hard на состояние до pull, чтобы ваша оболочка осталась работоспособной.
  4. Установка зависимостей.
  5. Миграция конфигурации — Digit находит новые параметры и предлагает их заполнить.
  6. Перезапуск шлюзов, чтобы новый код вступил в силу сразу.

Третий шаг — самый ценный и самый незаметный. Обновление, которое ломает запуск агента, забирает вместе с агентом и способ этот сломанный запуск починить.

Полезные флаги

Команда Что делает
digit update --check только проверить, есть ли обновление; ничего не менять
digit update --branch ИМЯ обновиться против другой ветки
digit update --backup полный архив DIGIT_HOME перед обновлением
digit update --no-backup не делать никаких снимков в этот раз
digit update --yes не переспрашивать (ключи при этом не запрашиваются)

Настройка updates.pre_update_backup в config.yaml задаёт поведение по умолчанию: quick (лёгкий снимок), full (снимок плюс полный архив, на больших каталогах это минуты) или off.

Локальные правки в дереве установки

В терминале Digit прячет незакоммиченные правки в git stash, обновляется и спрашивает, восстанавливать ли их.

Когда обновление запускается без терминала — из кнопки в Desktop или из шлюза — спрашивать некого, и решает настройка updates.non_interactive_local_changes: stash (по умолчанию — сохранить и восстановить поверх обновлённого кода) или discard (выбросить). discard роняет только сам stash и не трогает игнорируемые пути вроде node_modules и venv.

Если что-то не сошлось после обновления

digit config check      # какие параметры конфигурации отсутствуют
digit config migrate    # добавить их в диалоге
digit doctor            # что именно мешает работать

Удаление

digit uninstall

По умолчанию убирает Digit, оставляя конфигурацию и данные — на случай переустановки.

Флаг Что делает
--full убрать всё, включая конфигурацию и данные
--gui убрать только приложение Desktop, оставив агента
--dry-run напечатать, что было бы удалено, ничего не меняя
--yes не переспрашивать

--dry-run стоит запускать первым: он показывает список путей до того, как их не станет.

Чего на этой странице нет

Отдельного разбора требует Windows: там обновление отказывается идти, пока запущен другой digit.exe, потому что Windows не позволяет заменить работающий исполняемый файл. Сообщение об этом Digit печатает сам и называет процессы поимённо. Подробности и флаги обхода — в английской документации.

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

Нашли неточность? Выделите фрагмент текста — рядом появится жучок.

Нужен разбор именно вашей ситуации?

Статья описывает общий случай. Если у вас частный — можно разобрать его отдельно, платно. А если не хватает целого материала, предложите тему: её оплачивают вскладчину, и она выходит открытой для всех.

Доска запросов