Source Control Interface (SCI)

Included with this release of PxPlus are a number of new utilities designed to be used with the open-source source control system WINCVS. WINCVS is a windows based source control system that allows a developer to track changes to source and binary files. It includes a number of feature that allow for eacy tracking and merging of multiple changes from multiple programs. It can be obtained from www.wincvs.org and is subject to the terms of the GNU/GPL license.

CVS (the backbone of WINCVS) provides a secure and reliable way the track changes and manage source changes. WINCVS is a windows interface to CVS. Installation instructions can be found at various web sites.

Background:

The Source control interface for PxPlus provides for automatic generation of source text files for programs and screen libraries. Whenever a program is saved or NOMADS screen updated, the system will look for a ".pluscvs" file in the directory where the updated program/screen was located. This file will contain the location of a "Text Source" directory into which the system will output a text copy of the change.

When using the CVS system, these text files are the files that you will be saving the to source control system. When using this facility you will have both an "Application" version of your programs/screens on your PC and a "CVS source text" version. As you make changes to your programs and screens, the system will automatically update the text files so you can subsequentially check them into the source control system.

Both the CVS source directory and the Application directory point to each other. The Application directory points to the CVS Source directory by ".pluscvs" files imbedded in the application directory. The CVS Source text directory has ".cvsplus" files in its hidden "CVS" subdirectories. These files need to be kept in sync -- a process that the PxPlus utilites will perform for you.

Direct running/editing:

When programs are kept in source text form, the files will have a ".pvprg" suffix added to the end of their file name.

When a screen library is converted to source text, the library name will be used to create a sub-directory in the source directory and each screen will be placed in an individual file with a ".pvpnl" added to the screen name. In addition a special "librarydefault.pvpnl" file will be created with the library default information.

Passworded Programs:

Normally in a development environment the programmer know the passwords for the program (otherwise they wouldn't be able to change it) thus the source text files can contain clear text of the programs without worrying about security breaches.

The system handles passworded programs one of two ways -- if when the text file was initially created it contained clear text the system will automatically save the program in clear text to the source file with a PASSWORD header that has an encrypted value of the password. This means that when reconverting the program from text to object code the password can be automatically applied.

If the source control file contained program object code then the password program is saved as object code. Saving the program as object code limits the ability to view changes within the source control system.

Whenever a SAVE command is issued from the command line of PxPLUS, the system will append "+CVS" to the end of the output line to advise the programmer that a copy of the source was sent to the CVS source directory.

Installation of PxPlus utilties

Once you have installed WINCVS on your system, run "*plus/proj/setup" to add the PxPlus menu items to the Macro menu selection. After the setup has been run the WINCVS Mactro menu should contain a PxPlus sub-menu with 4 entries.

The setup program attempts to locate the WINCVS software on your system in order to determine where the macro libraries are located. This process generally will work if WINCVS has been installed correctly however should it fail it will ask you to tell it where WINCVS was installed.

As of this writing only versions 1.3 and 2.0 have been tested.

PxPlus Macro utilities:

Four utlities currently exist in the PxPlus WINCVS interface.

a) Update
This utility can be run on a directory or single file to update the Application target directory with any changes from the CVS system.

b) Extract to CVS
This utility can be run on an Application directory to initially convert programs and/or screens to CVS text files. During the extraction process unknown file types will be copied asis to the CVS target directory. When a password protected program is encountered the system will prompt for the password. If you give it the proper password the program will be converted to clear text and copied with its password header. If you don't supply the password but press the Copy Asis button the program will be copied in binary form. Since generally it is assumed you want to have the source control system maintain source, the Extract process maintains a list of passwords you supply during each run and tries the same password of subsequent programs. This means if all your critical programs have the same password you will only be prompted once.

c) Define Target Application
This utility should be run once you download an new application or directory from you CVS server. It sets the .pluscvs and .cvsplus files in the CVS and Application directories.

d) New Program/Panel
This utility is used to create a new text file and launch the appropriate editor when creating a new program/panel.

File suffix associations:

The CVS setup program (*plus/proj/setup) not only will have added the PxPlus menu to the Macros menu in WINCVS, but it also will associate the file suffixes ".pvprg" and ".pvpnl" with PxPlus. Once it has been run from the standard windows explorer you can right click and edit the file and the system will automatically allow you to edit the program/panel in the Application directory. Changes will be recorded both in the Application directory and the CVS source directory.

In addition to EDIT you can also "OPEN" the file. If opening a program (suffix .pvprg) the system will change to Application directory and try to run the program specified. If opening a panel the system will also change to the Application directory and try to "Process" the panel specified.

This provides an easy way to edit/run program directly from the Windows explorer screen and/or the WINCVS screen as pressing ENTER on an entry causes WINCVS to "edit" the entry.

Open Source considerations:

In keeping with the spirit of the open source community and GPL/GNU licensing PxPlus has provided the source for its interfaces to WINCVS under the terms of the GPL license. This modules can be distributed freely to your clients however the original copyright remains with PVX Plus Technologies.

The programs and utilities covered by the GPL agreement are those programs in the *plus/proj subdirectory in the standard PxPlus release for Windows.

While we will be continuing to enhance this interface in future versions, we look forward to your feedback. If you wish to supply any additional changes or enhancements to the utilities, we will be attempt to add these to the generate release as approriate.