From ef811359922a7701e8d734cc77faf17d9f72aac9 Mon Sep 17 00:00:00 2001 From: Sergey Pak Date: Fri, 12 Jul 2024 14:27:02 +0200 Subject: [PATCH] only save settings in SettingsSyncBridge.initialize if push to server selected (related to IJPL-13931 Ensure settings categories are respected in the initial sync) GitOrigin-RevId: 62a3abd7403417015d89389af737c170fec78d35 --- .../src/com/intellij/settingsSync/SettingsSyncBridge.kt | 7 ++++--- .../src/com/intellij/settingsSync/SettingsSynchronizer.kt | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/plugins/settings-sync/src/com/intellij/settingsSync/SettingsSyncBridge.kt b/plugins/settings-sync/src/com/intellij/settingsSync/SettingsSyncBridge.kt index a14eec4e7f80..7caa81535d69 100644 --- a/plugins/settings-sync/src/com/intellij/settingsSync/SettingsSyncBridge.kt +++ b/plugins/settings-sync/src/com/intellij/settingsSync/SettingsSyncBridge.kt @@ -4,6 +4,7 @@ import com.intellij.codeInsight.template.impl.TemplateSettings import com.intellij.configurationStore.saveSettings import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.diagnostic.logger +import com.intellij.openapi.progress.runBlockingCancellable import com.intellij.platform.util.progress.withProgressText import com.intellij.settingsSync.SettingsSyncBridge.PushRequestMode.* import com.intellij.settingsSync.statistics.SettingsSyncEventsStatistics @@ -92,9 +93,9 @@ class SettingsSyncBridge( coroutineScope.launch { withProgressText(SettingsSyncBundle.message(initMode.messageKey)) { try { - // Always explicitly flush settings – if this is not done before sending sync events, then remotely synced settings - // might not contain the most up–to–date settings state (e.g. sync settings will be stale). - saveIdeSettings() + if (initMode == InitMode.PushToServer) { + saveIdeSettings() + } settingsLog.initialize() // the queue is not activated initially => events will be collected but not processed until we perform all initialization tasks diff --git a/plugins/settings-sync/src/com/intellij/settingsSync/SettingsSynchronizer.kt b/plugins/settings-sync/src/com/intellij/settingsSync/SettingsSynchronizer.kt index 916346065b65..7f50cd3218d0 100644 --- a/plugins/settings-sync/src/com/intellij/settingsSync/SettingsSynchronizer.kt +++ b/plugins/settings-sync/src/com/intellij/settingsSync/SettingsSynchronizer.kt @@ -76,7 +76,7 @@ private class SettingsSynchronizerApplicationInitializedListener : ApplicationIn } private suspend fun initializeSyncing(initMode: SettingsSyncBridge.InitMode, settingsSyncEventListener: SettingsSyncEventListener) { - LOG.info("Initializing settings sync") + LOG.info("Initializing settings sync. Mode: $initMode") val settingsSyncMain = serviceAsync() blockingContext { settingsSyncMain.controls.bridge.initialize(initMode)