Everthing New in GitBrowser This Week
Sooo many new things in today's GitBrowser build .309; it's hard to even know where to begin... Let's start with the biggest ones.
Everything has feature parity across all three (three, you ask, yes three!) platforms.
Native diff engine and Diff sheet, based on FireCodeEditor
GitBrowser now comes with its own native diff sheet that allows you to see changes in your files visually. For local changes, the right pane remains fully editable, so you can make minor adjustments before staging, right then and there.
When a file is partially staged, you will get a three-way view – the original on the left, the staged version in the middle, and the unstaged version on the right (and the right is still editable, of course).
Native Merge Conflict Resolution sheet
Also new is a native merge UI. When a merge fails with conflicts, rather than having to fall back to the command line, GitBrowser now lets you review and fix the merge conflicts in a convenient Resolve Merge Conflicts Sheet with a three-way diff and access to base, original, and your fixed version in the center pane.
Even more exciting, you can leverage CodeBot to try and resolve merge conflicts for you. CodeBot will look at the conflicting files and the surrounding broader context of the changes, and find the best solution to address the conflicted files – where possible. Of course, you get to review and approve everything, and can manually reject or improve on the merges CodeBot suggested.
You can read more about the new Merge flow in this dedicated post.
Explain!
Need a summary or detailed explanation of a commit, or of your current staged or unstaged local changes? You can now ask CodeBot to handle that for you.
Explain is available everywhere it makes sense. Right-click a previous commit, a selection of local files, all local files, all staged files, or all unstaged files, or choose an individual change set in Change Set Analysis.
Split Change Set
Sometimes Change Set Analysis is too generous in grouping a chunk of changes together as one. If you feel that's happening and you want more details, you can now ask CodeBot to re-review just the one Change Set and split it more granularly, if possible. It will do that inline, leaving all other change sets alone.
Improved Image Comparison
Compare image diffs side-by-side or as a faded overlay. Available for local pre-commit changes and for previous commits:
Scoped Search/Filter
In addition to filtering the commit list to find what you are looking for, you can now change the search scope to look in locally changed files – either in new changes, old ones, or both.
Support for new AI Models/Accounts
New and additional AI account options are available this week.
- Alibaba Cloud
- Aruo
- Meta API (Muse)
- OpenAI via your ChatGPT Account instead of an API Key – use the credits that come with your ChatGPT Pro or Plus, rather than paying for direct AI use
- Connect to third-party OpenAI-compatible services
Also, as per the previous release, you can now connect GitBrowser to CodeBot Server to use your existing CodeBot/Delphi credits with it as well.
Register SSH authentication for GitHub/GitLab
When GitBrowser is connected to a GitHub or GitLab account via their API, that doesn't automatically enable Git to clone or push changes via SSH, because that uses a different authentication level.
GitBrowser will now detect if Git actions on a connected service fail due to missing keys, and automatically offer to register an existing or a new SSH key with the service.
GitBrowser for Linux (Preview)
In addition to Mac and Windows, GitBrowser is now also available for Linux (in preview), with the aim of 100% feature parity and a UI designed from the ground up for Linux using the native GTK framework.
Full Change List:
[CODEBOT]: I used tag 3105 (70ac763bcc, August 1) through local develop (e7fe3f449b, August 10). I consolidated follow-up commits into customer-facing release-note items and excluded merge commits and uncommitted local edits.
New features
- Full branch-merge workflow with merge-state and unresolved-conflict detection, status banners, merge commits, editable merge messages, Continue, Abort, and Quit actions.
- Integrated conflict resolution using configured merge tools, Resolve All, working-file placement preferences, and explicit choices for deleted files.
- CodeBot-assisted conflict resolution with immutable merge snapshots, validated candidates, encoding preservation, whole-merge analysis, partial resolutions, and candidate navigation.
- Cross-platform conflict-review interface with editable comparisons, resolution status, merge-wide actions, keyboard navigation, autosaving, and manual resolution.
- Dedicated failed-merge sheet explaining the conflict and available recovery actions.
- New built-in two- and three-pane comparison viewer with selectable panes, editable results, action controls, collapse/navigation controls, change map, and next/previous-change navigation.
- Built-in or selectable external diff viewers, including “Diff With” menus and fallback to the built-in text viewer.
- External comparison of binary Git blobs, with validation of Git object hashes.
- Improved image comparisons, now also available when inspecting committed changes.
- AI explanations for local changes and commits, including selected, staged, unstaged, and partially staged changes.
- AI changeset suggestions can now split an overly broad proposed changeset into smaller independently committable suggestions.
- Scoped search covering commit messages, new code, old code, and complete changed-file contents, with cross-platform scope controls.
- Changed-file search now matches complete paths as well as filenames.
- Dark-theme support and theme preferences across macOS, Windows, and Linux.
- CodeBot Avatar notifications when change explanations, commit explanations, changeset analysis, or conflict-resolution results are ready; includes an automatic-launch preference.
- Meta API accounts can now be used for CodeBot functionality in GitBrowser.
- Flatpak installations share Everwood credentials and license storage with native installations.
- More reliable folder-to-folder worktree comparisons, including renames, quoted paths, tracked-path inventory, and
.gitexclusion.
Bug fixes
- Fixed crashes and retain-cycle errors in diff routing and dynamically generated branch menus.
- Prevented unsafe repository actions while a merge is in progress.
- Preserved conflict state while reviewing resolutions and corrected saving, cancellation, unresolved-block handling, and selected-pane behavior.
- Prevented ineligible or conflicted files from being included in batch staging operations.
- Prevented stale asynchronous search results from replacing newer filters; safely handles tables with no columns.
- Fixed live theme updates on macOS.
- Fixed theme and diff-tool preference-layout constraints on macOS.
- Fixed message-sheet buttons being compressed or laid out incorrectly.
- Preserved the selected commit’s text color when conflicts are present.
- Fixed dark-theme build integration for non-Core Windows and Fire-hosted GitBrowser.
- Comparison viewer fixes preserve editing state, tabs, final newlines, scroll position, whitespace alignment, and synchronization for large comparisons.
Smaller improvements
- Diff and conflict-review sheets are resizable and remember their independent width and height.
- Merge-branch menus now load asynchronously and show useful loading, empty, and fallback states.
- Clearer conflict-resolution action labels and improved CodeBot action icons/presentation.
- Improved conflict-preview layouts and action parity on Windows and Linux.
- Refreshed GitBrowser preferences window layout.