[prodcommit] Support 'modules' file
The old CVS version of products files used a 'modules' file, where each line was the path to the module followed by the tag to use. This reintroduces this in the following way:
-
If 'prodcommit' is run with no parameters, it will do exectly what it did before, but also generate a 'modules' file and add this to the commit.
-
If 'prodcommit' is run with the parameter '-f' it will take the 'modules' file and update each submodule to match the tag specified in the file before doing the commit.
The advantages of this are:
-
Having the modules file makes it easy to do a human-readable diff between two versions and see a summary of which components changed and to what version.
-
It makes it easy to quickly change multiple components by editing the modules file and using 'prodcommit -f'.