Let's walk the scenario out and see what can happen - and also work out if we have a bug. <shock!, horror!>
Seriously - there has been a bug recently found and fixed in this area - fix #3788 - where when you Save As or Open a new layout filename the current checkpoint was not wiped out, so that if you don't make enough changes to trigger another checkpoint but quit/fail AND when you restart you ask for the checkpoint to be used, the layout will have the new name BUT the contents will be the old layout file. A quick Save at that point, and the "new" layout file is toast, overwritten by the old file checkpoint!!! No Bueno!
- How is it supposed to work?
At any one time XTrackCAD is working with one filename. When you Save As... you are writing out a new file with all the changes up to current with a different name and you are changing the current filename it is using. Open also changes the name. So that's item 1. Save As is abandoning the old current (whatever state it was) and making a new file current.
Now if you had Saved the current layout just before at that point - both the current layout file and the Save As... layout file will be identical. And that could happen in a couple of ways -
- Emergency Escape Hatch
There is a sneaky way to rollback changes if enough time has not past (enough changes haven't been made to the same file) as long as Options->Preferences->Checkpoint Frequency is non 0. Every checkpoint is a full layout save and there is a rotating set of prior ones that get saved to when the new one gets written. They live in the working directory and have names like your_layout_name.xtc_xx.bkp and five are kept (xx=01 to 05). You will need to look at the timestamp to know which is newest to oldest as the numbers wrap around. To recover any particular one, copy/move it to your own directory and rename it to your_recovered_layout_ name.xtc. Then Open it. The file "xtrkcad.rc" is always the last/current checkpoint file and is newer than the .bkp ones and a similar rename trick works on it.
Auto_Save is new to V5.2. We previously had checkpoint (with only one checkpoint) intended to try and cope with failures, but folks were not Saving for extended periods and so ending up losing work. They had an expectation that the program was like Word or Google and would "take care of that". I'm not sure we are quite all the way there because of the issue that you illustrate that a different mental model is the one where the user wants to use save prior versions of the layout as backups but they would prefer to have the same layout filename as current rather than swapping it and be able to rollback by selecting old versions. It may be that we should support a way of auto-copying the saves out as explicit versions with timestamps so that whether the layout is manually saved or auto-saved there is a version copy preserved for as long as the user wants. Then we could support opening prior versions in some way to rollback changes to that point. Anyone with thoughts on this area would be helpful.