One of the problems I often encounter is that of poor data provenance.
When I do research I continuously make modifications to my code and rerun experiments. Each time I'm faced with a number of questions, such as: do I save the old results somewhere, just in case? Should I include the parameter settings in the output filenames or perhaps save them in a different file? How do I know which version of the script was used to produce the results?
I've recently stumbled upon Sumatra, a pretty lightweight Python package that can capture Code, Data, Environment (CDE) information that can be used to track data provenance. I like the fact that it can be used both from the command line and from within my Python scripts and requiring no GUI. The downside is that the project seems inactive and perhaps there's something better out there.
My question is: what is a good lightweight data provenance solution for my research? I'm coding small projects mostly in Python in the terminal on a remote server over SSH, so a command line solution would be perfect for me.
EDIT: I have stuck with Sumatra. When I posted this question I didn't look into the web interface yet, but that turns out to be a unique selling point. It displays a very detailed overview of the experiments, capturing not only the state of the data and code, but also the Python environment (package dependencies and versions!) and platform information (architecture and kernel version!).
EDIT: I've updated the subject of my question to emphasize that I'm mostly concerned about provenance.