diff --git a/extensions/git/src/api/api1.ts b/extensions/git/src/api/api1.ts index e77f0f2d381..ea233a4672d 100644 --- a/extensions/git/src/api/api1.ts +++ b/extensions/git/src/api/api1.ts @@ -189,7 +189,7 @@ export class ApiRepository implements Repository { return this.repository.getRefs(query, cancellationToken); } - getMergeBase(ref1: string, ref2: string): Promise { + getMergeBase(ref1: string, ref2: string): Promise { return this.repository.getMergeBase(ref1, ref2); } diff --git a/extensions/git/src/api/git.d.ts b/extensions/git/src/api/git.d.ts index 93854b09124..9748cacbc84 100644 --- a/extensions/git/src/api/git.d.ts +++ b/extensions/git/src/api/git.d.ts @@ -233,7 +233,7 @@ export interface Repository { getRefs(query: RefQuery, cancellationToken?: CancellationToken): Promise; - getMergeBase(ref1: string, ref2: string): Promise; + getMergeBase(ref1: string, ref2: string): Promise; tag(name: string, upstream: string): Promise; deleteTag(name: string): Promise; diff --git a/extensions/git/src/git.ts b/extensions/git/src/git.ts index 11dfa579d6b..554e4ad8ac8 100644 --- a/extensions/git/src/git.ts +++ b/extensions/git/src/git.ts @@ -1434,11 +1434,16 @@ export class Repository { return result; } - async getMergeBase(ref1: string, ref2: string): Promise { - const args = ['merge-base', ref1, ref2]; - const result = await this.exec(args); + async getMergeBase(ref1: string, ref2: string): Promise { + try { + const args = ['merge-base', ref1, ref2]; + const result = await this.exec(args); - return result.stdout.trim(); + return result.stdout.trim(); + } + catch (err) { + return undefined; + } } async hashObject(data: string): Promise { diff --git a/extensions/git/src/historyProvider.ts b/extensions/git/src/historyProvider.ts index 17dba102718..06fcf917b06 100644 --- a/extensions/git/src/historyProvider.ts +++ b/extensions/git/src/historyProvider.ts @@ -175,7 +175,7 @@ export class GitHistoryProvider implements SourceControlHistoryProvider, FileDec async resolveHistoryItemGroupCommonAncestor(refId1: string, refId2: string): Promise<{ id: string; ahead: number; behind: number } | undefined> { const ancestor = await this.repository.getMergeBase(refId1, refId2); - if (ancestor === '') { + if (!ancestor) { return undefined; } diff --git a/extensions/git/src/repository.ts b/extensions/git/src/repository.ts index 9e32d37f147..eb702dd665e 100644 --- a/extensions/git/src/repository.ts +++ b/extensions/git/src/repository.ts @@ -1189,7 +1189,7 @@ export class Repository implements Disposable { return this.run(Operation.Diff, () => this.repository.diffBetweenShortStat(ref1, ref2)); } - getMergeBase(ref1: string, ref2: string): Promise { + getMergeBase(ref1: string, ref2: string): Promise { return this.run(Operation.MergeBase, () => this.repository.getMergeBase(ref1, ref2)); }