diff --git a/extensions/git/src/commands.ts b/extensions/git/src/commands.ts index bb870c86bea..8137d344f0e 100644 --- a/extensions/git/src/commands.ts +++ b/extensions/git/src/commands.ts @@ -134,14 +134,7 @@ export class CommandCenter { return resource.original.with({ scheme: 'git', query: 'HEAD' }); case Status.MODIFIED: - const uriString = resource.original.toString(); - const [indexStatus] = this.model.indexGroup.resources.filter(r => r.original.toString() === uriString); - - if (indexStatus) { - return resource.uri.with({ scheme: 'git' }); - } - - return resource.uri.with({ scheme: 'git', query: 'HEAD' }); + return resource.uri.with({ scheme: 'git', query: '~' }); } } diff --git a/extensions/git/src/contentProvider.ts b/extensions/git/src/contentProvider.ts index 2e6614936fc..f625c9c83fe 100644 --- a/extensions/git/src/contentProvider.ts +++ b/extensions/git/src/contentProvider.ts @@ -31,8 +31,17 @@ export class GitContentProvider { } async provideTextDocumentContent(uri: Uri): Promise { + let ref = uri.query; + + if (ref === '~') { + const fileUri = uri.with({ scheme: 'file', query: '' }); + const uriString = fileUri.toString(); + const [indexStatus] = this.model.indexGroup.resources.filter(r => r.original.toString() === uriString); + ref = indexStatus ? '' : 'HEAD'; + } + try { - const result = await this.model.show(uri.query, uri); + const result = await this.model.show(ref, uri); this.uris.add(uri); return result; } catch (err) {