Mise à jour manuelle

Lorsque vous mettez à jour des éléments d'un espace de travail ou que vous annulez une livraison, il est toujours possible qu'un ou plusieurs éléments échouent. La mise à jour de l’espace de travail échoue si la mise à jour entrante de la branche Git provoque dans l’espace de travail des incohérences ou d’autres problèmes difficiles à déterminer à l’avance. Lorsqu’un élément ne parvient pas à se mettre à jour, le processus de mise à jour s’arrête. Si l'élément qui a échoué est le premier (ou le seul) élément qui a été mis à jour, l'espace de travail reste synchronisé avec la branche d'origine. Si un élément échoue alors qu'un ou plusieurs éléments ont réussi à se mettre à jour, cela signifie que certains éléments sont synchronisés et d'autres non. Dans ce cas, votre espace de travail n’est synchronisé avec aucune branche Git.

Une mise à jour peut échouer pour de nombreuses raisons. Les raisons possibles incluent, mais sans s’y limiter, les problèmes suivants :

  • Les éléments dépendants ont été modifiés ou supprimés
  • Des dépendances circulaires ont été créées
  • Élément renommé
  • Données d’élément non valides

Remarque

Ce n’est pas la même chose que la résolution de conflits. Si des modifications ont été apportées au même élément dans l’espace de travail et la branche Git, cela provoque un conflit et les mises à jour sont désactivées. Cet article explique ce qu’un espace de travail ne parvient pas à mettre à jour même s’il n’existe aucun conflit direct.

Un message d’erreur vous indique quel élément a échoué et pourquoi.

Capture d'écran montrant le message d'erreur lorsque la mise à jour échoue.

Ce message d’erreur s’affiche lorsque la mise à jour échoue. Tout utilisateur essayant d’accéder à l’espace de travail après qui voit l’erreur suivante jusqu’à ce que la mise à jour soit terminée avec succès.

Capture d'écran montrant le message d'erreur lorsqu'une personne tente de se connecter à un espace de travail après l'échec d'une mise à jour.

Sélectionnez Afficher les détails pour afficher le message d’erreur précédent.

États Git après l’échec d’un élément

Votre espace de travail contient désormais les éléments suivants :

  • Élément ou éléments mis à jour avant l’échec. Ces éléments sont identiques aux éléments dans git, mais les métadonnées ne sont pas mises à jour. Leur état Git est synchronisé, mais avec un signe d’avertissement en forme de triangle.
  • Élément qui a échoué. L’état Git de cet élément est Mise à jour obligatoire.
  • Peut-être des éléments qui n’ont pas encore été mis à jour lorsque l’élément a échoué. Ces éléments n’ont pas encore été mis à jour et leur état Git est Mise à jour obligatoire.

La barre d’état en bas de l’écran qui affiche le dernier état de synchronisation est rouge et indique l’état partiellement synchronisé.

Capture d'écran montrant la ligne d'état en bas de l'écran lorsqu'une mise à jour échoue.

Mettre à jour l’élément ayant échoué

Pour mettre à jour manuellement l’espace de travail après l’échec de la mise à jour automatique :

  1. Déterminez l’élément à l’origine de l’échec de la mise à jour et le problème à l’aide de la boîte de dialogue d’erreur indiquant l’élément ayant échoué et le message d’erreur.
  2. Correction du problème dans Git. Cela peut signifier effectuer l’une ou plusieurs des opérations suivantes en fonction du problème :
    • Rétablir l’élément à une version antérieure qui n’échoue pas
    • Modifier l’élément résoudre le problème
    • Restaurer un élément dépendant qui a été supprimé
    • Supprimer un élément non pris en charge qui dépend de l’élément supprimé
  3. Retour à l’espace de travail et à nouveau mettre à jour l’ensemble de l’espace de travail.

Considérations et limitations

Le processus de mise à jour échoue dès qu’un élément échoue. Par conséquent, il n’existe aucun moyen de savoir si d’autres éléments de la branche Git sont également problématiques. Si vous mettez à jour de nombreux éléments et que plusieurs éléments sont problématiques, vous devez répéter ce processus une fois pour chaque élément ayant échoué.

Résolution de conflits