Hi Ian.
Maybe you can suggest a solution to this: Each iteration of a source file in an MPLab project overwrites the previous iteration upon building. For an alternative file system, consider the way Eagle labels an iteration of a schematic file as s#1, s#2...and the current one as sch. Thus, with Eagle, it is easy to back-step quite a way to get to a previous version.
I prefer the Eagle approach, and for MPLab, my work-around has been to save each draft assembly file as xxx_nnn, where nnn is some sequential identifier, like date or simply sequence. I then go to the project tree and add or remove the files to make the newest file the source file and build. It is complex and I don't do it for every little change, but if I add or delete a large section of code, I go through the task so I can always return to the last working version easily.
Is there another, simpler way to get the same result within the MPLab project structure?
John