diff --git a/extensions/git/package.json b/extensions/git/package.json index 55f83ea6a89..e8f969896db 100644 --- a/extensions/git/package.json +++ b/extensions/git/package.json @@ -577,7 +577,7 @@ }, { "command": "git.openChange", - "when": "config.git.enabled && !git.missing && gitOpenRepositoryCount != 0" + "when": "config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourcePath in git.changedResources" }, { "command": "git.stage", @@ -1324,7 +1324,7 @@ { "command": "git.openChange", "group": "navigation", - "when": "config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && !isInDiffEditor && resourceScheme == file" + "when": "config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && !isInDiffEditor && resourceScheme == file && resourcePath in git.changedResources" }, { "command": "git.stageSelectedRanges", diff --git a/extensions/git/src/repository.ts b/extensions/git/src/repository.ts index 37c0eb94db4..0f4220e3649 100644 --- a/extensions/git/src/repository.ts +++ b/extensions/git/src/repository.ts @@ -1847,6 +1847,7 @@ export class Repository implements Disposable { this._submodules = submodules!; this.rebaseCommit = rebaseCommit; + const untrackedChanges = scopedConfig.get<'mixed' | 'separate' | 'hidden'>('untrackedChanges'); const index: Resource[] = []; const workingTree: Resource[] = []; @@ -1905,6 +1906,9 @@ export class Repository implements Disposable { // set count badge this.setCountBadge(); + // Update context key with changed resources + commands.executeCommand('setContext', 'git.changedResources', workingTree.map(r => r.resourceUri.fsPath.toString())); + this._onDidChangeStatus.fire(); this._sourceControl.commitTemplate = await this.getInputTemplate();