Solucionar problemas de modernización de GitHub Copilot para C++

Este artículo le ayuda a resolver problemas comunes al usar la modernización con GitHub Copilot para actualizar proyectos de C++. Si se produce un problema que no se trata aquí, use Help>Send Feedback>Informe de un problema en Visual Studio.

Antes de comenzar

Compruebe que su solución o proyecto se compila correctamente

Para escenarios de actualización de MSVC, el agente valida los cambios mediante la compilación de la solución o el proyecto. Si la solución o el proyecto ya están rotos antes de empezar, el agente tendrá mayor dificultad para distinguir los problemas preexistentes de los problemas introducidos por la actualización.

Si tiene problemas de compilación conocidos, documentelos en instrucciones personalizadas, proporciónelos en la respuesta cuando el agente solicite contexto durante la fase de evaluación o agréguelos a scenario-instructions.md para que el agente sepa omitirlos.

Confirmar o guardar trabajos no confirmados

Comience con un directorio de trabajo limpio. El agente realiza confirmaciones a medida que funciona y la combinación de cambios no confirmados con las modificaciones del agente dificulta la revisión o reversión de los cambios.

git stash
git status

Copia de seguridad de repositorios que no son de Git

El agente también puede trabajar con carpetas que no están bajo control de código fuente. Si el proyecto no está en un repositorio Git, el agente omite las operaciones de creación de ramas y de confirmación de cambios. Realice una copia de seguridad de la carpeta del proyecto antes de empezar para poder restaurarla si es necesario.

Tip

Considere inicializar un repositorio local de Git antes de comenzar, aunque no haga push a un repositorio remoto. Esto le ofrece una manera de revertir los cambios individuales y realizar un seguimiento del progreso paso a paso.

Ejemplo:

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

Cuando usted y el agente hayan terminado, si no desea seguir usando git, asegúrese de que el código que hay actualmente en su árbol de trabajo es el que desea y elimine el directorio .git en el directorio en el que ejecutó git init.

Problemas comunes

El agente no aparece en Copilot Chat

Symptoms: Escribiendo @Modernize en la ventana de chat de GitHub Copilot no activa el agente ni Modernize no aparece en el menú contextual Explorador de soluciones.

Soluciones:

  1. Compruebe que Visual Studio es la versión 18.7 o posterior en Help>About Microsoft Visual Studio.
  2. Compruebe que GitHub Copilot está activo comprobando el icono de Copilot en la barra de estado.
  3. Compruebe que la característica está habilitada en Tools>Options>GitHub>Copilot>C/C++. A continuación, seleccione Habilitar la modernización de GitHub Copilot para C++.
  4. Reinicie Visual Studio después de cambiar la configuración.

El agente se bloquea en un bucle

Síntomas: el agente intenta repetidamente la misma corrección sin avanzar.

Soluciones:

  • Detenga el agente con el botón Cancelar en la ventana del mensaje de Copilot Chat, describa lo que observa en el mensaje y envíe el mensaje para reanudar el agente.
  • Proporcione una corrección manual y indique al agente lo que ha cambiado. El agente aprende de tu corrección.
  • Pida al agente que pruebe un enfoque diferente. Por ejemplo, escriba en la ventana de chat de GitHub Copilot: "Esa corrección no funciona. Pruebe otra estrategia."
  • Si es necesario, revierta o deshaga los últimos cambios y reinicie la tarea.

Las soluciones grandes tardan demasiado tiempo

Síntomas: la actualización de una solución grande con muchos proyectos tarda mucho tiempo o parece detenerse.

Soluciones:

  • Comience con un proyecto representativo como piloto. Esto expone problemas sistémicos temprano.
  • Supervise el progreso revisando tasks.md en .github/upgrades/{SCENARIO ID}.
  • Si una sesión caduca, inicie una nueva sesión. El agente retoma desde donde se quedó.

Estrategias de recuperación

Deshacer todos los cambios

Si ha usado una rama de Git para la actualización, deshaga todo lo siguiente:

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

Tu código original está intacto.

Deshacer el último cambio.

Revierte el commit más reciente:

git revert HEAD

O indique al agente, Revert the last change.

Reinicio desde una fase específica

Si el plan del agente no funciona, reinicie desde una fase anterior enviando un mensaje similar al siguiente:

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

Empezar nuevo

Elimine la .github/upgrades/{SCENARIO ID} carpeta e inicie una nueva conversación con el agente. Comienza desde cero.

Obtención de ayuda

Si no puede resolver un problema:

  1. Use Help>Send Feedback>Report a problem in Visual Studio.
  2. Incluya el contenido de execution-log.md de .github/upgrades/{SCENARIO ID} si es posible.