-
Notifications
You must be signed in to change notification settings - Fork 384
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG] 修改文件过程中 快速频繁按 CMD+S 会报文件冲突 #2923
Comments
@erha19 这里push save task 前有 promise,会不会也有时序问题
|
时序问题的话放入 promise 队列执行似乎就行了 |
@geekeren 确实也有的,但是前端执行的路径我不确定是否只有这一处,可能从后端收口处理更直接 |
@erha19 后端及时保证了时序,但是保存动作到后端之前,前端就已经有问题了,那应该也不行吧,两个地方都得保证吧。 |
这里前端的响应结果最终是受后端影响的,如返回的
前端能保证当然也更好,印象中前端有做过类似的队列处理。 |
@erha19 尝试为 $saveByContent 加上队列控制,能保证 save之间不串扰,但是发现依旧不能解决问题。 在保存之前加了个 setTimeOut, 发现不加时序控制时,会报另外一个 FileOutOfSync 的错误,而不是 这个错误。 另外有个一个发现,当 server 进行重启时,期间进行一些编辑,恢复以后,这个错误尤其明显。 |
@geekeren 这个操作就是正常的文件版本判断,服务重启阶段的修改已经属于是不可控的外部修改,会出现版本不匹配的问题,也类似于(文件未保存情况下的外部修改) 我尝试复现看一下 |
@erha19 OK,先帮忙看看即使无重启也会报冲突的问题吧 |
@erha19 我把前端时序也加上,好像能解决. 现在不报冲突了 |
可以 PR 上来一起看下 ~ |
@erha19 你们 format代码是用的 prettier 吗。我启用了 format后代码都乱了 |
format 的哪个文件?我这里试一下 |
按理说我们是配置了 lint stage 的, commit 的时候会自动 format: https://github.com/opensumi/core/blob/main/.husky/pre-commit#L4 https://github.com/opensumi/core/blob/main/package.json#L70 |
packages/editor/src/browser/doc-model/editor-document-model.ts |
描述你的问题(Describe the bug)
复现路径(To Reproduce)
预期表现(Expected behavior)
环境信息(Environment)
The text was updated successfully, but these errors were encountered: