diff --git a/extensions/git/src/contentProvider.ts b/extensions/git/src/contentProvider.ts index 501186c48c6e354145bc54e1945086b4566c739c..db94790c545d398c655d6b5b27dd1950cf3b392a 100644 --- a/extensions/git/src/contentProvider.ts +++ b/extensions/git/src/contentProvider.ts @@ -60,7 +60,11 @@ export class GitContentProvider { this.cache[cacheKey] = cacheValue; if (uri.scheme === 'git-original') { - uri = new Uri().with({ scheme: 'git', path: uri.query }); + try { + return await this.model.show('', uri.query); + } catch (err) { + return ''; + } } let ref = uri.query; @@ -73,8 +77,7 @@ export class GitContentProvider { } try { - const result = await this.model.show(ref, uri); - return result; + return await this.model.show(ref, uri.fsPath); } catch (err) { return ''; } diff --git a/extensions/git/src/model.ts b/extensions/git/src/model.ts index 6b26016df785f386dfea636e30572cf8fbbaaad9..21142b7bda40682d06b3e762deaea6d80c7cc9db 100644 --- a/extensions/git/src/model.ts +++ b/extensions/git/src/model.ts @@ -483,9 +483,9 @@ export class Model implements Disposable { }); } - async show(ref: string, uri: Uri): Promise { + async show(ref: string, filePath: string): Promise { return await this.run(Operation.Show, async () => { - const relativePath = path.relative(this.repository.root, uri.fsPath).replace(/\\/g, '/'); + const relativePath = path.relative(this.repository.root, filePath).replace(/\\/g, '/'); const result = await this.repository.git.exec(this.repository.root, ['show', `${ref}:${relativePath}`]); if (result.exitCode !== 0) { diff --git a/extensions/git/src/scmProvider.ts b/extensions/git/src/scmProvider.ts index 1c4be49dcf7e64675f850587d31ab244690ec67f..befd5e1a93f46b903024a6ee3f68e751dcf15ad6 100644 --- a/extensions/git/src/scmProvider.ts +++ b/extensions/git/src/scmProvider.ts @@ -101,7 +101,11 @@ export class GitSCMProvider { // 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' }); + return new Uri().with({ + scheme: 'git-original', + query: uri.fsPath, + path: uri.path + '.git' + }); } private onDidModelChange(): void {