|
Documentación
Reservar una demoPlataforma
PlataformaMCPCLI
APIFlujos de trabajo
GuíasRegistro de cambios

Descripción general

  • @lingo.dev/cli

Primeros pasos

  • Guía rápida
  • Configuración

Referencia

  • lingo push
  • lingo pull
  • Otros comandos
  • lingo purge

Configuración

  • Controles de claves
  • Formatos
  • Idiomas

Guías

  • Añadir un idioma
  • Traducciones existentes
  • Retraducción
  • Notas de traducción
  • Ejecuciones, estado y recuperación
  • CI/CD
  • Monorepos
  • Proyectos grandes

¿Buscas la versión anterior de la CLI (v0)? Consulta la documentación de la CLI antigua

lingo pull

Recupera los resultados del push más reciente y escríbelos en disco, con detección de conflictos frente al archivo de bloqueo.

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

Cuándo usarlo#

lingo push ya escribe los resultados cuando termina la ejecución, así que pull solo tiene sentido si no esperaste —o no pudiste esperar— de forma síncrona:

  • Has cerrado la terminal a mitad de la traducción. Vuelve a abrirla y ejecuta lingo pull: retomará el proceso donde lo dejó la ejecución.
  • Haces pull desde otra máquina. El traductor ejecuta push en su portátil; CI o un compañero ejecutan pull sobre el mismo checkout, con el mismo motor y las mismas credenciales, y obtienen los resultados.
  • Has retomado el trabajo después de que terminara la ejecución, pero antes de que push pudiera escribir. Un corte puntual de red, un proceso forzado a cerrarse... pull remata el trabajo.

Cómo encuentra la ejecución#

pull lee ~/.lingo/runs/<hash>.json, donde <hash> se deriva de la ruta absoluta de la raíz del proyecto. El archivo registra el último runId de push. Sin él, pull devuelve un error:

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

Este archivo es específico de cada máquina y está fuera del repositorio (consulta Configuration para ver por qué).

Detección de conflictos#

Antes de escribir cada destino, pull compara:

  • El hash del archivo local en disco
  • El hash registrado en .lingo/lock.json como última versión conocida del servidor

Si coinciden → no hay cambios locales y se puede sobrescribir sin problema. Si difieren → hay cambios locales; hacer pull los descartaría. pull aborta:

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

Aquí, el archivo de bloqueo es la única fuente de verdad: registra lo último que escribió el servidor, no el contenido fuente. Las ediciones manuales en archivos traducidos que quieras conservar deben confirmarse con un commit (para que sobrevivan a pull) o recuperarse con --force (para que se sobrescriban).

Flags#

--force / -f#

Sobrescribe los archivos de destino locales que hayan divergido del archivo de bloqueo. Úsalo después de revisar los conflictos y decidir que la versión del servidor es la canónica (por ejemplo, si otra persona hizo push de una actualización del glosario que debe prevalecer).

Flujo de trabajo recomendado:

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#

Muestra lo que haría pull sin tocar el sistema de archivos:

bash
lingo pull --dry-run

Muestra cuántos archivos se escribirían y cuántos ya están sincronizados. Útil en CI para comprobar que no se ha desviado nada.

Salida#

Correcto:

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

Simulación:

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

La ejecución aún no ha terminado:

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

(pull no se queda esperando a que terminen las ejecuciones en curso: vuelve a lanzarlo más tarde, o usa push la próxima vez, que sí espera).

Casos límite#

  • No hay ningún push previo. Error como el anterior. No existe el concepto de «hacer pull de traducciones que existen en algún punto del servidor»: pull siempre apunta a una ejecución concreta.
  • El estado de la ejecución apunta a una ejecución eliminada o caducada. El motor devuelve un 404; pull lo informa con claridad. Elimina ~/.lingo/runs/<hash>.json y vuelve a ejecutar push.
  • En .lingo/config.json hay un motor distinto del que se usó para crear la ejecución. El ID del motor no coincide: la CLI devuelve un error con los ID. Vuelve a ejecutar push con el motor actual.

¿Te ha resultado útil esta página?

Max PrilutskiyMax Prilutskiy·Actualizado hace 5 días·3 min de lectura