From a9dda8946f7c828cb403414716a9b733012910af Mon Sep 17 00:00:00 2001 From: "Ilia.Shulgin" Date: Mon, 14 Oct 2024 10:31:14 +0200 Subject: [PATCH] [git] AT-1563 Don't use lateinit for GitRepositoryImpl#repoInfo GitOrigin-RevId: 67fa30e797617718c6a0efb2e5941c0035a84fd0 --- .../src/git4idea/repo/GitRepositoryImpl.kt | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/plugins/git4idea/src/git4idea/repo/GitRepositoryImpl.kt b/plugins/git4idea/src/git4idea/repo/GitRepositoryImpl.kt index b1dff3123f70..f8798447ec98 100644 --- a/plugins/git4idea/src/git4idea/repo/GitRepositoryImpl.kt +++ b/plugins/git4idea/src/git4idea/repo/GitRepositoryImpl.kt @@ -47,7 +47,7 @@ class GitRepositoryImpl private constructor( private val tagHolder: GitTagHolder @Volatile - private lateinit var repoInfo: GitRepoInfo + private var repoInfo: GitRepoInfo @Volatile private var recentCheckoutBranches = emptyList() @@ -65,6 +65,7 @@ class GitRepositoryImpl private constructor( Disposer.register(this, untrackedFilesHolder) tagHolder = GitTagHolder(this) + repoInfo = readRepoInfo() } @Deprecated("Deprecated in Java") @@ -156,7 +157,7 @@ class GitRepositoryImpl private constructor( override fun update() { ApplicationManager.getApplication().assertIsNonDispatchThread() - val previousInfo = if (::repoInfo.isInitialized) repoInfo else null + val previousInfo = repoInfo repoInfo = readRepoInfo() notifyIfRepoChanged(this, previousInfo, repoInfo) } @@ -254,14 +255,13 @@ class GitRepositoryImpl private constructor( parentDisposable: Disposable, ): GitRepository { ProgressManager.checkCanceled() - return GitRepositoryImpl(project, root, gitDir, parentDisposable).apply { installListeners() } - } - - private fun GitRepositoryImpl.installListeners() { - val updater = GitRepositoryUpdater(this, repositoryFiles) - updater.installListeners(this) - update() - untrackedFilesHolder.invalidate() + return GitRepositoryImpl(project, root, gitDir, parentDisposable).apply { + val initialRepoInfo = repoInfo + val updater = GitRepositoryUpdater(this, this.repositoryFiles) + updater.installListeners(this) + notifyIfRepoChanged(this, null, initialRepoInfo) + this.untrackedFilesHolder.invalidate() + } } private fun notifyIfRepoChanged(repository: GitRepository, previousInfo: GitRepoInfo?, info: GitRepoInfo) {