From a2fe848791fb61cb1fb41baa8f0bf2a7f60266d0 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Thu, 29 Sep 2022 14:50:07 +0200 Subject: [PATCH] set `git.mergeChanges` context key for all repos, not just one (#162339) fixes https://github.com/microsoft/vscode/issues/162224 --- extensions/git/src/model.ts | 17 ++++++++++++++++- extensions/git/src/repository.ts | 3 --- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/extensions/git/src/model.ts b/extensions/git/src/model.ts index c10a9d6a193..14ee4d66e74 100644 --- a/extensions/git/src/model.ts +++ b/extensions/git/src/model.ts @@ -450,7 +450,21 @@ export class Model implements IRemoteSourcePublisherRegistry, IPostCommitCommand .forEach(p => this.eventuallyScanPossibleGitRepository(p)); }; - const statusListener = repository.onDidRunGitStatus(checkForSubmodules); + const updateMergeChanges = () => { + // set mergeChanges context + const mergeChanges: Uri[] = []; + for (const { repository } of this.openRepositories.values()) { + for (const state of repository.mergeGroup.resourceStates) { + mergeChanges.push(state.resourceUri); + } + } + commands.executeCommand('setContext', 'git.mergeChanges', mergeChanges); + }; + + const statusListener = repository.onDidRunGitStatus(() => { + checkForSubmodules(); + updateMergeChanges(); + }); checkForSubmodules(); const dispose = () => { @@ -466,6 +480,7 @@ export class Model implements IRemoteSourcePublisherRegistry, IPostCommitCommand const openRepository = { repository, dispose }; this.openRepositories.push(openRepository); + updateMergeChanges(); this._onDidOpenRepository.fire(repository); } diff --git a/extensions/git/src/repository.ts b/extensions/git/src/repository.ts index d622fd23c87..83120afcdc5 100644 --- a/extensions/git/src/repository.ts +++ b/extensions/git/src/repository.ts @@ -2103,9 +2103,6 @@ export class Repository implements Disposable { // set count badge this.setCountBadge(); - // set mergeChanges context - commands.executeCommand('setContext', 'git.mergeChanges', merge.map(item => item.resourceUri)); - this._onDidChangeStatus.fire(); this._sourceControl.commitTemplate = await this.getInputTemplate();