@@ -11,6 +11,7 @@ import { ExtensionConfig } from "./models/extensionConfig.model";
1111import { LocalConfig } from "./models/localConfig.model" ;
1212import PragmaUtil from "./pragmaUtil" ;
1313import { File , FileService } from "./service/file.service" ;
14+ import { GistChangeService } from "./service/gistChange.service" ;
1415import { GitHubService } from "./service/github.service" ;
1516import { ExtensionInformation , PluginService } from "./service/plugin.service" ;
1617import { state } from "./state" ;
@@ -226,6 +227,7 @@ export class Sync {
226227 allSettingFiles . push ( file ) ;
227228
228229 let completed : boolean = false ;
230+ let filesToUpload : File [ ] = allSettingFiles ;
229231
230232 let newGIST : boolean = false ;
231233 try {
@@ -284,23 +286,26 @@ export class Sync {
284286 localConfig . publicGist = true ;
285287 }
286288
287- if (
288- ! allSettingFiles . some ( fileToUpload => {
289- if ( fileToUpload . gistName === "cloudSettings" ) {
290- return false ;
291- }
292- if ( ! gistObj . data . files [ fileToUpload . gistName ] ) {
293- return true ;
294- }
295- if (
296- gistObj . data . files [ fileToUpload . gistName ] . content !==
297- fileToUpload . content
298- ) {
299- console . info ( `Sync: file ${ fileToUpload . gistName } has changed` ) ;
300- return true ;
301- }
302- } )
303- ) {
289+ const changedSettingFiles = GistChangeService . GetChangedSettingFiles (
290+ allSettingFiles ,
291+ gistObj . data . files
292+ ) ;
293+
294+ changedSettingFiles . forEach ( fileToUpload => {
295+ if ( ! gistObj . data . files [ fileToUpload . gistName ] ) {
296+ console . info ( `Sync: file ${ fileToUpload . gistName } is new` ) ;
297+ } else {
298+ console . info ( `Sync: file ${ fileToUpload . gistName } has changed` ) ;
299+ }
300+ } ) ;
301+
302+ filesToUpload = GistChangeService . GetFilesToUpload (
303+ allSettingFiles ,
304+ gistObj . data . files ,
305+ localConfig . extConfig . forceUpload
306+ ) ;
307+
308+ if ( changedSettingFiles . length === 0 ) {
304309 // Gist files are the same as the local files.
305310 if ( ! localConfig . extConfig . forceUpload ) {
306311 vscode . window . setStatusBarMessage (
@@ -359,7 +364,7 @@ export class Sync {
359364 3000
360365 ) ;
361366
362- gistObj = github . UpdateGIST ( gistObj , allSettingFiles ) ;
367+ gistObj = github . UpdateGIST ( gistObj , filesToUpload , allSettingFiles ) ;
363368 completed = await github . SaveGIST ( gistObj . data ) ;
364369 if ( ! completed ) {
365370 vscode . window . showErrorMessage (
@@ -396,7 +401,7 @@ export class Sync {
396401 if ( ! syncSetting . quietSync ) {
397402 state . commons . ShowSummaryOutput (
398403 true ,
399- allSettingFiles ,
404+ filesToUpload ,
400405 null ,
401406 uploadedExtensions ,
402407 ignoredExtensions ,
0 commit comments