From b8747ec0afe5ef864625fb9293fad53a78ebc30e Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Mon, 10 Apr 2017 09:40:13 +0200 Subject: [PATCH] :bug: use fsPath when getting paths out of URIs fixes #23297 --- extensions/git/src/contentProvider.ts | 9 ++++++--- extensions/git/src/model.ts | 4 ++-- extensions/git/src/scmProvider.ts | 6 +++++- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/extensions/git/src/contentProvider.ts b/extensions/git/src/contentProvider.ts index 501186c48c6..db94790c545 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 6b26016df78..21142b7bda4 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 1c4be49dcf7..befd5e1a93f 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 {