From 51b8bd5064e093e2a2f4d92498945e2f1adb349c Mon Sep 17 00:00:00 2001 From: Jiayue Zhang Date: Thu, 30 Jan 2020 01:10:05 +0900 Subject: [PATCH] Fix #88294 Add commitData in commit interface --- extensions/git/src/api/git.d.ts | 1 + extensions/git/src/git.ts | 21 ++++++++++++--------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/extensions/git/src/api/git.d.ts b/extensions/git/src/api/git.d.ts index d3bdd3de44bd..70975288160f 100644 --- a/extensions/git/src/api/git.d.ts +++ b/extensions/git/src/api/git.d.ts @@ -44,6 +44,7 @@ export interface Commit { readonly authorDate?: Date; readonly authorName?: string; readonly authorEmail?: string; + readonly commitDate?: Date; } export interface Submodule { diff --git a/extensions/git/src/git.ts b/extensions/git/src/git.ts index 1b940afc805d..63c47ba9ba3b 100644 --- a/extensions/git/src/git.ts +++ b/extensions/git/src/git.ts @@ -327,7 +327,7 @@ function getGitErrorCode(stderr: string): string | undefined { return undefined; } -const COMMIT_FORMAT = '%H\n%aN\n%aE\n%at\n%P\n%B'; +const COMMIT_FORMAT = '%H\n%aN\n%aE\n%at\n%ct\n%P\n%B'; export class Git { @@ -515,6 +515,7 @@ export interface Commit { authorDate?: Date; authorName?: string; authorEmail?: string; + commitDate?: Date; } export class GitStatusParser { @@ -645,15 +646,16 @@ export function parseGitmodules(raw: string): Submodule[] { return result; } -const commitRegex = /([0-9a-f]{40})\n(.*)\n(.*)\n(.*)\n(.*)(?:\n([^]*?))?(?:\x00)/gm; +const commitRegex = /([0-9a-f]{40})\n(.*)\n(.*)\n(.*)\n(.*)\n(.*)(?:\n([^]*?))?(?:\x00)/gm; export function parseGitCommits(data: string): Commit[] { let commits: Commit[] = []; let ref; - let name; - let email; - let date; + let authorName; + let authorEmail; + let authorDate; + let commitDate; let parents; let message; let match; @@ -664,7 +666,7 @@ export function parseGitCommits(data: string): Commit[] { break; } - [, ref, name, email, date, parents, message] = match; + [, ref, authorName, authorEmail, authorDate, commitDate, parents, message] = match; if (message[message.length - 1] === '\n') { message = message.substr(0, message.length - 1); @@ -675,9 +677,10 @@ export function parseGitCommits(data: string): Commit[] { hash: ` ${ref}`.substr(1), message: ` ${message}`.substr(1), parents: parents ? parents.split(' ') : [], - authorDate: new Date(Number(date) * 1000), - authorName: ` ${name}`.substr(1), - authorEmail: ` ${email}`.substr(1) + authorDate: new Date(Number(authorDate) * 1000), + authorName: ` ${authorName}`.substr(1), + authorEmail: ` ${authorEmail}`.substr(1), + commitDate: new Date(Number(commitDate) * 1000), }); } while (true);