views:

77

answers:

4

I work on a large PowerBuilder project with code spread over 58 PBLs. As you can imagine, it's a pain to go through all of the libraries to check the source control status. Our VC tool, Serena VM /TrackerLink doesn't remove objects from the PBL when they're deleted from source control. They're usually harmless, but they come up in searches and cause me to waste time on them, since I just double-click the search result to look at the object and don't know it has been deleted from VC. Also, our build sometimes breaks when a developer forgets to add an object. I would like a tool that can scan the PBLS in a target and find objects that aren't in source control. I know I can write a program to do this with Orca, but I was hoping somebody's already done it. Anybody know of a tool for this?

+1  A: 

What we do at our shop is to use Ecrane PowerGen to do clean builds by extracting the objects from source control and recreating the .pbls. We can then start with that source, which ensures we are working with only what is in souce control, and that our CI server is compiling the same.

We've found PowerGen to be a crucial "missing piece" in our build cycle but I appreciate there is an extra licensing cost involved with PowerGen so this may not be possible for you.

Colin Pickard
Generally our developers have objects checked out so copying pbls from the bulid server usually isn't an option. It would work for an occasional cleanup though. There's still the problem of new objects the developer forgot to check in, and copying the PBLs will clobber them.
Hugh Brackett
+3  A: 

Take a look at Roland Smith's 'Virtual Library'

It has three different Source Control options that you can run for an entire workspace, or a specific target in that workspace.

  1. Objects Checked out to Me
  2. Objects Not Registered in Source Control
  3. Objects Checked Out To Others
Zerofiz
This sounds promising. I'll check it out.
Hugh Brackett
This is what I was looking for, thanks.
Hugh Brackett
A: 

One thing you can do is right click on a pbl and select "Add to Source Control". Everything that's not under source control will come up in the list.

Slapout
Too bad it won't work at the Target level. With 58 PBLs, anything that requires *me* to look at each pbl is a non-starter.
Hugh Brackett
A: 

At the risk of sounding like a hammer salesman trying to make everything sound like a nail, if you can export your source control files to a clean, temporary folder, there are two ways I'd look at doing it with PBL Peeper.

  1. App Compare: Load your local app on the PBLs Page (lots of documentation on how to do this in the documentation if you're stuck). Go to the Compare \ App page. Make sure the radio button is set to scan folders for export files, and drag the source control folder into the selected pane on the Compare \ App page. Hit the Go button in the toolbar (the "Play" icon). Anything that is not in the source control that is in the PBLs will be listed as "Added".

  2. File compare tool: Go to the Exports tab and dump your local PBLs to a similar temporary folder/subtree. Then you can use any directory comparison tool to compare the two subtrees. My current favourite is Total Commander, which will make it easy to see which files exist in the source control subtree and not in the local export subtree (Synchronize Directories and uncheck Duplicates, then uncheck the appropriate direction).

There are many ways to solve this particular problem. These are just another two.

Good luck,

Terry.

Terry
Yeah, I've used this brute force approach on past projects. You only need to do it once to convince yourself that you need a tool.
Hugh Brackett