mirror of
https://github.com/microsoft/vscode.git
synced 2026-08-15 10:15:04 +01:00
Fix repository retention leaks in git and github extensions ProgressManager subscribed to workspace.onDidChangeConfiguration and repository.onDidChangeOperations in its constructor but discarded both subscriptions, so the global configuration emitter pinned every Repository ever created. GitHubBranchProtectionProviderManager registered a branch protection provider per opened repository into a single DisposableStore that was only disposed when the feature was turned off. There was no onDidCloseRepository handling, and the providers themselves were never disposed. Track them per repository root instead and dispose on close. Also make DisposableStore dispose anything added after it has been disposed, so the async registration in GitHubBranchProtectionProvider's constructor cannot outlive the provider. Refs #327438 (Written by Copilot) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 041724a6-5bc9-4e5f-98b2-a910995f083c
Git integration for Visual Studio Code
Notice: This extension is bundled with Visual Studio Code. It can be disabled but not uninstalled.
Features
See Git support in VS Code to learn about the features of this extension.
API
The Git extension exposes an API, reachable by any other extension.
-
Copy
src/api/git.d.tsto your extension's sources; -
Include
git.d.tsin your extension's compilation. -
Get a hold of the API with the following snippet:
const gitExtension = vscode.extensions.getExtension<GitExtension>('vscode.git').exports; const git = gitExtension.getAPI(1);Note: To ensure that the
vscode.gitextension is activated before your extension, addextensionDependencies(docs) into thepackage.jsonof your extension:"extensionDependencies": [ "vscode.git" ]