|
Documentation
Réserver une démoPlateforme
PlateformeMCPCLI
APIWorkflows
GuidesChangelog

Vue d'ensemble

  • @lingo.dev/cli

Premiers pas

  • Démarrage rapide
  • Configuration
  • Exemples

Référence

  • lingo push
  • lingo pull
  • lingo purge
  • Autres commandes

Configuration

  • Contrôle des clés
  • Formats
  • Langues

Guides

  • Ajouter une langue
  • Traductions existantes
  • Retraduction
  • Notes de traduction
  • Exécutions, état et reprise
  • CI/CD
  • Monorepos
  • Grands projets

Vous cherchez l’ancien CLI (v0) ? Voir la documentation du CLI historique

lingo pull

Récupère les sorties du push le plus récent et les écrit sur le disque, avec détection des conflits par rapport au fichier de verrouillage.

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

Quand l’utiliser#

lingo push écrit déjà les sorties à la fin de l’exécution — pull n’est donc utile que si vous n’avez pas attendu la fin de manière synchrone, ou n’avez pas pu le faire :

  • Terminal fermé en pleine traduction. Rouvrez-le, lancez lingo pull — il reprend là où l’exécution s’est arrêtée.
  • Récupération depuis une autre machine. Le traducteur lance push sur son ordinateur portable ; la CI ou un coéquipier lance pull sur le même checkout, avec le même moteur et les mêmes identifiants, et récupère les sorties.
  • Reprise du travail une fois l’exécution terminée, mais avant que push ait pu écrire. Coupure réseau, processus interrompu — pull termine le travail.

Comment il retrouve l’exécution#

pull lit ~/.lingo/runs/<hash>.json, où <hash> est dérivé du chemin racine absolu du projet. Ce fichier enregistre le dernier runId de push. Sans lui, pull renvoie une erreur :

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

Ce fichier est propre à chaque machine et se trouve en dehors du dépôt (voir Configuration pour comprendre pourquoi).

Détection des conflits#

Avant d’écrire chaque cible, pull compare :

  • Le hash du fichier local sur le disque
  • Le hash enregistré dans .lingo/lock.json comme dernière version connue côté serveur

S’ils correspondent → aucune modification locale, l’écrasement est sûr. S’ils diffèrent → des modifications locales existent ; un pull les écraserait. pull s’interrompt :

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

Le fichier de verrouillage fait foi ici — il suit ce que le serveur a écrit en dernier, pas le contenu source. Les modifications manuelles des fichiers traduits que vous souhaitez conserver doivent être commitéees (pour qu’elles survivent à pull) ou récupérées avec --force (pour qu’elles soient écrasées).

Options#

--force / -f#

Écrase les fichiers cibles locaux qui ont divergé du fichier de verrouillage. À utiliser après avoir passé en revue les conflits et décidé que la version du serveur fait autorité (par exemple, si quelqu’un d’autre a poussé une mise à jour du glossaire qui doit primer).

Workflow recommandé :

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#

Affiche ce que pull ferait sans toucher au système de fichiers :

bash
lingo pull --dry-run

Affiche le nombre de fichiers qui seraient écrits et combien sont déjà synchronisés. Utile en CI pour vérifier que rien n’a dérivé.

Sortie#

Succès :

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

Simulation :

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

Exécution pas encore terminée :

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

(pull ne bloque pas sur les exécutions en cours — relancez plus tard, ou utilisez push la prochaine fois, qui, lui, attend.)

Cas limites#

  • Aucun push précédent. Même erreur que ci-dessus. Il n’existe pas de notion de « récupérer des traductions qui existent quelque part sur le serveur » — pull cible toujours une exécution précise.
  • État d’exécution pointant vers une exécution supprimée ou expirée. Le moteur renvoie 404 ; pull le signale clairement. Supprimez ~/.lingo/runs/<hash>.json et relancez push.
  • Moteur différent dans .lingo/config.json de celui sur lequel l’exécution a été créée. Incompatibilité d’ID du moteur — la CLI renvoie une erreur avec les ID. Relancez push avec le moteur actuel.

Cette page vous a-t-elle été utile ?

Max PrilutskiyMax Prilutskiy·Mis à jour il y a 19 jours·3 min de lecture