HarPB is a specialized utility for checking PowerBuilder source Objects in and out of CCC/Harvest. It handles the special requirements of checking Objects out to PowerBuilder Libraries (PBLs) and checking Objects in from PBLs. These operations are non-standard to most source control systems, because the PBL is a proprietary binary format of PowerBuilder. HarPB supports Harvest V5.1.1 and later.
Special Challenges to Controlling Source for PB Development
Controlling source for PowerBuilder development presents some special challenges. The most significant challenge is the PowerBuilder Library (PBL), which is where all development takes place.
During development a PB Application consists of a set of PBLs (the “Library List”) that contain PB “Objects”. PB Objects represent classes of software like Windows, Menus and Functions that are assembled into the Application. (PB deliverables consist of an executable (exe) and a set of PBDs (PowerBuilder Dynamic libraries) that are derived from the PBLs.)
The PBL is not a file that should be controlled with source control, because it does not have a simple text format and includes many Objects that may be modified independently. What should be controlled are the individual Objects that make up a PB application. The developer can check out one or more Objects to a PBL where development will be done, make modifications with PB, and then check them back in.
The source control interface must be aware of the PBL structure so that Objects can be imported into a PBL when they are checked out and exported from a PBL to a flat text file before they are checked in.
HarPB performs all the steps required in checking PB Objects in and out of Harvest. The steps are hidden so that to the user the Object is checked out of Harvest and appears in the PBL, available for modifications and similarly for checking in the Object. The user doesn’t need to know that the Object exists as a text file and is imported or exported when checking out and checking in.
HarPB presents only a view of the PB application, not of the file system. When you check out an Object with HarPB you indicate which PBL you want the Object checked out to. HarPB checks the Object out of Harvest to a file in a subdirectory of the directory where the PBL resides. From there HarPB imports it into the specified PBL.
Similarly when you check an Object in, HarPB exports the Object to a file in a subdirectory to the directory where the PBL is located. From there the text file is checked in to Harvest.