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:
Installer,
pb-diff-<version>-win-x64-setup.exe. It adds a Start-menu entry and offers three things you can decline: a desktop shortcut, registering.pbdiff-selselection files so that double-clicking one opens pb-diff with that selection, and putting the CLI on yourPATH. If you decline an option, the installer leaves no trace of it. You can install it for everyone or only for yourself. Installing for everyone requires administrator rights and makes the association andPATHentry visible to every account. Installing only for yourself requires no administrator rights and touches only your profile. Either scope supports a silent install:pb-diff-<version>-win-x64-setup.exe /VERYSILENT /CURRENTUSER /TASKS="associate,addtopath"Installing a newer version over an older one replaces it rather than sitting beside it: one entry in the Start menu, one in
PATH, one in Add or remove programs. Unticking an offer on an upgrade takes back what the previous installation left. Files the older version installed and the newer one no longer ships are removed; your settings are kept.Portable zip,
pb-diff-<version>-win-x64.zip. Unzip it anywhere, including a network share or a USB stick, and run it. Start it with--portableand it keeps its settings in asettings.jsonbeside the executable rather than in your profile; asettings.jsonalready sitting there is used in preference to the per-user one whether or not the switch is passed. That is the right choice for a shared build agent. See Settings and profile 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.
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
- Your first comparison, on the Order Desk examples installed with pb-diff.
- From the PowerBuilder IDE: see what you changed, to make pb-diff the IDE's diff viewer.