Revisions Process

The revisions process maintains a revision log for each revisions spec that includes the name of the DLL from where the XML came, ID of each revision, date of revision, and text for what was run. The deployment utility runs revisions in numerical order by filename. As each revisions spec is run, the revisions contained within the spec run in order by the ID attribute for the <DBRevision> element. If the revision log indicates that the revision has already run, it is skipped.

For example, when revisions run, DBREV1.XML is processed. With DBREV1.XML, the revisions specified in <DBRevision ID="1"> are processed. Then the revisions specified in <DBRevision ID="5"> are processed. After those revisions, DBREV2.XML is processed. Again, the revisions specified in DBREV2.XML are processed in order by ID. This continues until there are no more revisions.

When the deployment utility is run again, the utility checks the log as each file is processed. The utility only processes those revisions higher than the last revision processed for that file. For example if the utility were run as above, when the utility runs again, it processes the previous files, ignoring all of the revisions because those were already processed. When the utility encounters a file with new revisions, the utility processes the new revisions. When the utility encounters a file with new revisions numbered higher than the highest previously processed revision, the utility processes the new revisions. When the utility encounters new revisions numbered lower than the highest previously processed revision in the file, it ignores the revision.

We recommend you add new revisions files as you add revisions for new feature areas. When you add a revision to fix a bug with an older revision file, add a revision to the end of that file with a higher ID than all of the other revisions in that file.

Once you have created revisions specs, you compile them into a DLL and place the DLL in the Extend\Revisions folder. For more information about how to compile revisions into a DLL, see Compile Revisions to DLL.