Risolvere i problemi di modernizzazione con GitHub Copilot per C++

Questo articolo illustra come risolvere i problemi comuni quando si usa GitHub Copilot modernizzazione per aggiornare i progetti C++. Se si verifica un problema non trattato qui, usare Help>Send Feedback>Report a problem in Visual Studio.

Prima di iniziare

Verificare che la soluzione o il progetto vengano compilati

Per gli scenari di aggiornamento MSVC, l'agente convalida le modifiche compilando la soluzione o il progetto. Se la soluzione o il progetto è già interrotto prima dell'avvio, l'agente avrà maggiori difficoltà a distinguere i problemi preesistenti dai problemi introdotti dall'aggiornamento.

Se sono stati riscontrati problemi di compilazione, documentarli in istruzioni personalizzate, specificarli nella risposta quando l'agente richiede il contesto durante la fase di valutazione o aggiungerli a scenario-instructions.md in modo che l'agente sappia ignorarli.

Eseguire il commit o salvare temporaneamente il lavoro non ancora confermato

Iniziare con una directory di lavoro pulita. L'agente effettua commit mentre lavora, e mescolare modifiche non sottoposte a commit con quelle dell'agente rende più difficile rivedere o annullare le modifiche.

git stash
git status

Eseguire il backup di repository non-Git

L'agente può anche funzionare con cartelle che non sono sotto il controllo del codice sorgente. Se il progetto non si trova in un repository Git, l'agente ignora le operazioni di diramazione e commit. Eseguire il backup della cartella del progetto prima di iniziare in modo da poterla ripristinare, se necessario.

Tip

Prendere in considerazione l'inizializzazione di un repository Git locale prima di iniziare, anche se non si esegue il push in un repository remoto. In questo modo è possibile eseguire il rollback delle singole modifiche e tenere traccia dello stato di avanzamento passo passo.

Esempio:

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

Una volta che tu e l'agente avete finito, se non vuoi continuare a usare git, assicurati che il codice attualmente presente nel tuo albero di lavoro sia quello desiderato ed elimina la cartella .git nella cartella in cui hai eseguito git init.

Problemi comuni

L'agente non viene visualizzato in Copilot Chat

Symptoms: digitando @Modernize nella finestra di chat GitHub Copilot non attiva l'agente o Modernize non viene visualizzato nel menu di scelta rapida Esplora soluzioni.

Soluzioni:

  1. Verificare che Visual Studio sia versione 18.7 o successiva in Help>Informazioni Microsoft Visual Studio.
  2. Verificare che GitHub Copilot sia attivo controllando l'icona Copilot nella barra di stato.
  3. Verificare che la funzionalità sia abilitata in Tools>Options>GitHub>Copilot>C/C++. Quindi selezionare Abilita la modernizzazione GitHub Copilot per C++.
  4. Riavviare Visual Studio dopo aver modificato le impostazioni.

L'agente si blocca in un ciclo

Sintomi: l'agente tenta ripetutamente la stessa correzione senza fare progressi.

Soluzioni:

  • Interrompi l'agente con il pulsante Annulla nella finestra del prompt di Copilot Chat, descrivi ciò che stai osservando nel prompt e invia il prompt per far riprendere l'agente.
  • Fornire una correzione manuale e indicare all'agente cosa è stato modificato. L'agente apprende dalla tua correzione.
  • Chiedere all'agente di provare un approccio diverso. Ad esempio, digitare nella finestra di chat GitHub Copilot: "Questa correzione non funziona. Provare una strategia diversa."
  • Se necessario, ripristinare o annullare le ultime modifiche e riavviare l'attività.

Le soluzioni di grandi dimensioni richiedono troppo tempo

Sintomi: l'aggiornamento di una soluzione di grandi dimensioni con molti progetti richiede molto tempo o sembra bloccarsi.

Soluzioni:

  • Iniziare con un progetto rappresentativo come progetto pilota. In questo modo si verificano problemi sistemici in anticipo.
  • Monitorare l'avanzamento esaminando tasks.md in .github/upgrades/{SCENARIO ID}.
  • Se la sessione scade, avvia una nuova sessione. L'agente riprende da dove si era interrotto.

Strategie di ripristino

Annulla tutte le modifiche

Se è stato usato un ramo Git per l'aggiornamento, annullare tutto:

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

Il codice originale non è stato modificato.

Annullare l'ultima modifica

Annullare il commit più recente:

git revert HEAD

O dire all'agente, Revert the last change.

Riavviare da una fase specifica

Se il piano dell'agente non funziona, riavviare da una fase precedente inviando una richiesta simile 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.

Inizia da nuovo

Eliminare la .github/upgrades/{SCENARIO ID} cartella e avviare una nuova conversazione con l'agente. Inizia da zero.

Come ottenere assistenza

Se non è possibile risolvere un problema:

  1. Usa Guida>Invia commenti>Segnala un problema in Visual Studio.
  2. Includere il contenuto di execution-log.md da .github/upgrades/{SCENARIO ID} , se possibile.