From 9c902052d6fb5e153e02123a82afef50d2b13bf7 Mon Sep 17 00:00:00 2001 From: Eric Amodio Date: Sun, 7 Aug 2022 00:41:51 -0400 Subject: [PATCH] Fixes #1896 deals w/ merge commits without a file --- CHANGELOG.md | 1 + src/git/parsers/logParser.ts | 12 ++++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3bb9f76..bd072b4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,6 +38,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p ### Fixed +- Fixes [#1896](https://github.com/gitkraken/vscode-gitlens/issues/1896) - Cannot read property 'fsPath' of undefined - Fixes [#1550](https://github.com/gitkraken/vscode-gitlens/issues/1550) - Push button in commit widget does not trigger "Push force" when ALT is pressed. - Fixes [#1991](https://github.com/gitkraken/vscode-gitlens/issues/1991) - Git lens status bar entry has an incomprehensible accessibility label - Fixes [#2125](https://github.com/gitkraken/vscode-gitlens/issues/2125) - "git log" command in version 12.x is very slow diff --git a/src/git/parsers/logParser.ts b/src/git/parsers/logParser.ts index bf5512a..ced58d7 100644 --- a/src/git/parsers/logParser.ts +++ b/src/git/parsers/logParser.ts @@ -280,7 +280,7 @@ export class GitLogParser { ): GitLog | undefined { if (!data) return undefined; - let relativeFileName: string; + let relativeFileName: string | undefined; let entry: LogEntry = {}; let line: string | undefined = undefined; @@ -531,7 +531,11 @@ export class GitLogParser { ); relativeFileName = normalizePath(relative(repoPath, fileName)); } else { - relativeFileName = entry.path!; + relativeFileName = + entry.path ?? + (repoPath != null && fileName != null + ? normalizePath(relative(repoPath, fileName)) + : undefined); } first = false; @@ -578,7 +582,7 @@ export class GitLogParser { commit: GitCommit | undefined, type: LogType, repoPath: string | undefined, - relativeFileName: string, + relativeFileName: string | undefined, commits: Map, currentUser: GitUser | undefined, ): void { @@ -600,7 +604,7 @@ export class GitLogParser { const files: { file?: GitFileChange; files?: GitFileChange[] } = { files: entry.files?.map(f => new GitFileChange(repoPath!, f.path, f.status, f.originalPath)), }; - if (type === LogType.LogFile) { + if (type === LogType.LogFile && relativeFileName != null) { files.file = new GitFileChange( repoPath!, relativeFileName,