adobe / brackets

An open source code editor for the web, written in JavaScript, HTML and CSS.
http://brackets.io
MIT License
33.25k stars 7.63k forks source link

Can't undo after saving. #12300

Closed blackmiaool closed 8 years ago

blackmiaool commented 8 years ago

version: Release 1.6 experimental build 1.6.0-16680 (release 3df0ac6fa) Works well in version 1.5. Can't undo after saving without any extension.

blackmiaool commented 8 years ago

ubuntu14.04 LTS, 64bit.

petetnt commented 8 years ago

Hey @blackmiaool, there was an refreshed version of the 1.6. version released sometime ago which should fix this (or at least alleviate the issue). Could you please reinstall Brackets from http://brackets.io/ and see if the problem still occurs, thanks :+1:

abose commented 8 years ago

The version has not been released yet, will do today or tomorrow.

petetnt commented 8 years ago

Oh, I thought that already happened. Meanwhile you can try applying this patch and trying again https://github.com/adobe/brackets/pull/12175

blackmiaool commented 8 years ago

@petetnt Thank for your help first. I can't find FileSystem.js in my file system. Maybe you bundled the source code. I think I'd better try the new release tomorrow.:grinning:

petetnt commented 8 years ago

@blackmiaool If you don't want to wait, here's a few tips:

For the release build: There should be a file called brackets.js in the release version that should contain the following line you can change:

// from
if (!(stat && oldStat && stat.mtime.getTime() === oldStat.mtime.getTime())) {

// to
if (!(stat && oldStat && stat.mtime.getTime() <= oldStat.mtime.getTime())) {

Alternatively you can use the source: If you are familiar with Git you can also follow the guide on How to hack on Brackets which will automatically bring you the fix too as it is already included in the source :fire:

:+1:

blackmiaool commented 8 years ago

@petetnt I didn't find brackets.js. So I try to do it in /opt/brackets/www/main.js(4.9MB) but it still not work.

blackmiaool commented 8 years ago

@petetnt But when I change <= to >=, it works. :smiley: Exciting!

blackmiaool commented 8 years ago

{ "uuid": "9b335ef6-3d39-48d9-be7d-ca1cb0c9bfdc", "snapshotTime": 1458027398045, "os": "linux", "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.80 Safari/537.36", "osLanguage": "en", "bracketsLanguage": "en", "bracketsVersion": "1.6.0-16680", "fileStats": { "openedFileExt": { "js": 16, "less": 10, "jsx": 1, "tmpl": 6, "html": 1 }, "workingSetFileExt": {} }, "ProjectDetails": { "prj-1684648858": { "numFiles": 22, "cacheSize": 954650 }, "prj1725260168": { "numFiles": 217, "cacheSize": 6230380 }, "prj-19802930": { "numFiles": 1131, "cacheSize": 25569196 }, "prj962460099": { "numFiles": 248, "cacheSize": 7302292 } }, "searchDetails": { "searchNew": 4, "searchInstant": 12, "searchOnReturnKey": 3 }, "projectLoadTimes": ":0:1:0:0", "fileOpenTimes": ":0:0:1(1)1[0]:0:0:0:0(1)1[1]:0:0:0:0:1:0:1:0:0:0:0:0:0:0(1)1[1]", "prefNodeSearchDisabled": false, "prefInstantSearchDisabled": false, "installedExtensions": [ { "name": "compilyai", "version": "1.0.4" }, { "name": "jrowny.brackets.snippets", "version": "1.1.0" }, { "name": "mackenza.php-smarthints", "version": "1.2.2" }, { "name": "jdiehl.less-autocompile", "version": "1.1.10" }, { "name": "brackets-console", "version": "1.4.1" }, { "name": "brackets-angularjs-codehints", "version": "0.0.3" }, { "name": "monokai-theme", "version": "1.0.8" }, { "name": "brackets-angular-snippets", "version": "0.1.2" }, { "name": "lua", "version": "1.0.0" }, { "name": "dalcib.brackets-gulp", "version": "0.3.1" }, { "name": "tab-tags", "version": "1.0.9" }, { "name": "gruehle.markdown-preview", "version": "1.0.11" }, { "name": "adobe.brackets.extract", "version": "0.8.0-1747-release" }, { "name": "pflynn.goto_last_edit", "version": "1.0.1" }, { "name": "brackets-script-builder-and-framework-launcher", "version": "0.1.0" }, { "name": "jeremylee.brackets-smarty", "version": "1.0.0" }, { "name": "brackets-highlight-multibyte-symbols", "version": "1.0.1" }, { "name": "angularui.angularjs", "version": "1.1.2" }, { "name": "react-jsx", "version": "1.0.2" }, { "name": "ahmadnazir.brackets-emacs", "version": "1.1.0" }, { "name": "enturn.quick-search", "version": "1.1.4" }, { "name": "brackets-livereload", "version": "1.0.3" }, { "name": "brackets-file-tree-exclude", "version": "1.0.3" }, { "name": "brackets-beautify", "version": "1.2.0" }, { "name": "malas34.brackets-console-plus", "version": "1.4.8" }, { "name": "brackets-emmet", "version": "1.2.2" }, { "name": "brackets-jade", "version": "1.0.5" } ], "bracketsTheme": "monokai-theme" }

petetnt commented 8 years ago

Thanks @blackmiaool. Could you check if the issue still persists after disabling brackets-beautify (or by turning off Beautify on save (https://github.com/brackets-beautify/brackets-beautify#file-options-for-beautify-on-save) (with the regular hotfix enabled)

blackmiaool commented 8 years ago

"Uncaught TypeError: Cannot read property 'mtime' of undefined "

blackmiaool commented 8 years ago

@petetnt I didn't enable the "Beautify on save".

blackmiaool commented 8 years ago

@petetnt In console it shows that the "oldStat" is undefined.

petetnt commented 8 years ago

@blackmiaool Oh yeah, they can both be undefined at some point. Maybe try

if (stat && oldStat) { console.log(stat.mtime.getTime(), oldStat.mtime.getTime());}
blackmiaool commented 8 years ago

@petetnt I tried to remove all extensions but it still can't save. So I thought it's not extensions' problem.

blackmiaool commented 8 years ago

I tried to save several times, but only get 4 times output: 1458028177000 1458028175000 main.js:432 1458028179000 1458028175000 main.js:432 1458028198000 1458028175000 main.js:432 1458028199000 1458028175000

petetnt commented 8 years ago

Those look allright to me. Weird. I'll try to investigate this further.