Обновление и удаление
digit update
Тянет свежий код из main репозитория digitable-lol/digit, обновляет
зависимости и предлагает донастроить то, что появилось со времени вашей
установки.
Установка через Homebrew обновляется вместе с остальными пакетами:
brew upgrade digitable-lol/tap/digit
Digit сам определяет, каким способом он установлен — по раскладке каталогов, а
не по переменной окружения, — и печатает подходящую команду. Способ виден в
digit --version и в digit doctor.
Что происходит при обновлении
- Снимок состояния до обновления. По умолчанию — лёгкий: данные
сопряжения, задания
cron,config.yaml,.env,auth.jsonи прочие файлы, которые меняются во время работы. Файлы больше 1 ГиБ пропускаются, чтобы большая база сессий не растягивала обновление. git pullсвежего кода и обновление подмодулей.- Проверка синтаксиса и автоматический откат. После pull Digit
компилирует девять критических файлов, которые импортируются при каждом
запуске. Если хоть один не разбирается — например, в нём остался маркер
конфликта слияния, — Digit делает
git reset --hardна состояние до pull, чтобы ваша оболочка осталась работоспособной. - Установка зависимостей.
- Миграция конфигурации — Digit находит новые параметры и предлагает их заполнить.
- Перезапуск шлюзов, чтобы новый код вступил в силу сразу.
Третий шаг — самый ценный и самый незаметный. Обновление, которое ломает запуск агента, забирает вместе с агентом и способ этот сломанный запуск починить.
Полезные флаги
| Команда | Что делает |
|---|---|
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 печатает сам и называет
процессы поимённо. Подробности и флаги обхода — в английской
документации.
Снимки и откат к предыдущему состоянию разобраны там же, в разделе про контрольные точки.