Skip to content

Releases: Maks417/GitManager

v1.3.0

Choose a tag to compare

@github-actions github-actions released this 29 Oct 20:37

Git Manager 1.3.0

This release adds worktrees and a branch filter for repositories with many branches, lets you resize commit messages, makes big repositories faster, and fixes several glitches in History and the diff.

Git 2.23 or newer is now required. With an older Git the app shows a banner at startup. Most things still work, but branches checked out in other worktrees are not marked.

New

  • Worktrees: check out several branches at once, each in a folder of its own.
    • The new Worktrees section in the sidebar lists them. Double-click one to open it; it appears in Repositories under its main repository.
    • New worktree works from an existing branch, a new branch (it tracks the remote branch you start it from), or a commit in History. Open it from the section's +, Repository → New Worktree…, Check out in new worktree… on a branch, or New worktree here… on a commit. The folder defaults to <repository>-<branch> next to the repository.
    • A worktree's menu opens it or its folder, locks or unlocks it, and removes it. A worktree with uncommitted changes asks a second time before they are deleted. Prune missing worktrees clears the ones whose folders are gone.
    • A branch checked out in another worktree shows a mark. Checking it out offers to open that worktree instead of failing, and it can't be deleted while it is checked out there.
  • Filter branches: a box above the branch lists searches local and remote branches together as you type.
    • Words can be in any order, and * and ? work as wildcards (feature/*). Matches are highlighted, and the section headers show how many match.
    • Ctrl+Shift+B (⌘⇧B on macOS) jumps to it.
  • Branch folders: branches are grouped into folders at each / (feature/, bugfix/), and remote branches under one folder per remote. The folders holding your current branch open by themselves, and the app remembers which folders you open in each repository.
  • Resizable commit messages:
    • In the History inspector, a long commit message is no longer limited to three lines: drag the bar under it to show more.
    • In Changes, the message box grows as you type, and the bar above the commit form sets its size.
    • Both sizes are remembered.

Improvements

  • Fetch no longer blocks the app: while a fetch, pull or push waits on the network, you can still browse History. Clicking a commit during a stalled fetch now shows it in about half a second instead of waiting for the fetch.
  • Faster startup: with 20 saved repositories, the list now appears in under a second instead of about 4 seconds.
  • Less background work:
    • Refreshes count ahead/behind only for branches that moved: with 60 tracking branches, a refresh takes about 0.2 s instead of 0.8–0.9 s.
    • Staging all files starts 12 Git processes instead of 30.
    • Saving a file in the repository starts half as many Git processes as before.
  • Stop a stuck action: a local action still running after 10 seconds, such as a commit hook that waits for input, shows Stop. Stop ends Git and the helpers it started, and removes a lock file Git left behind. Quitting the app also stops any Git still running.
  • Huge commits: commit details list up to 20,000 files and comparisons up to 5,000, with a note for the rest.

Fixes

  • History could stay empty after switching between repositories while a page was loading.
  • Adding or deleting a tag or branch reloaded History from the top. It now keeps your scroll position and selected commit.
  • Moving between commits blanked the detail and diff while the next one loaded. They now stay on screen, dimmed.
  • Staging a hunk or line jumped the diff back to the top.
  • Hunk actions could act on a diff that was about to be replaced.
  • Commit messages showed garbled characters when Git was set to a different i18n.logOutputEncoding.
  • A saved repository list with a damaged entry dropped that repository. It is now repaired.
  • Shift+F10 on a file that first had to scroll into view could close its menu right away.
  • A divider that disappeared while being dragged (the view changed) could leave the resize cursor stuck.

v1.2.4

Choose a tag to compare

@github-actions github-actions released this 11 Oct 12:08

Git Manager 1.2.4

This release makes Git Manager smaller to download and to install. The app itself is unchanged.

Improvements

  • Smaller downloads: Windows installers are about 21 MB smaller (x64 134 → 113 MB, arm64 128 → 107 MB). The app's code ships as compact bundles; the font files carry only the format the app uses.
  • Less disk space on Windows: on NTFS drives the installer compresses the installed files with Windows' own file compression, so the installed app takes about 160 MB instead of 390 MB. On network drives or other file systems the files are installed uncompressed, as before. The installer writes resources\compression.log next to the app.
  • Third-party notices: the licenses of the bundled libraries and fonts are included with the app in resources/THIRD-PARTY-NOTICES.txt.

v1.2.3

Choose a tag to compare

@github-actions github-actions released this 10 Oct 19:09

Git Manager 1.2.3

This release makes Git Manager faster and lighter on large repositories: long histories, searches with many results and thousands of changed files.

Improvements

  • Faster history on big repositories: Git Manager now creates Git's commit-graph file in the background for repositories that don't have one, and keeps it up to date after fetch and pull. On a repository with 100,000 commits, each page of history loads about 3–4 times faster.
  • Searches stay light: message and author searches now show their results as a single column instead of a graph. A search with many results could previously draw a graph thousands of pixels wide, and memory use rose by several hundred megabytes.
  • Thousands of changed files: the Changes list and the commit inspector's file list draw only the rows on screen. With 7,500 changed files, typing a commit message, moving with the arrow keys and Select all now respond instantly, and memory use stays about the same as with a few files.
  • Less work in the background:
    • Refreshes that find nothing new no longer redraw the window.
    • Staging and discarding no longer reload the history.
    • While the window is minimized or hidden, file changes are noted and caught up in one refresh when it comes back.
    • Each refresh starts fewer Git processes.
    • Repositories with more than 5,000 new files no longer run git status twice on every refresh.

Fixes

  • Switching to Changes right after Git Manager starts could leave a commit's diff from History on screen, and choosing a file didn't replace it. The working copy now stays selected.

v1.2.2

Choose a tag to compare

@github-actions github-actions released this 06 Oct 12:08

Git Manager 1.2.2

This release makes the merge editor easier to work with on large files: conflicts are easy to find, resolve in place, and the panes stay lined up.

Improvements

  • See conflicts: conflicts are colored in every pane (ours green, theirs blue, base grey, markers red) and marked on each pane's scrollbar. Lines each side changed from the common ancestor are tinted lightly, and the pane headings name the branches.
  • Jump between conflicts: ‹ / › or F7 / Shift+F7 move to the previous or next conflict and scroll every pane to it. The editor opens on the first conflict.
  • Resolve in place: a toolbar at the active conflict offers Accept ours, Accept theirs, Both and Both, theirs first. Each resolution is one Ctrl+Z step and keeps your place. Start over returns the file to Git's merge.
  • Scroll together: scrolling any pane scrolls the others to the matching lines. Turn it off from the toolbar.
  • Layout: choose Columns (ours, result, theirs) or Stacked (ours and theirs above a full-width result); the choice is remembered. Base adds the common ancestor as an extra pane.
  • Files: each conflicted file shows how many conflicts are left, and files saved in this session stay listed with a check. With many files the list moves to a column beside the editors. Save & stage opens the next file.
  • The merge editor fills nearly the whole window.

Fixes

  • The merge result keeps the file's line endings. Editing the result on Windows could previously save an LF file with CRLF line endings.
  • Switching to another conflicted file with unsaved changes asks first instead of discarding them.

v1.2.1

Choose a tag to compare

@github-actions github-actions released this 05 Oct 18:44

Git Manager 1.2.1

This release separates remote configuration, branch tracking and publishing into focused flows.

Improvements

  • Manage remotes: open remote configuration from the Repository menu or the Remote branches menu. Add and edit forms appear on demand, with a separate push URL under Advanced. Saving a remote does not automatically fetch.
  • Branch tracking: set or clear an upstream from a branch's action menu or the current branch's tracking status. Tracking status stays visible even when ahead and behind counts are zero, and available upstream choices can be refreshed in the dialog.
  • Publish branch: every first push reviews the remote, destination branch and effective push URL before sending commits. Publication establishes tracking. If no remote is configured, add one within the same flow and then review the destination.
  • Push to: send an already tracked branch to another destination. Existing tracking is preserved unless Use this destination as upstream is selected.
  • Branch actions: checkout, merge, rebase, tracking and deletion are available from a visible overflow button, right-click and keyboard menus. Both history shortcuts remain visible.
  • Dialogs support long branch names and URLs, narrow windows and both themes. Control labels have no trailing ellipses.

Fixes

  • Branch action hints remain visible at the window's left edge. Double-clicking empty space in a local or remote branch row checks out the branch, while action buttons retain their own behavior.
  • Explicit pushes report success against the chosen destination, even when the existing upstream still lacks those commits.
  • Publication checks that the reviewed source branch is still checked out. Branch dialogs close when their repository or branch target changes or disappears.
  • Failed publication preserves entered values. Progress and cancellation are available in the dialog and toolbar, and focus returns to the initiating control after closing.

Remote URLs continue to point to existing server repositories. Authentication uses your Git credential helper or SSH agent.

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 04 Oct 16:50

Git Manager 1.2.0

This release adds remote configuration, reference comparison and recovery tools, and improves how the app restores your workspace.

New features

  • Remotes & publishing: add, edit and remove remotes, configure separate fetch/push URLs, change branch upstreams, and publish the current branch to an explicit remote and destination branch. Fetch and publication show progress and support cancellation.
  • Reference comparison: compare branches, tags or commits as exact snapshots, or review a feature branch's changes since its common ancestor with the base. Inspect changed files, renames, line counts and image previews. Commit actions include Compare with HEAD.
  • Recovery: browse saved backups and HEAD history, inspect commits that branches no longer reach, and create a branch to recover a commit. The app saves commits before amend, reset, rebase and branch deletion, and saves tracked edits before hard reset or discard. Restore tracked changes or explicitly remove a saved backup from the Recovery dialog.
  • Commit drafts: each repository keeps its commit message across view changes, repository switches and app restarts. A successful commit clears its draft; a failed commit keeps it.

Fixes

  • Restore the previous maximized or full-screen window mode when reopening the app. F11 and the View menu toggle full screen.
  • Show a loading screen while saved repositories are restored. The repository welcome screen appears only after startup confirms there are no repositories, so it no longer flashes over an existing workspace.
  • Offer retry when startup fails, and Git installation guidance when saved repositories cannot load because Git is unavailable.

Notes

  • Publication connects to an existing server repository and uses your Git credential helper or SSH agent.
  • Recovery backups are local. Tracked-file snapshots exclude untracked files and submodule contents; untracked files discarded in the app go to the OS Trash. Restore requires a clean working tree and index with no Git operation in progress. A snapshot taken during conflicts keeps file content, but does not recreate the original unresolved index or operation.
  • Feature and architecture documentation has been updated for these changes.

v1.1.2

Choose a tag to compare

@github-actions github-actions released this 03 Oct 06:04

Full Changelog: v1.1.1...v1.1.2

v1.1.1

Choose a tag to compare

@Maks417 Maks417 released this 01 Oct 09:53

Fixes

  • Release notes in the Updates dialog are formatted. Headings, lists, bold text and links show properly, instead of as raw HTML. Links open in your browser.
  • Restart & install is always visible. Long content, such as release notes, made dialogs taller than the window and pushed their buttons off-screen. Dialogs now fit the window: the content scrolls, and the title and buttons stay in view.

If you're updating from 1.1.0, this update's own notes will still look unformatted, since the fix arrives with it.

v1.1.0

Choose a tag to compare

@Maks417 Maks417 released this 01 Oct 08:47

What's new

Image previews

  • Images in the diff pane show as pictures instead of "Binary file": before and after for a changed image, a single preview for an added or deleted one. Supported formats are PNG, JPEG, GIF, WebP, BMP, ICO, AVIF and SVG.
  • Each preview shows its pixel size and file size. Files over 5 MB show their size instead.
  • SVG files keep their code diff, with a Code / Preview switch.

Stage, unstage or discard parts of a file

  • In the Changes diff, a toolbar above each change offers Stage hunk, Discard hunk or Unstage hunk.
  • Select lines to stage, unstage or discard just those lines. Discarding always asks first.

Commit actions in History

  • Right-click a commit, press Shift+F10 on it, or use More… in the commit pane:
    • check out the commit;
    • create a branch or a tag at it;
    • merge, rebase, cherry-pick or revert it;
    • reset the current branch to it (soft, mixed or hard);
    • push or delete its tags;
    • copy its SHA or message.
  • A cherry-pick or revert that stops on conflicts opens the merge editor, with Continue / Skip commit / Abort.

Rejected push, diverged pull

  • When a push is rejected because the remote has new commits, you can choose Pull or Force push.
    • Force push uses --force-with-lease: it stops instead of overwriting commits you haven't fetched.
  • When a pull finds that both sides have new commits, you can choose Merge or Rebase.

File history and blame

  • Right-click a file in the commit or Changes file list for:
    • File history: every commit that changed the file, through renames, with its diff;
    • Blame: who last changed each line, in the work tree or at a commit, with Blame before this change;
    • Copy path and Show in folder.

Smaller changes

  • A Fetch button on the Remote branches header updates the list. Branches deleted on the server disappear.
  • Header buttons in the sidebar are now centred vertically.
  • Dependency security updates for build tools.

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 30 Sep 09:07