pb-diff Help
pb-diff compares and merges PowerBuilder source code. It parses objects into their logical sections (variable blocks, functions, events, controls, DataWindow bands) and compares them section by section, so that a file which was reorganised but not changed does not read as a wall of differences.
New to pb-diff? Start with What pb-diff does and Getting started, then follow the tutorials, which use the Order Desk examples installed with pb-diff. Press F1 in any tab or dialog to open its own page, and use the search box at the top of every page to find anything else. Help ▸ pb-diff Help and the pb-diff Help shortcut in the Start menu open this page.
Getting started
- What pb-diff does Why a text diff fails on PowerBuilder, and what pb-diff compares instead.
- Getting started Installing, the two executables, the window, the three ways pb-diff runs, and where help is.
- Ways to open a comparison Every route to a comparison side by side: what it takes, what it opens and when to choose it.
Tutorials
- From the PowerBuilder IDE: see what you changed Make pb-diff the diff viewer of PowerBuilder's native Git or SVN integration, directly or through TortoiseGit and TortoiseSVN.
- Your first comparison A window, a menu and a DataWindow of the Order Desk examples compared, and the noise taken out of a comparison.
- Two releases of a library Every object of two releases compared at once, straight from the libraries or from a folder of exports.
- PowerBuilder 2025 Solutions What a Solution looks like to pb-diff, comparing and merging its sources, and a migration compared.
- Your first two-way merge Take a function and a deleted control back from the old release, and save an export PowerBuilder imports.
- Your first three-way merge Two developers changed one object from the same Base: Auto Merge, a conflict resolved, and the result saved.
- Automate with pb-diff-cli The headless tool for scripts, CI jobs and AI agents: the two rules, a first gate, and where the full reference is.
How-to guides
- Source-control clients pb-diff as the external diff and merge tool of TortoiseGit, TortoiseSVN, Git and other clients: the command lines, and names a client mangles.
- The desktop command line
Every switch
pb-diff.exeaccepts, what each command line opens, command files, and exit codes. - Pair renamed objects Tell pb-diff that a deleted row and a new row of a summary are one object under two names.
- Reports The five reports, the report tab, printing, the save formats, and the same reports from a script.
- Run pb-diff in CI pb-diff-ci on a build machine - copy one file, gate on what changed, keep the report, summarise it in the job, and check sources after a merge - with GitHub Actions, Azure DevOps and Jenkins pipelines.
- Check libraries for damage Find the damaged libraries of an application, a folder or a series of builds - what the check detects and what it does not, what each code means and what to do, and how to put it in a pipeline.
The windows
- File Compare The detailed two-way compare and merge of one pair: hierarchy tree, side-by-side source, minimap, navigation, filters, search.
- Three-way merge File1 and File2 against the Base both came from: the two rails, the three columns, the Merge Actions list, Auto Merge and every merge command.
- Compare Summary The per-object result of comparing two libraries, folders or lists: the rows, how they are matched, filtering and drill-down.
- File Selection The two lists a comparison of many objects runs over: files, folders and libraries, saved selections, and what a folder stands for.
- Library One library on a tab of its own, to look through, validate and export from.
- Line Compare Two single lines compared token by token or character by character.
- Clipboard Compare Paste two pieces of text and compare them without saving files.
- New Comparison The dialog that says what is compared with what: the paths, drag and drop, swapping rows, recent comparisons, and what it refuses.
- Select PB Object The dialog that chooses one object inside a library, so it is compared or merged without exporting it.
- Options Every option group and every option, with its default.
- Source-control setup The dialog that sets TortoiseGit or TortoiseSVN up to open pb-diff: what it writes, and how Remove pb-diff takes it back.
- Licence The window that starts a 30-day trial, activates pb-diff on this computer, moves a licence from another one, and says whether pb-diff is licensed and why not.
Explanations
- How merging works What the two-way and the three-way merge decide, the four places a control lives, the warnings, and exactly what a saved merge is.
- PowerBuilder object types What pb-diff shows for each kind of PowerBuilder object - windows, user objects, menus, functions, structures, queries, pipelines, projects and DataWindows - and what a merge takes of it.
- Project and build files The files that hold a PowerBuilder application together beside its objects - what each is for, what a change to it does to the application, and what pb-diff shows of it.
- Reading PowerBuilder libraries
What pb-diff reads in a
.pbl,.pbdor built executable, what it does with source, compiled and resource entries, and why it never writes one.
Reference
- Status Icon Legend What every status marker in the summary, the trees and the merge panes means.
- Keyboard shortcuts Every key a command answers to, and the keys that work inside a tab.
- Settings and profile files Where the options are kept, the portable alternative, and every file pb-diff writes for itself.
Troubleshooting
- Troubleshooting Symptoms and their causes: noisy comparisons, a client that opens the wrong view, libraries, Solutions, merges, and a window that went astray.
- Getting help and reporting a problem Report a Problem, the support portal and support@pbdiff.com - who is served, what to send and what never to send, and where security problems and payment questions go.
Other documents
Help ▸ Command-Line Tool Reference documents
pb-diff-cli, command by command. Help ▸ Release
Notes says what changed from one build to the next, and
Help ▸ About pb-diff links to the licence and
notices.