if 'git.untrackedChanges' is set to 'hidden' ignore untracked files when running 'git status'

Co-authored-by: Markus Korn <markus.korn@gmail.com>
This commit is contained in:
Ladislau Szomoru
2022-03-29 21:22:19 +02:00
parent 22734c7ccd
commit 29f9e51444
2 changed files with 10 additions and 4 deletions

View File

@@ -1849,11 +1849,17 @@ export class Repository {
}
}
getStatus(opts?: { limit?: number; ignoreSubmodules?: boolean }): Promise<{ status: IFileStatus[]; statusLength: number; didHitLimit: boolean }> {
getStatus(opts?: { limit?: number; ignoreSubmodules?: boolean; untrackedChanges?: 'mixed' | 'separate' | 'hidden' }): Promise<{ status: IFileStatus[]; statusLength: number; didHitLimit: boolean }> {
return new Promise<{ status: IFileStatus[]; statusLength: number; didHitLimit: boolean }>((c, e) => {
const parser = new GitStatusParser();
const env = { GIT_OPTIONAL_LOCKS: '0' };
const args = ['status', '-z', '-u'];
const args = ['status', '-z'];
if (opts?.untrackedChanges === 'hidden') {
args.push('-uno');
} else {
args.push('-uall');
}
if (opts?.ignoreSubmodules) {
args.push('--ignore-submodules');

View File

@@ -1857,11 +1857,12 @@ export class Repository implements Disposable {
@throttle
private async updateModelState(): Promise<void> {
const scopedConfig = workspace.getConfiguration('git', Uri.file(this.repository.root));
const untrackedChanges = scopedConfig.get<'mixed' | 'separate' | 'hidden'>('untrackedChanges');
const ignoreSubmodules = scopedConfig.get<boolean>('ignoreSubmodules');
const limit = scopedConfig.get<number>('statusLimit', 10000);
const { status, statusLength, didHitLimit } = await this.repository.getStatus({ limit, ignoreSubmodules });
const { status, statusLength, didHitLimit } = await this.repository.getStatus({ limit, ignoreSubmodules, untrackedChanges });
if (didHitLimit) {
/* __GDPR__
@@ -1943,7 +1944,6 @@ export class Repository implements Disposable {
this._submodules = submodules!;
this.rebaseCommit = rebaseCommit;
const untrackedChanges = scopedConfig.get<'mixed' | 'separate' | 'hidden'>('untrackedChanges');
const index: Resource[] = [];
const workingTree: Resource[] = [];
const merge: Resource[] = [];