From eff6fa7696ded98ff145744554d94de44365f209 Mon Sep 17 00:00:00 2001 From: Ladislau Szomoru <3372902+lszomoru@users.noreply.github.com> Date: Wed, 7 Sep 2022 15:35:46 +0200 Subject: [PATCH] Git - discover nested git repositories (#159291) --- extensions/git/src/model.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/extensions/git/src/model.ts b/extensions/git/src/model.ts index 80368a91688..c10a9d6a193 100644 --- a/extensions/git/src/model.ts +++ b/extensions/git/src/model.ts @@ -323,7 +323,7 @@ export class Model implements IRemoteSourcePublisherRegistry, IPostCommitCommand @sequentialize async openRepository(repoPath: string): Promise { this.outputChannelLogger.logTrace(`Opening repository: ${repoPath}`); - if (this.getRepository(repoPath)) { + if (this.getRepositoryExact(repoPath)) { this.outputChannelLogger.logTrace(`Repository for path ${repoPath} already exists`); return; } @@ -359,7 +359,7 @@ export class Model implements IRemoteSourcePublisherRegistry, IPostCommitCommand const repositoryRoot = Uri.file(rawRoot).fsPath; this.outputChannelLogger.logTrace(`Repository root: ${repositoryRoot}`); - if (this.getRepository(repositoryRoot)) { + if (this.getRepositoryExact(repositoryRoot)) { this.outputChannelLogger.logTrace(`Repository for path ${repositoryRoot} already exists`); return; } @@ -510,6 +510,12 @@ export class Model implements IRemoteSourcePublisherRegistry, IPostCommitCommand return liveRepository && liveRepository.repository; } + private getRepositoryExact(repoPath: string): Repository | undefined { + const openRepository = this.openRepositories + .find(r => pathEquals(r.repository.root, repoPath)); + return openRepository?.repository; + } + private getOpenRepository(repository: Repository): OpenRepository | undefined; private getOpenRepository(sourceControl: SourceControl): OpenRepository | undefined; private getOpenRepository(resourceGroup: SourceControlResourceGroup): OpenRepository | undefined;