Being an applied ML PhD student, I often find myself having multiple versions of files and scripts towards the end of each research cycle. When I'm at the point of writing a paper for submission, it gets difficult to back-track and find the earlier results or have difficulty running the earlier experiments as files might have changed. I've been trying to find a way to solve this problem, but the closest I could get to a solution was amie.ai. Due to the product still being in early release, it isn't quite what I'm looking for. The use of Jupyter Notebook does not help much either. I wrote up the requirements as to what might work to solve this problem (https://github.com/fazalul92/ProtoPypelines), but wanted to make sure if there is anything currently available that can solve it.<p>To be more specific, at the very least the following features would be helpful:
1) A tree structure to organize the different changes or "flows" within the code.
2) Being able to execute from a cell/line of code such that all the preceding lines of code will execute. (only the nodes leading up to that cell/line)
3) Versioning of files so that new child-nodes grow from the point at which the change was made.<p>So my question is to those who do rapid prototyping and/or ML research (or anyone else who might have found themselves in similar situations), What do you do to keep track of your earlier work?