|
Dokumentace
Rezervovat demoPlatforma
PlatformaMCPCLI
APIWorkflows
NávodyChangelog

Přehled

  • @lingo.dev/cli

Začínáme

  • Rychlý start
  • Konfigurace

Reference

  • lingo push
  • lingo pull
  • Další příkazy
  • lingo purge

Konfigurace

  • Ovládání klíčů
  • Formáty
  • Jazyky

Návody

  • Přidání jazyka
  • Stávající překlady
  • Překlad znovu
  • Běhy, stav a obnova
  • CI/CD
  • Monorepa
  • Velké projekty

Průvodci

  • Poznámky pro překladatele

Hledáte starší CLI (v0)? Zobrazit dokumentaci k legacy CLI

lingo pull

Stáhne výstupy z posledního pushnutí a zapíše je na disk s detekcí konfliktů vůči lockfile.

text
lingo pull [--force] [--dry-run]

Kdy ho použít#

lingo push už po dokončení běhu výstupy zapisuje — takže pull se hodí jen tehdy, když jste nečekali synchronně (nebo jste čekat nemohli):

  • Zavřeli jste terminál uprostřed překladu. Znovu ho otevřete a spusťte lingo pull — naváže tam, kde běh skončil.
  • Stahujete z jiného počítače. Překladatel spustí push na svém notebooku; CI / kolega spustí pull nad stejným checkoutem, se stejným enginem a stejnými přihlašovacími údaji a získá výstupy.
  • Vrátili jste se k práci poté, co běh skončil, ale ještě předtím, než push stihlo zapsat výstupy. Výpadek sítě, ukončený proces — pull to dokončí.

Jak najde běh#

pull čte ~/.lingo/runs/<hash>.json, kde <hash> je odvozené z absolutní cesty ke kořenovému adresáři projektu. Soubor zaznamenává poslední runId z push. Bez něj pull skončí chybou:

text
Error: No run state at ~/.lingo/runs/<hash>.json — run `lingo push` first so we
       know which run's outputs to pull.

Tento soubor je vázaný na konkrétní počítač a nachází se mimo repozitář (proč tomu tak je, najdete v Configuration).

Detekce konfliktů#

Před zápisem každého cíle pull porovnává:

  • Hash lokálního souboru na disku
  • Hash zaznamenaný v .lingo/lock.json jako poslední známá verze na serveru

Pokud se shodují → žádné lokální úpravy, přepsání je bezpečné. Pokud se liší → existují lokální úpravy; pull by je zahodil. pull se ukončí:

text
Error: 3 conflict(s) — rerun with --force

Lockfile je tu jediný zdroj pravdy — sleduje, co server zapsal naposledy, ne zdrojový obsah. Ruční úpravy přeložených souborů, které chcete zachovat, by měly být commitnuté (aby přežily pull) nebo stažené pomocí --force (aby se přepsaly).

Příznaky#

--force / -f#

Přepíše lokální cílové soubory, které se rozešly s lockfile. Použijte až poté, co zkontrolujete konflikty a rozhodnete, že verze na serveru je směrodatná (např. když někdo jiný pushnul aktualizaci glosáře, která má mít přednost).

Doporučený workflow:

bash
git status                          # stash or commit local edits first
git stash                           # if you want to keep them aside
lingo pull --force
git stash pop                       # re-apply your edits, resolve conflicts manually

--dry-run#

Ukáže, co by pull udělalo, aniž by sáhlo na souborový systém:

bash
lingo pull --dry-run

Vypíše počet souborů, které by se zapsaly, a kolik jich už je synchronizovaných. Hodí se v CI pro ověření, že se nic nerozešlo.

Výstup#

Úspěch:

text
✓ Pulled run run_a8c...: wrote 12 file(s), 4 already in sync.

Dry run:

text
Dry run complete. 16 file(s) already in sync.

Běh ještě není dokončen:

text
Run run_a8c... is running, not pulling yet.

(pull nečeká na právě běžící běhy — spusťte ho znovu později, nebo příště použijte push, které čeká.)

Okrajové případy#

  • Žádný předchozí push. Chyba jako výše. Neexistuje tu koncept „stáhnout překlady, které někde na serveru existují“ — pull vždy cílí na konkrétní běh.
  • Stav běhu ukazuje na smazaný / expirovaný běh. engine vrátí 404; pull to srozumitelně nahlásí. Smažte ~/.lingo/runs/<hash>.json a znovu spusťte push.
  • V .lingo/config.json je jiný engine než ten, na kterém byl běh vytvořen. ID enginu nesouhlasí — CLI skončí chybou a vypíše obě ID. Znovu spusťte push proti aktuálnímu enginu.

Byla tato stránka užitečná?

Max PrilutskiyMax Prilutskiy·Aktualizováno před 5 dny·2 min čtení