On my dev drive (a windows partition) a snapshot is made every 15 minutes & replicated off-site. I can mount 3 weeks worth of individual 15 minute images. And of course I have that neat build step that saves my project every time I debug. It’s not perfect, but I can afford to lose 15 mins of work.
Even a sizable USB flash drive (there are tiny 64Gb or 128Gb ones the size of a penny, which can be left in the machine) can be used as a Time Machine on the Mac.
Did you save it again after you found out it’s missing some items? If you did not save it again, then what is the size of the damage project? It may still contain the data but the IDE fails to read it (and won’t tell you, probably).
In that case, I might be able to help. Open a private conversation with me and we’ll see, or email me at tempelmann@gmail.com
BTW, the first successful program I wrote was a backup program, as I already learned from my friends owning Apple ][s, while I could hardly afford a C-64. So my program would back up your work from a floppy disk. Little did I realize it could also be used to quickly copy “proctected” games. Boy, was that program popular!
On Windows I use TortoiseHG for the source control, my backup service is CrashPlan, which has 2 lists in it, one for a backup to the Cloud and the other for a backup to an external Drive. And I manually make a copy to a Cloud drive just as a precaution. Rewriting code because it wasn’t backed up just isn’t in the budget.
I recommend you to use SpiderOak ONE. You can yet 2GB for free (enough for my projects).
It’s especially useful if you have several devices on which you develop. I just put all my code in SpiderOak’s sync folder. Yes, that works just like Dropbox. But Dropbox syncing is always realtime. So if you edit you files a lot during developing, then Dropbox is constantly syncing. Not very efficient for CPU and battery. Where SpiderOak shines is that you can change the syncing process from realtime to schedule-based, like eg. every 5 or 10 minutes (longer intervals are possible). Works great for developing purposes.
Also, it’s good to know that SpiderOak keeps deleted files and unlimited file versions (!). If I made a mistake I can always revert to a previous version.
Yes, I really like SpiderOak. And no I’m not affiliated with them ;).