mirror of
https://github.com/microsoft/vscode.git
synced 2026-05-01 22:12:26 +01:00
Git - add similarity threshold setting (#182492)
This commit is contained in:
@@ -2000,7 +2000,7 @@ export class Repository {
|
||||
}
|
||||
}
|
||||
|
||||
async getStatus(opts?: { limit?: number; ignoreSubmodules?: boolean; untrackedChanges?: 'mixed' | 'separate' | 'hidden'; cancellationToken?: CancellationToken }): Promise<{ status: IFileStatus[]; statusLength: number; didHitLimit: boolean }> {
|
||||
async getStatus(opts?: { limit?: number; ignoreSubmodules?: boolean; similarityThreshold?: number; untrackedChanges?: 'mixed' | 'separate' | 'hidden'; cancellationToken?: CancellationToken }): Promise<{ status: IFileStatus[]; statusLength: number; didHitLimit: boolean }> {
|
||||
if (opts?.cancellationToken && opts?.cancellationToken.isCancellationRequested) {
|
||||
throw new CancellationError();
|
||||
}
|
||||
@@ -2020,6 +2020,10 @@ export class Repository {
|
||||
args.push('--ignore-submodules');
|
||||
}
|
||||
|
||||
if (opts?.similarityThreshold) {
|
||||
args.push(`--find-renames=${opts.similarityThreshold}%`);
|
||||
}
|
||||
|
||||
const child = this.stream(args, { env });
|
||||
|
||||
let result = new Promise<{ status: IFileStatus[]; statusLength: number; didHitLimit: boolean }>((c, e) => {
|
||||
|
||||
@@ -2056,9 +2056,10 @@ export class Repository implements Disposable {
|
||||
const ignoreSubmodules = scopedConfig.get<boolean>('ignoreSubmodules');
|
||||
|
||||
const limit = scopedConfig.get<number>('statusLimit', 10000);
|
||||
const similarityThreshold = scopedConfig.get<number>('similarityThreshold', 50);
|
||||
|
||||
const start = new Date().getTime();
|
||||
const { status, statusLength, didHitLimit } = await this.repository.getStatus({ limit, ignoreSubmodules, untrackedChanges, cancellationToken });
|
||||
const { status, statusLength, didHitLimit } = await this.repository.getStatus({ limit, ignoreSubmodules, similarityThreshold, untrackedChanges, cancellationToken });
|
||||
const totalTime = new Date().getTime() - start;
|
||||
|
||||
this.isRepositoryHuge = didHitLimit ? { limit } : false;
|
||||
|
||||
Reference in New Issue
Block a user