Rozwiązywanie problemów z modernizacją GitHub Copilot dla języka C++

Ten artykuł pomaga rozwiązać typowe problemy podczas korzystania z funkcji modernizacji w GitHub Copilot w celu zaktualizowania projektów C++. Jeśli napotkasz problem, który nie jest tutaj omówiony, użyj Help>Send Feedback>Raportuj problem w Visual Studio.

Zanim zaczniesz

Sprawdź, czy kompilacja rozwiązania lub projektu przebiega pomyślnie

W przypadku scenariuszy uaktualniania MSVC agent weryfikuje zmiany, tworząc rozwiązanie lub projekt. Jeśli rozwiązanie lub projekt jest już uszkodzone przed rozpoczęciem, agent będzie miał większe trudności z odróżnieniem istniejących problemów z problemami wprowadzonymi przez uaktualnienie.

Jeśli masz znane problemy z kompilacją, udomentuj je w niestandardowych instrukcjach, podaj je w odpowiedzi, gdy agent poprosi o kontekst podczas etapu oceny, lub dodaj je, scenario-instructions.md aby agent wiedział, aby je zignorował.

Zatwierdzanie lub usuwanie niezatwierdzonych prac

Zacznij od czystego katalogu roboczego. Agent tworzy commity podczas pracy, a mieszanie niezatwierdzonych zmian ze zmianami wprowadzanymi przez agenta utrudnia ich przeglądanie lub cofanie.

git stash
git status

Tworzenie kopii zapasowych repozytoriów innych niż Git

Agent może również pracować z folderami, które nie są pod kontrolą źródła. Jeśli projekt nie znajduje się w repozytorium Git, agent pomija operacje rozgałęziania i zatwierdzania. Przed rozpoczęciem należy utworzyć kopię zapasową folderu projektu, aby można było go przywrócić w razie potrzeby.

Wskazówka

Rozważ zainicjowanie lokalnego repozytorium Git przed rozpoczęciem, nawet jeśli nie wypchniesz do zdalnego. Dzięki temu można wycofać poszczególne zmiany i śledzić postęp krok po kroku.

Example:

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

Gdy ty i agent skończycie, jeśli nie chcesz nadal używać Git, po prostu upewnij się, że kod znajdujący się obecnie w twoim drzewie roboczym jest taki, jakiego chcesz, a następnie usuń katalog .git w katalogu, w którym uruchomiono git init.

Typowe problemy

Agent nie jest wyświetlany w Copilot Chat

Symptoms: Wpisywanie @Modernize w oknie czatu GitHub Copilot nie aktywuje agenta ani Modernize nie jest wyświetlane w menu kontekstowym Eksplorator rozwiązań.

Rozwiązania:

  1. Sprawdź, czy Visual Studio jest w wersji 18.7 lub nowszej w Help>Informacje o Microsoft Visual Studio.
  2. Sprawdź, czy GitHub Copilot jest aktywna, sprawdzając ikonę Copilot na pasku stanu.
  3. Sprawdź, czy funkcja jest włączona w Tools>Options>GitHub>Copilot>C/C++. Następnie wybierz Włącz modernizację GitHub Copilot dla języka C++.
  4. Uruchom ponownie Visual Studio po zmianie ustawień.

Agent utknął w pętli

Objawy: agent wielokrotnie próbuje to samo naprawić bez podejmowania postępów.

Rozwiązania:

  • Zatrzymaj agenta za pomocą przycisku Anuluj w oknie wprowadzania polecenia w Copilot Chat, opisz w poleceniu, co obserwujesz, i wyślij je, aby agent wznowił działanie.
  • Podaj poprawkę ręczną i poinformuj agenta o tym, co zmieniono. Agent uczy się dzięki Twojej poprawce.
  • Poproś agenta o wypróbowanie innego podejścia. Na przykład wpisz w oknie czatu GitHub Copilot: "Ta poprawka nie działa. Wypróbuj inną strategię."
  • W razie potrzeby przywróć lub cofnij ostatnie zmiany i uruchom ponownie zadanie.

Rozbudowane rozwiązania trwają zbyt długo

Objawy: Uaktualnienie dużego rozwiązania z wieloma projektami trwa bardzo długo lub wydaje się być wstrzymane.

Rozwiązania:

  • Zacznij od jednego, reprezentatywnego projektu w ramach projektu pilotażowego. To ujawnia problemy systemowe na wczesnym etapie.
  • Monitoruj postęp, przeglądając element tasks.md w pliku .github/upgrades/{SCENARIO ID}.
  • Jeśli upłynął limit czasu sesji, uruchom nową sesję. Agent kontynuuje od miejsca, w którym przerwał.

Strategie odzyskiwania

Cofnij wszystkie zmiany

Jeśli do uaktualnienia użyto gałęzi Git, cofnij wszystko:

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

Oryginalny kod pozostaje nietknięty.

Cofnięcie ostatniej zmiany

Cofnij ostatni commit:

git revert HEAD

Lub poinformuj agenta, Revert the last change.

Ponowne uruchamianie z określonego etapu

Jeśli plan agenta nie działa, wróć do wcześniejszego etapu i zacznij od nowa, wysyłając polecenie podobne do poniższego:

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

Rozpocznij od nowa

.github/upgrades/{SCENARIO ID} Usuń folder i rozpocznij nową konwersację z agentem. Zaczyna się od podstaw.

Uzyskaj pomoc

Jeśli nie możesz rozwiązać problemu:

  1. Użyj Help>Send Feedback>Raportuj problem w Visual Studio.
  2. Uwzględnij zawartość elementu execution-log.md z .github/upgrades/{SCENARIO ID}, jeśli to możliwe.