Timedog: open source command line tool for creating project restore points

Timedog is a command line tool that watches your working directory for changes and creates restore points. It’s less than a week old and wholly untested on Windows, but I’ve been using it on my Mac while I develop and it’s helped me avoid redoing work several times. It’s also particularly useful for identifying steps to reproduce crashes. In any case, here’s how you use it:

  1. Get it from GitHub - piinecone/timedog: Timedog travels back in time to restore your files
  2. Follow the installation instructions (post here or on github if you’re stuck)
  3. timedog watch 60 to check for changes / create restore points every 60 seconds
  4. timedog list to list all possible restore points
  5. timedog restore 2 to restore your working directory to the restore point #2
  6. timedog clean to delete all restore points (backups use symlinks where possible to preserve disk space, but you’ll still be using at least 2x the space your project)

If you encounter a crash that corrupts your files, timedog list and timedog restore 1 (or whatever) to get back to the last known good state. You can then identify the specific steps to reproduce the crash and create an archive of the project in its pre-crash state, as well as avoid the steps that cause the crash and continue development. I’m fond of not losing work and helping the Epic devs better identify crash cases.

I’ve been encountering a lot of crashes using Blueprints lately. I haven’t been able to determine the specific things I’m doing wrong, or which Blueprint features are unstable, so it’s been difficult for me to avoid crashing. Often enough, a particular Blueprint will become corrupt and I’ll lose a day or more’s worth of work (depending on whether or not the crash coincided with a nice commit point). My bug reports are essentially useless because the steps to reproduce them are a best guess.

There are a lot of shortcomings with the tool at the moment but I’ll be improving it constantly. I will also ensure it works on Windows soon, I just haven’t gotten to it yet. It will be the first thing I do the next time I work on my PC. Feedback, comments, snacks, and pull requests are welcome.

Very cool, I’ll have to give this a spin on windows.