From 5533614b42c04c1f4eaa50efcfeb97f5d8d6ae9f Mon Sep 17 00:00:00 2001 From: Ladislau Szomoru <3372902+lszomoru@users.noreply.github.com> Date: Mon, 5 Jan 2026 10:07:31 +0000 Subject: [PATCH] Git - repository picker should not contain hidden source control providers (#285893) --- extensions/git/src/model.ts | 3 ++- extensions/git/src/repository.ts | 7 +++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/extensions/git/src/model.ts b/extensions/git/src/model.ts index 6600e22c121..b40de9b49d6 100644 --- a/extensions/git/src/model.ts +++ b/extensions/git/src/model.ts @@ -877,7 +877,8 @@ export class Model implements IRepositoryResolver, IBranchProtectionProviderRegi } const repositories = this.openRepositories - .filter(r => !repositoryFilter || repositoryFilter.includes(r.repository.kind)); + .filter(r => !r.repository.isHidden && + (!repositoryFilter || repositoryFilter.includes(r.repository.kind))); if (repositories.length === 0) { throw new Error(l10n.t('There are no available repositories matching the filter')); diff --git a/extensions/git/src/repository.ts b/extensions/git/src/repository.ts index 0e733707674..50ff7ac8ba2 100644 --- a/extensions/git/src/repository.ts +++ b/extensions/git/src/repository.ts @@ -879,6 +879,9 @@ export class Repository implements Disposable { private _historyProvider: GitHistoryProvider; get historyProvider(): GitHistoryProvider { return this._historyProvider; } + private _isHidden: boolean; + get isHidden(): boolean { return this._isHidden; } + private isRepositoryHuge: false | { limit: number } = false; private didWarnAboutLimit = false; @@ -956,11 +959,11 @@ export class Repository implements Disposable { // This is a temporary solution to hide worktrees created by Copilot // when the main repository is opened. Users can still manually open // the worktree from the Repositories view. - const hidden = repository.kind === 'worktree' && + this._isHidden = repository.kind === 'worktree' && isCopilotWorktree(repository.root) && parent !== undefined; const root = Uri.file(repository.root); - this._sourceControl = scm.createSourceControl('git', 'Git', root, icon, hidden, parent); + this._sourceControl = scm.createSourceControl('git', 'Git', root, icon, this._isHidden, parent); this._sourceControl.contextValue = repository.kind; this._sourceControl.quickDiffProvider = this;