Add reset and clean for submodules

This commit is contained in:
Xavier Chapron 2021-10-29 10:54:32 +02:00
parent fd47087372
commit ac7af06d80
3 changed files with 46 additions and 0 deletions

View file

@ -40,6 +40,8 @@ export interface IGitCommandManager {
submoduleForeach(command: string, recursive: boolean): Promise<string>
submoduleSync(recursive: boolean): Promise<void>
submoduleUpdate(fetchDepth: number, recursive: boolean): Promise<void>
submoduleReset(recursive: boolean): Promise<void>
submoduleClean(recursive: boolean): Promise<void>
tagExists(pattern: string): Promise<boolean>
tryClean(): Promise<boolean>
tryConfigUnset(configKey: string, globalConfig?: boolean): Promise<boolean>
@ -324,6 +326,26 @@ class GitCommandManager {
await this.execGit(args)
}
async submoduleReset(recursive: boolean): Promise<void> {
const args = ['submodule', 'foreach']
if (recursive) {
args.push('--recursive')
}
args.push('git reset --hard')
await this.execGit(args)
}
async submoduleClean(recursive: boolean): Promise<void> {
const args = ['submodule', 'foreach']
if (recursive) {
args.push('--recursive')
}
args.push('git clean -ffdx')
await this.execGit(args)
}
async tagExists(pattern: string): Promise<boolean> {
const output = await this.execGit(['tag', '--list', pattern])
return !!output.stdout.trim()

View file

@ -183,6 +183,8 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
settings.fetchDepth,
settings.nestedSubmodules
)
await git.submoduleReset(settings.nestedSubmodules)
await git.submoduleClean(settings.nestedSubmodules)
await git.submoduleForeach(
'git config --local gc.auto 0',
settings.nestedSubmodules