本文將協助你解決使用 GitHub Copilot 現代化升級 C++ 專案時的常見問題。 如果你遇到這裡沒提到的問題,請在Visual Studio中使用 Help>Send Feedback>Report a problem。
開始之前
確認你的解決方案或專案是否可成功建置
對於 MSVC 升級情境,代理程式會透過建置您的解決方案或專案來驗證變更。 如果你的解決方案或專案在開始前就已經壞掉,客服人員將更難區分既有問題與升級帶來的問題。
如果你有已知的建置問題,請用 自訂說明來記錄,當代理在評估階段要求上下文時,在回應中提供,或是加進 scenario-instructions.md 去讓代理知道可以忽略它們。
提交或儲存未提交的工作
從一個乾淨的工作目錄開始。 代理程式在運作時會進行提交,而把未提交的變更與代理程式所做的修改混在一起,會使審查或還原變更加困難。
git stash
git status
備份非 Git 倉庫
代理程式也能處理非原始碼控制的資料夾。 如果你的專案不在 Git 倉庫裡,代理程式會跳過分支和提交操作。 開始前先備份專案資料夾,這樣需要時可以還原。
Tip
即使你沒有推送到遠端,也可以考慮在開始前先初始化一個本地的 Git 倉庫。 這可讓你回復個別變更,並逐步追蹤進度。
範例:
git init
git add
git commit -m "Initial Commit"
當你和代理程式都完成後,如果你不想繼續使用 git,只要確認你工作樹中目前的程式碼就是你想要的,然後刪除你執行 git init 的目錄中的 .git 目錄。
常見問題
Agent 不會出現在 Copilot Chat 裡
Symptoms:在GitHub Copilot聊天視窗輸入@Modernize不會啟動代理,或Modernize不會出現在方案總管的右鍵選單中。
解決方案:
- 請在 Help>關於 Microsoft Visual Studio 中確認 Visual Studio 版本為 18.7 或更新版本。
- 請檢查狀態列中的 Copilot 圖示,確認 GitHub Copilot 是否已啟用。
- 請確認該功能已在 Tools>Options>GitHub>Copilot>C/C++ 中啟用。 接著選取 啟用 GitHub Copilot 的 C++ 現代化功能。
- 更改設定後請重新啟動 Visual Studio。
特工陷入了循環
症狀:客服反覆嘗試同樣的修復方法,卻沒有進展。
解決方案:
- 在 Copilot Chat 提示視窗中按一下取消按鈕以停止代理程式,在提示中描述你觀察到的情況,然後送出提示以讓代理程式繼續執行。
- 提供手動修正,並告訴客服你改了什麼。 代理人會從你的糾正中學習。
- 請代理人嘗試不同的方法。 例如,在GitHub Copilot聊天視窗輸入:」這個修正不行。試試不同的策略。」
- 如有需要,請還原或復原上一個變更,然後重新開始任務。
大型解法耗時太久
症狀:大型解決方案升級時需要非常長的時間,或似乎停滯不前。
解決方案:
- 先從一個具代表性的試點專案開始。 這會早期揭露系統性問題。
- 透過在
.github/upgrades/{SCENARIO ID}中檢視tasks.md來監控進度。 - 如果某場次逾時,請重新開始一個新場次。 代理人從中斷的地方繼續。
復甦策略
撤銷所有變更
如果你使用 Git 分支進行升級,請將所有變更還原:
git checkout your-original-branch
git branch -D upgrade-branch
你的原始程式碼是未被修改的。
復原上一個變更
還原最近的提交:
git revert HEAD
或者告訴經紀人, Revert the last change.
從特定階段重新開始
如果客服的計畫無法運作,請從較早的階段重新開始,發送類似的提示:
Let's redo the plan. I want a different approach to the conformance issues.Go back to the assessment and reconsider the upgrade strategy.
重新開始
刪除資料夾 .github/upgrades/{SCENARIO ID} ,然後開始和客服人員的新對話。 它從零開始。
尋求幫助
如果你無法解決問題:
- 在Visual Studio中使用 Help>Send Feedback>Report a problem。
- 如果可以,請包含來自
.github/upgrades/{SCENARIO ID}的execution-log.md內容。