See here for a detailed discussion on how PowerBuilder IDE integrates an SCC software for source control. This is a continuation of that post, about a specific implementation using PVCS. As mentioned there, PB uses Microsoft SCC API to integrate Source control functionality in. But, since PB stores objects inside a PowerBuilder library, which is a binary file, the source control function is not as direct, as you would in say Visual Studio. Like I said, you don’t want to checkin/checkout the binary file, but the actual objects inside the library.
When you work with Objects in PVCS from inside PowerBuilder, remember you are working with a 2 step process. PowerBuilder library (.PBL) contains the objects in binary format and PVCS will only understand (text) files at the File System level. So, each time you do any PVCS operation from within PB, you are invoking transaction between PB and File System and then File System to PVCS.
When you check in a new object in PB following steps happen:
1. PB exports out the object to corresponding text file format to the directory where the PBL is.
2. PB calls an API to add this file to PVCS.
3. Updates the status of the file on both sides.
When you Check out an object in PB for e.g., following steps happen:
1. An API call to PVCS makes it checkout the corresponding file – locks, exports it to the Workfile directory.
2. The workfile is then imported into PBL to replace the current copy of the object.
3. Updates status on both sides (locked/checked out etc).
So, if you have an object checked out in PB, chances are the file on source folder won’t be up-to-date with it yet, until you do some PVCS operation.