Resolução de problemas da modernização do GitHub Copilot para C++

Este artigo ajuda-o a resolver problemas comuns quando utiliza a modernização do GitHub Copilot para atualizar os seus projetos em C++. Se encontrar um problema que não esteja aqui abordado, use Help>Enviar Feedback>Reporte um problema em Visual Studio.

Antes de começar

Verifique se a sua solução ou projeto se desenvolve

Para cenários de atualização MSVC, o agente valida as alterações construindo a sua solução ou projeto. Se a sua solução ou projeto já estiver quebrado antes de começar, o agente terá mais dificuldade em distinguir problemas pré-existentes dos problemas introduzidos pela atualização.

Se tiveres problemas conhecidos de construção, documenta-os em instruções personalizadas, fornece-as na resposta quando o agente pedir contexto durante a fase de avaliação, ou adiciona-as scenario-instructions.md para que o agente saiba que deve ignorá-las.

Compromete-se ou guarde trabalho não comprometido

Comece com um diretório limpo e funcional. O agente faz commits à medida que trabalha, e misturar alterações não comprometidas com as modificações do agente torna mais difícil rever ou reverter alterações.

git stash
git status

Fazer backup de repositórios não-Git

O agente também pode trabalhar com pastas que não estão sob controlo de código-fonte. Se o teu projeto não estiver num repositório Git, o agente ignora as operações de criação de ramos e de confirmação. Faz uma cópia de segurança da pasta do teu projeto antes de começares para poderes restaurá-la se necessário.

Sugestão

Considere inicializar um repositório Git local antes de começar, mesmo que não faça push para um remoto. Isto dá-te uma forma de reverter alterações individuais e acompanhar o progresso passo a passo.

Example:

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

Quando tu e o agente terminarem, se não quiseres continuar a usar o git, certifica-te apenas de que o código atualmente na tua árvore de trabalho é o que queres e apaga o .git diretório no diretório onde executaste git init.

Problemas comuns

O agente não aparece no Copilot Chat

Sintomas: Escrever @Modernize na janela de chat do GitHub Copilot não ativa o agente, ou Modernizar não aparece no menu de contexto Explorador de Soluções.

Soluções:

  1. Verifica se Visual Studio é a versão 18.7 ou posterior em Help>Sobre Microsoft Visual Studio.
  2. Verifica se o GitHub Copilot está ativo verificando o ícone do Copilot na barra de estado.
  3. Verifique se a funcionalidade está ativada em Tools>Options>GitHub>Copilot>C/C++. Em seguida, selecione Ativar a modernização com o GitHub Copilot para C++.
  4. Reinicia o Visual Studio depois de mudares as definições.

O agente fica preso num ciclo

Sintomas: O agente tenta repetidamente a mesma solução sem fazer progressos.

Soluções:

  • Pare o agente com o botão de cancelar na janela do prompt do Copilot Chat, descreva o que está a observar no prompt e envie o prompt para retomar o agente.
  • Forneça uma correção manual e informe o agente do que alterou. O agente aprende com a tua correção.
  • Pede ao agente para tentar uma abordagem diferente. Por exemplo, escreva na janela de chat do GitHub Copilot: "Essa solução não está a funcionar. Tenta uma estratégia diferente."
  • Se necessário, reverte ou desfaz as últimas alterações e reinicia a tarefa.

Soluções grandes demoram demasiado tempo

Sintomas: A atualização de uma solução grande com muitos projetos demora muito tempo ou parece estagnar.

Soluções:

  • Comece com um projeto representativo como projeto-piloto. Isto revela problemas sistémicos desde cedo.
  • Monitorize o progresso revisando tasks.md em .github/upgrades/{SCENARIO ID}.
  • Se uma sessão terminar, inicia uma nova sessão. O agente retoma de onde parou.

Estratégias de recuperação

Desfazer todas as alterações

Se usaste um branch Git para a atualização, desfaz tudo:

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

O teu código original está intacto.

Anular a última alteração

Reverter o commit mais recente:

git revert HEAD

Ou diz ao agente, Revert the last change.

Reiniciar a partir de uma fase específica

Se o plano do agente não estiver a funcionar, reinicie a partir de uma fase anterior enviando um prompt semelhante a:

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

Começa de novo

Apaga a .github/upgrades/{SCENARIO ID} pasta e inicia uma nova conversa com o agente. Começa do zero.

Obter ajuda

Se não conseguires resolver um problema:

  1. Use Help>Enviar Feedback>Reporte um problema em Visual Studio.
  2. Inclua o conteúdo de execution-log.md de .github/upgrades/{SCENARIO ID}, se possível.