Skip to content

Commit 8870a3c

Browse files
committed
Fix path resolving
1 parent 690e871 commit 8870a3c

File tree

3 files changed

+22
-9
lines changed

3 files changed

+22
-9
lines changed

src/common/uri.ts

+12
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,18 @@ export function toPRUri(
172172
});
173173
}
174174

175+
export enum Schemas {
176+
file = 'file'
177+
}
178+
179+
export function resolvePath(from: Uri, to: string) {
180+
if (from.scheme === Schemas.file) {
181+
return pathUtils.resolve(from.fsPath, to);
182+
} else {
183+
return pathUtils.posix.resolve(from.path, to);
184+
}
185+
}
186+
175187
class UriEventHandler extends EventEmitter<Uri> implements UriHandler {
176188
public handleUri(uri: Uri) {
177189
this.fire(uri);

src/github/pullRequestModel.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import Logger from '../common/logger';
1414
import { Remote } from '../common/remote';
1515
import { ITelemetry } from '../common/telemetry';
1616
import { ReviewEvent as CommonReviewEvent, isReviewEvent, TimelineEvent } from '../common/timelineEvent';
17-
import { toPRUri, toReviewUri } from '../common/uri';
17+
import { resolvePath, toPRUri, toReviewUri } from '../common/uri';
1818
import { formatError } from '../common/utils';
1919
import { OctokitCommon } from './common';
2020
import { FolderRepositoryManager } from './folderRepositoryManager';
@@ -992,7 +992,7 @@ export class PullRequestModel extends IssueModel<PullRequest> implements IPullRe
992992
const headCommit = pullRequestModel.head!.sha;
993993
const parentFileName = change.status === GitChangeType.RENAME ? change.previousFileName! : change.fileName;
994994
headUri = toPRUri(
995-
vscode.Uri.file(path.resolve(folderManager.repository.rootUri.fsPath, change.fileName)),
995+
vscode.Uri.file(resolvePath(folderManager.repository.rootUri, change.fileName)),
996996
pullRequestModel,
997997
change.baseCommit,
998998
headCommit,
@@ -1001,7 +1001,7 @@ export class PullRequestModel extends IssueModel<PullRequest> implements IPullRe
10011001
change.status,
10021002
);
10031003
baseUri = toPRUri(
1004-
vscode.Uri.file(path.resolve(folderManager.repository.rootUri.fsPath, parentFileName)),
1004+
vscode.Uri.file(resolvePath(folderManager.repository.rootUri, parentFileName)),
10051005
pullRequestModel,
10061006
change.baseCommit,
10071007
headCommit,

src/view/treeNodes/pullRequestNode.ts

+7-6
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,12 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
import * as path from 'path';
76
import * as vscode from 'vscode';
87
import { getCommentingRanges } from '../../common/commentingRanges';
98
import { DiffChangeType, getModifiedContentFromDiffHunk, parseDiff } from '../../common/diffHunk';
109
import { GitChangeType, SlimFileChange } from '../../common/file';
1110
import Logger from '../../common/logger';
12-
import { fromPRUri, toPRUri } from '../../common/uri';
11+
import { fromPRUri, resolvePath, toPRUri } from '../../common/uri';
1312
import { FolderRepositoryManager } from '../../github/folderRepositoryManager';
1413
import { PullRequestModel } from '../../github/pullRequestModel';
1514
import { getInMemPRContentProvider } from '../inMemPRContentProvider';
@@ -182,7 +181,7 @@ export class PRNode extends TreeNode implements vscode.CommentingRangeProvider {
182181
change.blobUrl,
183182
toPRUri(
184183
vscode.Uri.file(
185-
path.resolve(this._folderReposManager.repository.rootUri.fsPath, change.fileName),
184+
resolvePath(this._folderReposManager.repository.rootUri, change.fileName),
186185
),
187186
this.pullRequestModel,
188187
change.baseCommit,
@@ -193,7 +192,7 @@ export class PRNode extends TreeNode implements vscode.CommentingRangeProvider {
193192
),
194193
toPRUri(
195194
vscode.Uri.file(
196-
path.resolve(this._folderReposManager.repository.rootUri.fsPath, parentFileName),
195+
resolvePath(this._folderReposManager.repository.rootUri, parentFileName),
197196
),
198197
this.pullRequestModel,
199198
change.baseCommit,
@@ -205,6 +204,8 @@ export class PRNode extends TreeNode implements vscode.CommentingRangeProvider {
205204
);
206205
}
207206

207+
console.log(vscode.Uri.file(resolvePath(this._folderReposManager.repository.rootUri, change.fileName)));
208+
208209
const changedItem = new InMemFileChangeNode(
209210
this._folderReposManager,
210211
this,
@@ -214,7 +215,7 @@ export class PRNode extends TreeNode implements vscode.CommentingRangeProvider {
214215
change.previousFileName,
215216
change.blobUrl,
216217
toPRUri(
217-
vscode.Uri.file(path.resolve(this._folderReposManager.repository.rootUri.fsPath, change.fileName)),
218+
vscode.Uri.file(resolvePath(this._folderReposManager.repository.rootUri, change.fileName)),
218219
this.pullRequestModel,
219220
change.baseCommit,
220221
headCommit,
@@ -223,7 +224,7 @@ export class PRNode extends TreeNode implements vscode.CommentingRangeProvider {
223224
change.status,
224225
),
225226
toPRUri(
226-
vscode.Uri.file(path.resolve(this._folderReposManager.repository.rootUri.fsPath, parentFileName)),
227+
vscode.Uri.file(resolvePath(this._folderReposManager.repository.rootUri, parentFileName)),
227228
this.pullRequestModel,
228229
change.baseCommit,
229230
headCommit,

0 commit comments

Comments
 (0)