diff --git a/extensions/git/src/contentProvider.ts b/extensions/git/src/contentProvider.ts index abdf28549b4..5c420f33f45 100644 --- a/extensions/git/src/contentProvider.ts +++ b/extensions/git/src/contentProvider.ts @@ -32,7 +32,8 @@ export class GitContentProvider { constructor(private model: Model) { this.disposables.push( model.onDidChangeRepository(this.eventuallyFireChangeEvents, this), - workspace.registerTextDocumentContentProvider('git', this) + workspace.registerTextDocumentContentProvider('git', this), + workspace.registerTextDocumentContentProvider('git-original', this) ); setInterval(() => this.cleanup(), FIVE_MINUTES); @@ -52,6 +53,10 @@ export class GitContentProvider { } async provideTextDocumentContent(uri: Uri): Promise { + if (uri.scheme === 'git-original') { + uri = new Uri().with({ scheme: 'git', path: uri.query }); + } + let ref = uri.query; if (ref === '~') { diff --git a/extensions/git/src/scmProvider.ts b/extensions/git/src/scmProvider.ts index 7c064993ef4..b490bd8eeee 100644 --- a/extensions/git/src/scmProvider.ts +++ b/extensions/git/src/scmProvider.ts @@ -62,7 +62,9 @@ export class GitSCMProvider implements SCMProvider { return; } - return uri.with({ scheme: 'git' }); + // As a mitigation for extensions like ESLint showing warnings and errors + // for git URIs, let's change the file extension of these uris to .git. + return new Uri().with({ scheme: 'git-original', query: uri.path, path: uri.path + '.git' }); } dispose(): void {