From 40c9a33800b07b8030cd5fceccfd0eb44da5f47f Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Mon, 13 Jul 2020 16:14:45 +0200 Subject: [PATCH] #100346 Prepare for manual sync --- .../userDataSync/common/extensionsSync.ts | 2 +- .../userDataSync/common/globalStateSync.ts | 2 +- .../electron-browser/userDataSyncService.ts | 42 +++++++++++-------- 3 files changed, 26 insertions(+), 20 deletions(-) diff --git a/src/vs/platform/userDataSync/common/extensionsSync.ts b/src/vs/platform/userDataSync/common/extensionsSync.ts index 389670304c8..97c6d29749f 100644 --- a/src/vs/platform/userDataSync/common/extensionsSync.ts +++ b/src/vs/platform/userDataSync/common/extensionsSync.ts @@ -40,7 +40,7 @@ interface ILastSyncUserData extends IRemoteUserData { export class ExtensionsSynchroniser extends AbstractSynchroniser implements IUserDataSynchroniser { - private static readonly EXTENSIONS_DATA_URI = URI.from({ scheme: USER_DATA_SYNC_SCHEME, authority: 'extensions', path: `/current.json` }); + private static readonly EXTENSIONS_DATA_URI = URI.from({ scheme: USER_DATA_SYNC_SCHEME, authority: 'extensions', path: `/extensions.json` }); /* Version 3 - Introduce installed property to skip installing built in extensions */ diff --git a/src/vs/platform/userDataSync/common/globalStateSync.ts b/src/vs/platform/userDataSync/common/globalStateSync.ts index 82e0245b3f7..8d32b1ab4d8 100644 --- a/src/vs/platform/userDataSync/common/globalStateSync.ts +++ b/src/vs/platform/userDataSync/common/globalStateSync.ts @@ -43,7 +43,7 @@ interface ILastSyncUserData extends IRemoteUserData { export class GlobalStateSynchroniser extends AbstractSynchroniser implements IUserDataSynchroniser { - private static readonly GLOBAL_STATE_DATA_URI = URI.from({ scheme: USER_DATA_SYNC_SCHEME, authority: 'globalState', path: `/current.json` }); + private static readonly GLOBAL_STATE_DATA_URI = URI.from({ scheme: USER_DATA_SYNC_SCHEME, authority: 'globalState', path: `/globalState.json` }); protected readonly version: number = 1; private readonly localPreviewResource: URI = joinPath(this.syncPreviewFolder, 'globalState.json'); private readonly remotePreviewResource: URI = this.localPreviewResource.with({ scheme: USER_DATA_SYNC_SCHEME }); diff --git a/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncService.ts b/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncService.ts index 5c27df2c985..85b71618c86 100644 --- a/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncService.ts +++ b/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncService.ts @@ -143,7 +143,7 @@ export class UserDataSyncService extends Disposable implements IUserDataSyncServ previewResource: URI.revive(r.previewResource), })) ])); - this._onDidChangeConflicts.fire(conflicts); + this._onDidChangeConflicts.fire(this._conflicts); } private updateLastSyncTime(lastSyncTime: number): void { @@ -170,27 +170,17 @@ class ManualSyncTask implements IManualSyncTask { async preview(): Promise<[SyncResource, ISyncResourcePreview][]> { const previews = await this.channel.call<[SyncResource, ISyncResourcePreview][]>('preview'); - return previews.map(([syncResource, preview]) => - ([ - syncResource, - { - isLastSyncFromCurrentMachine: preview.isLastSyncFromCurrentMachine, - resourcePreviews: preview.resourcePreviews.map(r => ({ - ...r, - localResource: URI.revive(r.localResource), - remoteResource: URI.revive(r.remoteResource), - previewResource: URI.revive(r.previewResource), - })) - } - ])); + return this.deserializePreviews(previews); } - accept(resource: URI, content: string): Promise<[SyncResource, ISyncResourcePreview][]> { - return this.channel.call('accept', [resource, content]); + async accept(resource: URI, content: string): Promise<[SyncResource, ISyncResourcePreview][]> { + const previews = await this.channel.call<[SyncResource, ISyncResourcePreview][]>('accept', [resource, content]); + return this.deserializePreviews(previews); } - merge(resource?: URI): Promise<[SyncResource, ISyncResourcePreview][]> { - return this.channel.call('merge', [resource]); + async merge(resource?: URI): Promise<[SyncResource, ISyncResourcePreview][]> { + const previews = await this.channel.call<[SyncResource, ISyncResourcePreview][]>('merge', [resource]); + return this.deserializePreviews(previews); } pull(): Promise { @@ -208,6 +198,22 @@ class ManualSyncTask implements IManualSyncTask { dispose(): void { this.channel.call('dispose'); } + + private deserializePreviews(previews: [SyncResource, ISyncResourcePreview][]): [SyncResource, ISyncResourcePreview][] { + return previews.map(([syncResource, preview]) => + ([ + syncResource, + { + isLastSyncFromCurrentMachine: preview.isLastSyncFromCurrentMachine, + resourcePreviews: preview.resourcePreviews.map(r => ({ + ...r, + localResource: URI.revive(r.localResource), + remoteResource: URI.revive(r.remoteResource), + previewResource: URI.revive(r.previewResource), + })) + } + ])); + } } registerSingleton(IUserDataSyncService, UserDataSyncService);