The flmake reproduce command is the key feature enabling the total reproducibility of a FLASH simulation. This takes a description file (eg flash_desc.json) and implicitly the FLASH source and project repositories and replays the setup, build, and run commands originally executed. This is useful for testing and verification of the same simulation across multiple different machines and platforms.
Reproduction works by, for each command, cloning both source and project repositories at a the point in history when they were run into temporary directories. Then any local modifications which were present (and not under version control) are loaded from the description file and applied to the cloned repos. It then copies out the run control file to the cloned repos and performs and command-specific modifications needed. Finally, it executes the appropriate command from the cloned repository using the original arguments provided on the command line. Therefore flmake reproduce recreates the original simulation using the original commands (and not the versions currently present).
USAGE:
flmake reproduce [options] <flash_descr>
Reproduces a flash history by checking out previous versions of the code and re-executing them with the original values. Note: it is highly advised to run flmake clean 3 prior to reproduce.