Welcome!

PowerBuilder Authors: Yeshim Deniz, Chris Pollach, Jayaram Krishnaswamy, Kevin Benedict, Avi Rosenthal

Related Topics: PowerBuilder

PowerBuilder: Article

Quma Version Control System

Quma Version Control System

QVCS is a multiuser, file-based source control system that comes in two flavors: QVCS and QVCS PRO. The QVCS PRO version includes IDE integration and works with the export files of PowerBuilder objects.

QVCS PRO features include all the basic Source Control Configuration (SCC) options that you would expect, including object isolation, versioning, PowerBuilder integration, archive coordination, good documentation, and tech support.

PowerBuilder Integration
QVCS PRO uses the Microsoft SCC APIs, and thus integrates with the PowerBuilder IDE. Once installed, the PowerBuilder popup menu from both the System Tree and the Library Painter has its source control options enabled (see Figure 1).

Object Isolation
When set up properly, QVCS PRO locks an object when a developer does a Check Out on it. That object can't be modified except by the person who has it checked out. Once that person does a Check In or an Undo Check Out, the object becomes available to other developers.

Versioning
The SCC Manager applies a label to all the objects in the archive at a specific time, usually just after the code freeze of a software release. Later, developers can check out the appropriate version of their objects based on the label they select.

Archive Coordination
Developers invoke the Get Latest Version (GLV) function in order to download the latest version of the archived objects into their working PBLs. This can be done at either the object or the target level.

The Show History option will display all the comments associated with each Check In of the object. This is an excellent way to determine if a particular object is up-to-date, and to indicate which version of the object is loaded in your PBL.

The Show Differences option invokes a utility called "Examdiff" in order to compare the local version of the object to what is stored in the source control archive.

Good Documentation
QVCS comes with a 200+ page document that is comprehensive and complete. It also comes with online help files, and the Web site has a "Frequently Asked Questions" page. Note that none of these files include any discussion of using QVCS with PowerBuilder.

Tech Support
Jim Voris is the author of QVCS/QVCS PRO and provides the tech support. All communication is handled via e-mail, and I've found Jim to be very responsive and most helpful.

Other Features
QVCS PRO includes some reporting capabilities and handles branching and merging. Our shop is not interested in the reporting or the merging capability of the product, and we use branching sparingly to prevent "object clutter" (too many versions of the same object). But the features do exist for those who require them.

Installation
The installation of QVCS PRO is a breeze. The Zip file expands into a single folder that contains every piece of the QVCS PRO functionality. I installed the code onto a shared network drive and added a temp file to be used exclusively by the QVCS PRO software. I then installed a mirror of this setup onto each developer's PC.

Note that since QVCS PRO is a file-based source control product, Paul Horan's recommendations on setting up your application directories are absolutely vital (see Reference section). Every developer must have his or her development folders set up identically, and each PBL requires its own folder. Listing 1 outlines how we organized our development folders. Listing 2 is an expanded view of that structure showing how the PFE libraries are placed.

Quirks and Workarounds
1.  Developers use e-mail to inform each other when objects need to be added, updated, or deleted. This minimizes the number of target-level GLVs that need to be done and minimizes the performance hit of using source control.

Doing a target-level GLV is cumbersome and time-consuming, but the cumbersome portion of that issue will be resolved in the next release of the product. Jim is also investigating implementing the new Sybase-sponsored SCC API extension that will reduce source code comparisons from the full source file to a single version number, which would significantly speed up this process.

2.  Alex Ryder of InfoTech created an initial set of QVCS PRO/PowerBuilder Online Help files, which he generously shared with me. Over time I have expanded these files and modified them to suit our needs as we learned better ways of using QVCS PRO with PowerBuilder v8.0.3.

3.  Occasionally you'll get a blank dialog box (see Figure 2). Alex says he never got this while using PB v8.0.1 but did see it with PB v8.0.3, so this appears to be a PB issue. Just click Yes and move on.

Pricing
The annual QVCS PRO license fee is $40 per seat. Yes, you read it correctly. No, this is not a typo.

Summary
Pros

  1. Integrates nicely with PB 8.0.3 with a few minor exceptions.
  2. Handles object isolation and versioning nicely.
  3. Has good documentation and good e-mail tech support.
  4. Supports branching and merging.
  5. Easy to use.
  6. Inexpensive.
Cons:
  1. Must check in objects from the QVCS interface.
  2. Target-level checkout and GLV (Get Latest Version) process is cumbersome. (The fix for this is slated for the next release.)
  3. There are a few minor quirks.
  4. Be sure to export your objects first.
Recommendations
If you don't have SCC reporting requirements, QVCS is the best bang for the buck on the market. It handles all the basic source control functions easily, and integrates well with the PowerBuilder IDE. Most of the problems with PB/QVCS processing lie on the PowerBuilder side of the equation.

It's true that PVCS does more than QVCS PRO and does many things automatically - like pushing new objects onto the developer's desktop, but QVCS PRO more than meets our needs, and does so at an extremely reasonable price. It's relatively easy to use and is an excellent choice if what you need is basic source control.

In my next article, I'll discuss how we implemented QVCS PRO into our shop.

References

  • Paul Horan's articles on using source control with PB8: www.sys-con.com/pbdj/archives2/0812/horan, www.sys-con.com/pbdj/archives2/0901/horan

    Quma Software, Inc.
    Web: www.qumasoft.com
    E-mail: [email protected]

  • More Stories By Olan Knight

    Olan Knight is a consultant with 20 years of full life-cycle software development experience, joyfully using PowerBuilder for the last 10 years! He is looking forward to migrating to PowerBuilder 9.

    Comments (0)

    Share your thoughts on this story.

    Add your comment
    You must be signed in to add a comment. Sign-in | Register

    In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.