Review of VCS/3000 from Diamond Optimum Systems
Shawn M. Gordon
Last month I reviewed DOC/3000 from Diamond Optimum, and this month I will be reviewing VCS/3000 (Version Control System) from the same company. The two products are complimentary, and work together quite nicely, but they also work just fine on their own.
Version Control is one of those things that most programmers hate, and is usually not implemented particularly well, which is why the programmers usually hate it. However the first time version control saves you from colliding with another developer, or allows you to go back to a previous version to recover some bit of code, you will be happy you put up with it.
VCS/3000 provides advanced Software Configuration Management (SCM) functionality across distributed heterogeneous platforms, such as HP3000, UNIX and MS Windows. For the purposes of this review we will limit our scope to the HP3000, and the MS Windows Client interface. I ran VCS on my HP3000 series 925 using MPE/iX 4.0, my PC Client is a 486 with 12Meg of RAM running MS Windows 3.1.
VCS/3000 can essentially be divided into three major categories, see Figure 1 for an example of the main screen;
2. Version Control
3. Audit Trail
First let’s cover some of the Configuration options that are available. You will first want to define your “Areas”, this is the locations of the files you will be dealing with for development, testing, production, etc. This includes the NODE of the computer on the network. You can specify the variable $INPUT on the group and account names so that they can be specified during the file transfer, or $LOGON so that it will use the current logon you are using, or you can hard code these values. You will also define an ARHCIVE path that will contain the old generations of the changed production files.
Next you would configure “Paths”, this connects two “Areas”, for example you would connect DEV as a from path, to a PROD that is a “to” path. This is used for the checkin and checkout processing, passwords, and location variables can also be applied to Paths. There are various other Global, and Cleanup configuration options also available.
Now where the use of VCS comes in is in it’s ability to check software in and out of production. The key to checking source in and out is controlling access to the source. Once a file is checked out, VCS will now allow another copy to be checked out until the file is checked back in, or and “emergency” arises, or if you want to
make a “read only” request.
When you check a file back into VCS, the old production copy is saved under a unique name in the archive group that you defined in the “Area Definition” screen. The old copy of the source is removed from the system, the new version is copied back in, and t
he system can optionally execute per-defined scripts to compile, build a program file, and place it into an executable area.
One of the nice options in VCS is that all file transfer requests are logged to it’s data base. The data base can be easily analyzed using the Audit Trail module. This module allows you to quickly identify all transfers requests associated with a given file, date, programmer, project, version, etc.
There is also a File Comparison option (see Figure 2) that allows you to compare two files quickly for differences. This can be vital when you are trying to figure what changed between two files, and VCS does a good job of it.
A nice add on to the product is it’s Project/Problem tracking module, see Figure 3. This example shows a snapshot of the Client interface. I haven’t talked much about it at this point, but the client interface works across multiple servers, MPE, UNIX (various ones), and allows you to have a consistent look and feel for your SCM across the entire enterprise.
The Project/Problem Tracking allows you to configure resources, and projects, and link them to requestor’s, and allows them to be accepted. The idea being that when Joe works on the A/R aging report, you would track who made the request, how much time Joe spent on the project, and what was estimated in terms of time, and who signed off on the project when it was done. This information can be used to trend who is making use of the IS resources for budgetary reasons, or for implementing a charge back for personnel. It’s a real good idea for a software shop that has multiple programmers and projects, this helps see where the support dollars are going.
Synchronization between source and object code is critical, you want to make sure that you have compiled and implemented the last version of the source you updated. VCS has a sophisticated ‘tagging’ mechanism that allows you to set these parameters up so that they are automatically executed. You can then run reports to check the current synchronization state of your environment.
Distribution of the software is usually the final, and most important step. VCS helps you out in a few ways here. An authorized user will initiate the install process with a single command. VCS will put in the new software, and keep a copy of the old software, that way if you do have problems with your code you can have VCS quickly reinstall the old version. VCS maintains a comprehensive audit history of what was changed, where it went, and who do it.
As you can see from what I have covered here, VCS handles all your standard SCM concerns, as well as several others.
Usability (also installation)
The installation is very clean and easy. Do a restore of everything with the CREATE option, and then just run a program that fixes everything up for you. While the interface looks similar to the one in DOC/3000, it is done entirely in Block Mode (unlike DOC), thus providing a more consistent, and easy to use interface.
VCS is a solid application, no program aborts, or any other types of problems. Source was moved around and handled as expected.
The performance of the configuration program is pretty much instantaneous, the File Comparison tool is also very quick. The process of checking in and checking out files is dependent on the size of the file being copied, but in general source code doesn’t get much larger than a few thousand lines, so performance here is also very good.
Supportability (including Doc)
Support from Diamond Optimum is excellent. There is a short 16 page tutorial manual to get you started, and a 120 page reference manual to fill in the rest of the details. Both manuals are well layed out, and easy to read. All and all, support and documentation is well done.
Both the Client software, and the host based programs include very extensive on-line help. The Client side uses standard Windows hypertext help, which makes for a simple to use interface.
Like I said at the beginning, most programmers rebel against having a version control system in place, but there are huge advantages to making effective use of one. VCS is well written, and fairly painless to use, at least in relation to other version control systems I have looked at over the years. The integration with the Doc/3000 product makes for a very robust source management system, not to mention the client/server interface, and ability to support multiple hosts across the network. To fully take advantage of VCS will require some thought, planning and time
The Client interface makes VCS even easier to use, and the support for multiple servers from a single client is a great boon. I should also mention that VCS includes a copy of Compress/3000, which does some very hard core compression of your files, if you want, to help conserve on disk space.
If you are a shop that is doing a fair amount of coding, and don’t have any versioning, or cross referencing system available, you should definitely take a look at the one two punch of VCS and DOC from Diamond Optimum. While it’s not a cheap investment, it could very well save you in the long term.
VCS/3000 version 3.10
Diamond Optimum Systems
22801 Ventura Blvd., Suite 105
Woodland Hills, CA 91364
Web page www.DiamondOS.com
Software is $6,000 regardless of CPU with the first year support included, support is 15% every year thereafter. Call, write, fax, or email to receive a free demo.