Oracle SCM – the Software Configuration Manager – provides the backend source code control services for Oracle Designer. It offers among other things functionality for Version Control: Check In, Check Out, Branching and Merging and it records Check In/Out notes, Version Labels and ‘version events’. In comparison with several other tools for version control, it has a few oddities or lacks some functionality that might have been very handy. It turns out that most of that functionality can be created fairly easy, with additional triggers on the Oracle SCM tables. I have demonstrated in a previous post how two of these additional pieces of functionality can be implemented: Building Check In protection into Oracle Designer/Oracle SCM – Check In only by the user that did the Check Out. I intend to write further articles to demonstrate implementations of all others enhancements listed in this post:
Label | Event | Object Level | Workarea Level | Comment |
Check In only by Check Out-er | Check In | * | * | With multiple users in a workarea, any user can check in objects, not only the person who did the check out. We could change that behavior as to allow only the Check Out-er to do the check in. Has been implemented in Building Check In protection into Oracle Designer/Oracle SCM – Check In only by the user that did the Check Out |
Check In only with (proper) notes | Check In | – | * | |
More control over Version Label generation | Check In | * | – | Allow user to influence generation of version label through hints in check in notes such as <MAJOR> (1.3=> 2.0) and <MINOR> (1.3=> 1.3.1) |
Send an email to interested parties | Check In | * | * | Allow users to register interest in the check in of an or any object (in the workarea); when such interest is registered, an email is sent upon check in |
Update Version Label after check in | * | – | Use a ‘fake’ check out to update the version label of an object that is already checked in | |
Update Checkin Notes after check in | * | – | Use a ‘fake’ check out to update the check in notes of an object that is already checked in | |
Check Out is not allowed if the object version is already checked out | Check Out | * | * | Implement a really exclusive check out or lock; note: check out with lock in Oracle SCM only ensures that the first check out-er is the first to check in |
Changes are only allowed by the user who did the check out | * | * | With multiple users in a workarea, any user can make changes to Checked Out objects, not only the person who did the check out. We could change that behavior as to allow only the Check Out-er to edit the checked out objects. Implemented in Building Check In protection into Oracle Designer/Oracle SCM – Check In only by the user that did the Check Out |
|
Undo Check Out only allowed by the user who did the Check Out | Undo Check Out | * | * | With multiple users in a workarea, any user can Undo Check Out for objects, not only the person who did the check out. We could change that behavior as to allow only the Check Out-er to do the Undo Check Out |
Move an object version to another branch | * | – | When an object is checked in, it is checked in on a certain branch. When the check in is complete, the object version normally can not be moved anymore. We can use a fake check out that really will move the object version to the tip of the specified branch. | |
Check Out on a branch | Check Out | * | * | Oracle SCM does not have the notion of checking an object out to a branch. The branch assignment is only done during check in. However, we can extend the check out behavior to allow the user to specify in the Check Out notes which branch he wants to start working on. The check out would then implicitly perform three steps: check out the object, check it in on the designated branch and check it out again. This could be workarea setting. |