mirror of
https://github.com/Microsoft/vscode
synced 2024-07-02 15:59:00 +00:00
SCM - improve merge-base detection (#216823)
This commit is contained in:
parent
f4f94df15e
commit
68ca9a7f4c
|
@ -1502,9 +1502,16 @@ export class Repository {
|
|||
return parseGitChanges(this.repositoryRoot, gitResult.stdout);
|
||||
}
|
||||
|
||||
async getMergeBase(ref1: string, ref2: string): Promise<string | undefined> {
|
||||
async getMergeBase(ref1: string, ref2: string, ...refs: string[]): Promise<string | undefined> {
|
||||
try {
|
||||
const args = ['merge-base', ref1, ref2];
|
||||
const args = ['merge-base'];
|
||||
if (refs.length !== 0) {
|
||||
args.push('--octopus');
|
||||
args.push(...refs);
|
||||
}
|
||||
|
||||
args.push(ref1, ref2);
|
||||
|
||||
const result = await this.exec(args);
|
||||
|
||||
return result.stdout.trim();
|
||||
|
|
|
@ -256,11 +256,7 @@ export class GitHistoryProvider implements SourceControlHistoryProvider, FileDec
|
|||
return undefined;
|
||||
}
|
||||
|
||||
let refsMergeBase = refNames[0];
|
||||
for (let index = 1; index < refNames.length; index++) {
|
||||
refsMergeBase = await this.repository.getMergeBase(refsMergeBase, refNames[index]) ?? refsMergeBase;
|
||||
}
|
||||
|
||||
const refsMergeBase = await this.repository.getMergeBase(refNames[0], refNames[1], ...refNames.slice(2));
|
||||
return refsMergeBase;
|
||||
}
|
||||
|
||||
|
|
|
@ -1112,8 +1112,8 @@ export class Repository implements Disposable {
|
|||
return this.run(Operation.Diff, () => this.repository.diffBetweenShortStat(ref1, ref2));
|
||||
}
|
||||
|
||||
getMergeBase(ref1: string, ref2: string): Promise<string | undefined> {
|
||||
return this.run(Operation.MergeBase, () => this.repository.getMergeBase(ref1, ref2));
|
||||
getMergeBase(ref1: string, ref2: string, ...refs: string[]): Promise<string | undefined> {
|
||||
return this.run(Operation.MergeBase, () => this.repository.getMergeBase(ref1, ref2, ...refs));
|
||||
}
|
||||
|
||||
async hashObject(data: string): Promise<string> {
|
||||
|
|
Loading…
Reference in New Issue
Block a user