A system includes a memory storing program versions in a program history and a processor in communication with the memory. The processor is configured to store program components of a version of a program in a first directory associated with the version and select first and second candidate versions of the program from the program history to compare to a test version of the program. The processor is also configured to compare the first and second candidate versions to the test version, estimate an amount of work to regenerate the program from each of the candidate versions, and select the candidate version associated with a lesser amount of work. Additionally, the processor is configured to regenerate the program using components from the selected candidate version to create a regenerated program, store components of the regenerated program in a second directory associated with test version, and test the regenerated program.
展开▼