2024-04-02 12:31 CEST

View Issue Details Jump to Notes ] Related Changesets ]
IDProjectCategoryView StatusLast Update
0006391Spring engineGeneralpublic2020-07-05 00:07
Reportergajop 
Assigned ToKloot 
PrioritynormalSeveritymajorReproducibilityalways
StatusresolvedResolutionfixed 
Product Version104.0 +git 
Target VersionFixed in Version104.0 +git 
Summary0006391: Spring.Reload no longer detects that files have been changed with an archive
DescriptionI understand /luaui reload and /luarules won't refresh the file list, but Spring.Reload should - otherwise we're back to having to restart Spring whenever we add a file which is awful for rapid development.
(This may also be causing some bugs, not sure what people expect Spring.Reload to do)

I think this was done as some kind of optimization when reloading the same archive multiple times, as commenting out https://github.com/spring/spring/blob/9108cae116d0bfd2d1f6529233499d7aadb90ba2/rts/System/FileSystem/VFSHandler.cpp#L345-L353 fixes it
Steps To Reproduce1. Start a game with an .sdd folder
2. Add a file "test" in the root of the game folder
3. write Spring.Echo(VFS.FileExists("test", VFS.ZIP)) in some widget and Reload Spring
4. Expected: true. Actual: false
TagsNo tags attached.
Checked infolog.txt for ErrorsIrrelevant
Attached Files

-Relationships
+Relationships

-Notes

~0020401

Google_Frog (reporter)

gajop asked me to comment on this because he might break ZK. I don't have any technical input to impart. I have noticed the issue raised here and find is fairly easy to restart spring on the rare times that I add a file.

I consider the bug relatively unimportant because players don't change their archives. If it can be fixed without increasing the menu->game load time for a sdd-less spring directory then go ahead, otherwise we hit a tradeoff between ease-of-development and player experience.

~0020402

gajop (developer)

Thanks for the feedback.

In my case with SpringBoard I normally add/remove files in .sdd based projects often enough for this to be a problem. This is user facing (the editor program is adding these files), and it's unfortunate that not even a Reload helps. For certain types of files I can just use VFS.RAW, but for widgets, gadgets and units/features I need Spring to be aware that they've been added.

I think the obvious solution is to keep these optimizations on for .sdz and pool-based archives but to remove them for .sdd folders.

~0020451

Anonymous (viewer)

Fix 6e342641f55d176194ccfae3dbf43657325c17cc committed to develop branch: fix 0006391, repo: spring changeset id: 37905

~0020452

Anonymous (viewer)

Fix ffcc8d2186c483bb65ad6aee1f60c084f87ee0e6 committed to maintenance branch: fix 0006391, repo: spring changeset id: 37906
+Notes

+Related Changesets

-Issue History
Date Modified Username Field Change
2020-05-10 18:14 gajop New Issue
2020-05-10 18:15 gajop Product Version => 104.0 +git
2020-05-10 18:15 gajop Checked infolog.txt for Errors Irrelevant => Irrelevant
2020-05-11 02:55 Google_Frog Note Added: 0020401
2020-05-11 17:52 gajop Note Added: 0020402
2020-07-05 00:04 Changeset attached => spring develop 6e342641
2020-07-05 00:04 Anonymous Note Added: 0020451
2020-07-05 00:04 Changeset attached => spring maintenance ffcc8d21
2020-07-05 00:04 Anonymous Note Added: 0020452
2020-07-05 00:07 Kloot Assigned To => Kloot
2020-07-05 00:07 Kloot Status new => resolved
2020-07-05 00:07 Kloot Resolution open => fixed
2020-07-05 00:07 Kloot Fixed in Version => 104.0 +git
+Issue History