Résoudre les problèmes liés à la modernisation avec GitHub Copilot pour C++

Cet article vous aide à résoudre les problèmes courants lorsque vous utilisez GitHub Copilot modernisation pour mettre à niveau vos projets C++. Si vous rencontrez un problème qui n'est pas abordé ici, utilisez Help>Send Feedback>Report a problem dans Visual Studio.

Avant de commencer

Vérifier que votre solution ou votre projet génère

Pour les scénarios de mise à niveau MSVC, l’agent valide les modifications en créant votre solution ou votre projet. Si votre solution ou votre projet est déjà rompu avant de commencer, l’agent aura plus de difficulté à distinguer les problèmes préexistants des problèmes introduits par la mise à niveau.

Si vous avez des problèmes de build connus, documentez-les dans les instructions personnalisées, mentionnez-les dans votre réponse lorsque l’agent vous demande du contexte pendant la phase d’évaluation, ou ajoutez-les à scenario-instructions.md afin que l’agent sache les ignorer.

Commettre ou mettre de côté le travail non commité

Commencez par un répertoire de travail propre. L’agent effectue des validations au fur et à mesure qu’il fonctionne, et le mélange de modifications non validées avec les modifications de l’agent complique la révision ou la restauration des modifications.

git stash
git status

Sauvegarder des dépôts non Git

L’agent peut également utiliser des dossiers qui ne sont pas sous contrôle de code source. Si votre projet ne se trouve pas dans un référentiel Git, l’agent ignore les opérations de branchement et de validation. Sauvegardez votre dossier de projet avant de commencer afin de pouvoir le restaurer si nécessaire.

Tip

Envisagez d’initialiser un référentiel Git local avant de commencer, même si vous n’effectuez pas d’envoi (push) à distance. Cela vous permet de restaurer les modifications individuelles et de suivre la progression étape par étape.

Exemple :

git init
git add
git commit -m "Initial Commit"

Lorsque vous et l’agent avez terminé, si vous ne souhaitez pas continuer à utiliser git, vérifiez simplement que le code actuellement dans votre arborescence de travail est ce que vous voulez et supprimez le .git répertoire dans le répertoire où vous avez exécuté git init.

Problèmes courants

L'agent n'apparaît pas dans Copilot Chat

Symptomes : la saisie de @Modernize dans la fenêtre de conversation GitHub Copilot n'active pas l'agent, ou Modernize n'apparaît pas dans le menu contextuel Explorateur de solutions.

Solutions :

  1. Vérifiez que Visual Studio est version 18.7 ou ultérieure dans Help>About Microsoft Visual Studio.
  2. Vérifiez que GitHub Copilot est actif en recherchant l’icône Copilot dans la barre d’état.
  3. Vérifiez que la fonctionnalité est activée dans Tools>Options>GitHub>Copilot>C/C++. Sélectionnez ensuite Enable GitHub Copilot modernization for C++.
  4. Redémarrez Visual Studio après avoir modifié les paramètres.

L’agent est bloqué dans une boucle

Symptômes : l’agent tente à plusieurs reprises le même correctif sans faire de progrès.

Solutions :

  • Arrêtez l'agent avec le bouton Annuler dans la fenêtre d'invite de Copilot Chat, décrivez ce que vous observez dans l'invite et envoyez l'invite pour reprendre l'agent.
  • Fournissez un correctif manuel et indiquez à l’agent ce que vous avez modifié. L’agent apprend à partir de votre correction.
  • Demandez à l’agent d’essayer une approche différente. Par exemple, tapez la fenêtre de conversation GitHub Copilot : « Ce correctif ne fonctionne pas. Essayez une autre stratégie.
  • Si nécessaire, rétablissez ou annulez les dernières modifications et redémarrez la tâche.

Les grandes solutions prennent trop de temps

Symptômes : la mise à niveau d’une grande solution avec de nombreux projets prend beaucoup de temps ou semble se bloquer.

Solutions :

  • Commencez par un projet représentatif en tant que pilote. Cela pose des problèmes systémiques dès le début.
  • Surveillez la progression en examinant tasks.md dans .github/upgrades/{SCENARIO ID}.
  • Si une session expire, démarrez une nouvelle session. L’agent récupère là où il s’est arrêté.

Stratégies de récupération

Annuler toutes les modifications

Si vous avez utilisé une branche Git pour la mise à niveau, annulez tout ce qui suit :

git checkout your-original-branch
git branch -D upgrade-branch

Votre code d’origine n’est pas touché.

Annuler la dernière modification

Annulez le commit le plus récent :

git revert HEAD

Ou indiquez à l’agent, Revert the last change.

Redémarrer à partir d’une phase spécifique

Si le plan de l’agent ne fonctionne pas, redémarrez à partir d’une étape antérieure en envoyant une invite similaire à :

  • Let's redo the plan. I want a different approach to the conformance issues.
  • Go back to the assessment and reconsider the upgrade strategy.

Démarrer à nouveau

Supprimez le .github/upgrades/{SCENARIO ID} dossier et démarrez une nouvelle conversation avec l’agent. Ça commence à partir de zéro.

Obtenir de l’aide

Si vous ne pouvez pas résoudre un problème :

  1. Utilisez Help>Send Feedback> Signaler un problème dans Visual Studio.
  2. Incluez le contenu de execution-log.md depuis .github/upgrades/{SCENARIO ID}, si possible.