From deeafc265e731311896b71cb5682cf566bfa8c1a Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Wed, 1 Mar 2017 12:17:45 +0100 Subject: [PATCH] add more logging for #13665 --- src/vs/platform/files/common/files.ts | 1 + .../parts/files/browser/saveErrorHandler.ts | 9 +++++++++ .../services/files/node/fileService.ts | 19 ++++++++++++++++++- 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/vs/platform/files/common/files.ts b/src/vs/platform/files/common/files.ts index b0f5eea0285..7136f40f9e4 100644 --- a/src/vs/platform/files/common/files.ts +++ b/src/vs/platform/files/common/files.ts @@ -467,6 +467,7 @@ export interface IImportResult { export interface IFileOperationResult { message: string; fileOperationResult: FileOperationResult; + payload?: any; } export enum FileOperationResult { diff --git a/src/vs/workbench/parts/files/browser/saveErrorHandler.ts b/src/vs/workbench/parts/files/browser/saveErrorHandler.ts index 059a02e88da..abab8cdb074 100644 --- a/src/vs/workbench/parts/files/browser/saveErrorHandler.ts +++ b/src/vs/workbench/parts/files/browser/saveErrorHandler.ts @@ -95,6 +95,15 @@ export class SaveErrorHandler implements ISaveErrorHandler, IWorkbenchContributi // Dirty write prevention if ((error).fileOperationResult === FileOperationResult.FILE_MODIFIED_SINCE) { + + // TODO@Ben remove me once https://github.com/Microsoft/vscode/issues/13665 is resolved + if (error.payload) { + error.payload.modelValue = model.getValue(); + error.payload.modelValueLength = error.payload.modelValue.length; + + console.log(JSON.stringify(error.payload)); + } + message = this.instantiationService.createInstance(ResolveSaveConflictMessage, model, null); } diff --git a/src/vs/workbench/services/files/node/fileService.ts b/src/vs/workbench/services/files/node/fileService.ts index c192e17009f..d1c68cf8315 100644 --- a/src/vs/workbench/services/files/node/fileService.ts +++ b/src/vs/workbench/services/files/node/fileService.ts @@ -621,9 +621,26 @@ export class FileService implements IFileService { // Find out if content length has changed if (options.etag !== etag(stat.size, options.mtime)) { + + // TODO@Ben remove me once https://github.com/Microsoft/vscode/issues/13665 is resolved + let payload: any; + if (this.options.verboseLogging) { + const contents = fs.readFileSync(absolutePath); + const value = contents.toString(); + + payload = { + diskByteLength: contents.length, + diskValueLength: value.length, + diskValue: value, + options, + stat + }; + } + return TPromise.wrapError({ message: 'File Modified Since', - fileOperationResult: FileOperationResult.FILE_MODIFIED_SINCE + fileOperationResult: FileOperationResult.FILE_MODIFIED_SINCE, + payload }); } } -- GitLab