Skip to content
pb-diff Help

Getting started

pb-diff runs on Windows 10 or 11 and Windows Server 2016 or later. This page takes you from the download to an open window, and says where everything is once you are there.

Installing

The executables are self-contained, so you do not need to install the .NET runtime, PowerBuilder or ORCA. pb-diff arrives two ways, built from the same files:

A note on the signature

Signing is a property of the exact release, not of its file name, which is the same for signed and unsigned builds. The release notes state whether a release's installer and portable payload are Authenticode-signed, and publish the SHA-256 of each file.

For a signed release, open the installer's Properties, select Digital Signatures, and verify the signer and timestamp before running it. Windows then shows the verified publisher when it asks for permission to install. A signature proves the publisher and that the bytes have not changed; it does not guarantee that SmartScreen's reputation-based warnings disappear immediately.

A deliberately unsigned prerelease says so in its release notes. It has no Digital Signatures tab, Windows can show an unknown-publisher warning, and the SHA-256 is the integrity check available:

Get-FileHash pb-diff-<version>-win-x64-setup.exe -Algorithm SHA256

Compare the result with the value in the release notes.

Uninstalling

Uninstalling removes the program, the Start-menu entry, the .pbdiff-sel association and the PATH entry it added, and keeps your settings and your recent list in %APPDATA%\pb-diff\. Reinstall later and everything is as you left it. If you want them gone too, answer Yes to the question the uninstaller asks (the default is No), or run it as unins000.exe /VERYSILENT /RemoveUserData=1. A silent uninstall that says nothing removes nothing.

The three executables

Executable What it is for
pb-diff.exe The desktop application: comparisons, merges, libraries, reports and options. Also the executable a source-control client or the PowerBuilder IDE is pointed at.
pb-diff-cli.exe The headless command-line tool. No window is ever created; results go to standard output as text or JSON, with stable exit codes. This is the surface for scripts and AI agents.
pb-diff-ci.exe The tool for build machines: the object-level commands of pb-diff-cli, with no licence and no network. It says which objects changed and which sources are broken, never their content. See Run pb-diff in CI.

All three produce the same comparison results when given the same inputs and compare options.

The window

Everything pb-diff opens is a tab in one window: a comparison, a library, a merge, a report. There is one menu bar and one tool bar, and both belong to the application rather than to the tab: the menu offers every command pb-diff has, and greys out the ones the tab in front cannot carry out.

The tool bar works the same way. It begins with the three commands that mean the same thing whatever is open (New, Open and Refresh), and the tab in front adds its own after them, beyond a thin vertical rule. Change tab and that part changes with it. Within the bar the groups always come in the same order: what the tab can do, then its filters, then the change navigation, then its search box. Every button shows its name beside its icon, and its tool tip says what it does and what it acts on. When the window is too narrow for all of that, the buttons first give up their names and show their icons alone, the four change-navigation buttons before the others; the tool tip still says what each one is. Only when even the icons do not fit do commands move, one at a time and the last first, under the chevron at the right-hand end, labelled More commands, rather than going undrawn. Edit ▸ Find (Ctrl+F) opens it when the search box is there, and a command under it keeps its shortcut.

The status bar carries what happened and the counts of what changed. Its right-hand end holds two positions on tabs that have changes to walk through: Changed item 4 of 17, and beside it Change 2 of 6 , which shows where you are inside the current item. Ctrl+Tab moves between tabs and Ctrl+W closes one.

Options ▸ Appearance chooses between following Windows, light and dark. Accepting Options applies the choice at once, including to tabs that are already open, and remembers it.

pb-diff comparing two versions of the PowerBuilder window w_order_entry. The hierarchy tree on the left, with Only Changed Items on as every comparison opens, lists the changed variables, prototypes, functions and the cb_save control with their change markers, and the function wf_total is selected. The Old and New panes show that function side by side: green added lines that reject an out-of-range discount and skip cancelled order lines, a red deleted debug message line, and yellow modified lines where Truncate becomes Round and the total display moves to a new function.
Two versions of the w_order_entry window compared structurally. The hierarchy on the left opens on the changed items only, and the selected function wf_total is shown Old beside New, with its added, deleted and modified lines marked. Select the image to view it at full size.

The three ways pb-diff runs

Studio

What you get when you launch pb-diff.exe from its icon with no file arguments: the full application, with comparisons, libraries, three-way merges, reports and options, as many of them open at once as you like. Launched with nothing to do, it opens an empty window with a line saying how to start. Start from File ▸ New Comparison (Ctrl+N, also on the Compare menu), or drop two files onto the window; Ways to open a comparison lists every route.

Two settings can fill the window for you. Reopen the comparison left open, and the last file selection , on by default, reopens the comparison that was in front when you last closed pb-diff; a comparison whose tab you closed before exiting is not reopened, and neither is one a source-control client opened with -SDI. Start-up sheet, which opens nothing by default, can open a File Selection tab or start a three-way merge instead. Files named on the command line beat both. See Options.

SDI

pb-diff.exe -SDI with files on the command line opens one primary comparison, in the same window Studio uses. This is the mode a source-control client or the PowerBuilder IDE should launch: closing the comparison, or the window, ends the session, so the client can carry on. A library summary opened this way can still open its objects as detail tabs, and reports open beside them. An unrelated comparison is refused, with the reason in the status bar. See The desktop command line.

Headless

pb-diff-cli.exe. There is no user interface at all, hidden or suppressed, so it cannot block a build waiting for somebody to dismiss a dialog. See Automate with pb-diff-cli.

Getting help

F1 opens the page for the tab you are in, and in a dialog the dialog's own. Help ▸ pb-diff Help opens the contents of this Help, as does the pb-diff Help shortcut installed in the Start menu. Every page has a search box at the top.

Help ▸ Keyboard Shortcuts lists every gesture, and Help ▸ Status Icon Legend explains the markers beside changed items, which is worth reading once before your first merge. Help ▸ Command-Line Tool Reference documents pb-diff-cli, Help ▸ Release Notes says what changed from one build to the next, and Help ▸ About pb-diff says which build you have and links to the licence and notices.

Next