@@ -453,20 +453,20 @@ export class UserDataSyncWorkbenchContribution extends Disposable implements IWo
453453 }
454454
455455 private async handleConflicts ( ) : Promise < void > {
456- let rightResource : URI | undefined = undefined ;
456+ let previewResource : URI | undefined = undefined ;
457457 let label : string = '' ;
458458 if ( this . userDataSyncService . conflictsSource === SyncSource . Settings ) {
459- rightResource = this . workbenchEnvironmentService . settingsSyncPreviewResource ;
459+ previewResource = this . workbenchEnvironmentService . settingsSyncPreviewResource ;
460460 label = localize ( 'settings conflicts preview' , "Settings Conflicts (Remote ↔ Local)" ) ;
461461 } else if ( this . userDataSyncService . conflictsSource === SyncSource . Keybindings ) {
462- rightResource = this . workbenchEnvironmentService . keybindingsResource ;
462+ previewResource = this . workbenchEnvironmentService . keybindingsResource ;
463463 label = localize ( 'keybindings conflicts preview' , "Keybindings Conflicts (Remote ↔ Local)" ) ;
464464 }
465- if ( rightResource ) {
466- const leftResource = toRemoteContentResource ( this . userDataSyncService . conflictsSource ! ) ;
465+ if ( previewResource ) {
466+ const remoteContentResource = toRemoteContentResource ( this . userDataSyncService . conflictsSource ! ) ;
467467 const editor = await this . editorService . openEditor ( {
468- leftResource,
469- rightResource,
468+ leftResource : remoteContentResource ,
469+ rightResource : previewResource ,
470470 label,
471471 options : {
472472 preserveFocus : false ,
@@ -477,26 +477,24 @@ export class UserDataSyncWorkbenchContribution extends Disposable implements IWo
477477 if ( editor ?. input ) {
478478 const disposable = editor . input . onDispose ( async ( ) => {
479479 disposable . dispose ( ) ;
480- this . checkAndContinueSync ( leftResource , rightResource ! ) ;
481- } ) ;
482- }
483- }
484- }
485-
486- private async checkAndContinueSync ( remoteResource : URI , previewResource : URI ) : Promise < void > {
487- const source = getSyncSourceFromRemoteContentResource ( remoteResource ) ;
488- if ( source === undefined || this . userDataSyncService . conflictsSource !== source ) {
489- return ;
490- }
480+ const source = getSyncSourceFromRemoteContentResource ( remoteContentResource ) ;
481+ if ( source === undefined || this . userDataSyncService . conflictsSource !== source ) {
482+ return ;
483+ }
491484
492- const remoteModelRef = await this . textModelResolverService . createModelReference ( remoteResource ) ;
493- const previewModelRef = await this . textModelResolverService . createModelReference ( previewResource ! ) ;
494- if ( source === SyncSource . Settings ) {
495- if ( areSame ( remoteModelRef . object . textEditorModel . getValue ( ) , previewModelRef . object . textEditorModel . getValue ( ) , getIgnoredSettings ( this . configurationService ) ) ) {
496- await this . userDataSyncService . sync ( true ) ;
485+ const remoteModelRef = await this . textModelResolverService . createModelReference ( remoteContentResource ) ;
486+ const previewModelRef = await this . textModelResolverService . createModelReference ( previewResource ! ) ;
487+ const remoteModelContent = remoteModelRef . object . textEditorModel . getValue ( ) ;
488+ const preivewContent = previewModelRef . object . textEditorModel . getValue ( ) ;
489+ remoteModelRef . dispose ( ) ;
490+ previewModelRef . dispose ( ) ;
491+ if ( remoteModelContent !== preivewContent
492+ || ( source === SyncSource . Settings && ! areSame ( remoteModelContent , preivewContent , getIgnoredSettings ( this . configurationService ) ) ) ) {
493+ return ;
494+ }
495+ await this . userDataSyncService . sync ( true ) ;
496+ } ) ;
497497 }
498- } else if ( remoteModelRef . object . textEditorModel . getValue ( ) === previewModelRef . object . textEditorModel . getValue ( ) ) {
499- await this . userDataSyncService . sync ( true ) ;
500498 }
501499 }
502500
0 commit comments