lingo push отправляет запуск в движок и ждёт завершения. Но сам запуск живёт на сервере, а не в вашем терминале — поэтому вы можете закрыть терминал, перейти на другую машину или передать задачу CI и всё равно получить результаты. На этой странице разберём, как это устроено и как восстановиться после сбоя запуска.
Состояние запуска#
Каждый push сохраняет отправленный запуск в отдельный файл состояния для этой машины:
~/.lingo/runs/<hash>.json<hash> формируется на основе абсолютного пути к проекту, поэтому у каждой рабочей копии своя запись. В файле хранятся ID запуска, движок и организация — этого достаточно, чтобы позже lingo pull смог найти результаты.
Это состояние машины, а не проекта — оно хранится в домашнем каталоге, не попадает в репозиторий и не коммитится.
Pull на другой машине#
Поскольку запуск хранится на сервере, вы можете сделать push в одном месте, а pull — в другом:
# laptop
lingo push
# CI, or a second machine with the same checkout + credentials
lingo pullpull получает результаты последнего запуска для этого проекта. Он также проверяет lockfile на локальные изменения и не перезаписывает их, если только вы не передадите --force. Подробнее см. в lingo pull.
Перенос проекта
Имя файла состояния запуска привязано к абсолютному пути к проекту. Если переместить каталог между push и pull, поиск не сработает — но ID запуска по-прежнему будет в ~/.lingo/runs/, если понадобится восстановить его вручную.
Восстановление неудачного запуска#
Если запуск завершился ошибкой на полпути — например, из-за тайм-аута или временной ошибки движка, — используйте:
lingo resumeresume заново выдаёт результаты из кэша движка вместо повторного перевода, поэтому восстановленный запуск не расходует кредиты повторно. Команда покажет, что удалось восстановить, а что не получилось сопоставить.
Если resume сообщает о целях, которые не удалось восстановить, заполните их обычным backfill:
lingo push --backfill-missingЧто использовать и когда#
| Ситуация | Команда |
|---|---|
| Получить результаты после закрытия терминала | lingo pull |
| Сделать push на ноутбуке, затем pull в CI | lingo push затем lingo pull |
| Запуск прервался на полпути | lingo resume |
| После возобновления остались пропуски | lingo push --backfill-missing |
