Collapsible git graph

Aug 3, 2020 Dmitry Serov tag mac windows

Recent Fork updates have added the ability to expand and collapse merge commits in the commit graph by clicking on their tips or using / keyboard shortcuts.

This allows you to hide unnecessary commits, make sense of a messy contribution graph, and to only concentrate on the changes made in a certain branch.

Consider a real-life example: the Swift language source repository. It is one of the largest GitHub repositories to date, with more than 100,000 commits and 32000 closed pull requests.

Could you tell which commits make up pull request #20782 from this screenshot?

With Fork, you can collapse all merge commits and only display those you need right now. Collapse all branches using the context menu of the graph and expand the ones you’d like to keep.

Here’s how it looks when applied to the Swift repo. We can clearly see when the work on feature #20782 had begun, which commits it contained, and when it was merged into the main branch. It’s also easy to pick out what other pull requests were merged while the feature was still in progress.

Download Fork right now and share your feedback with us!
Download Fork for Mac Download Fork for Windows

Share this:

Quick Launch view

Oct 23, 2019 Dmitry Serov tag mac windows

One of the more recent introductions to Fork was Quick Launch view with a command palette (Ctrl+P, +P), which allows to perform frequent actions quicker. This is an extremely powerful feature and we’d like to show a few examples of its usage in this blog post.

Checkout branch

The process of checking out a certain branch by name can be streamlined by using the Checkout Branch command of Quick Launch. With only a few keystrokes to invoke the command and to specify the required branch (thanks to smart completion), checking out branches via Quick Launch is much more convenient than browsing through a lengthy branch list in the GUI.

Show file history

File History is a Quick Launch command to display the familiar report of changes in a file supplied as the command argument. You don’t have to look for the file in the commit file tree anymore – as long as you know the filename (or enough of it to trigger fuzzy search).

Quick Launch and Custom Commands

In addition to using the preinstalled commands, you can extend Quick Launch view with your own ones. You can find the Quick Launch custom command builder in Preferences.

For instance, here’s a custom branch command for Gerrit push:

We can run it as follows:

Download Fork right now and share your feedback with us!
Download Fork for Mac Download Fork for Windows

Share this:

Fork 1.0.79

Jun 12, 2019 Dmitry Serov tag release notes mac

At Fork, we’re always busy at work implementing new features and fixing issues. This time on our blog, there’s a lot more stuff than usual – we’ve decided to cover multiple recent Fork releases that didn’t receive a separate blog entry.

Here’s a look at some of the most interesting features introduced in the latest versions of Fork.

Preview for LFS images

Images tracked using Git Large File Storage might not physically reside on your drive, but it doesn’t mean you should not be able to preview them. Fork 1.0.76 allows you to preview and download LFS images, while also showing details for all files stored in LFS.

Ability to highlight bugtracker references

Many of our commits include a reference to the issue tracker that we’re using. Fork can now transform this reference into a highlighted link that leads you directly to the ticket in question.

You can create a rule for your bugtracker using a simple regular expression:

Improved status control

We have revamped Fork’s status control to fit more useful details. It now shows the info about active processes and behind/ahead commit count for the active branch.

Improved status control is only available starting from macOS Mojave.

Quick interactive rebase actions

Firing up the whole interactive rebase workflow, might be a bit of an overkill if all you’re trying to do is a simple squash. Starting with Fork 1.0.78, there is an easier way to start with interactive rebase: Quick Actions.

You can select a Quick Action for interactive rebase in the context menu.

Sorting branches and tags

It’s quite easy to get overwhelmed with the number of tags and branches in a project with a long history of releases. The latest release of Fork helps you to organize important commits by introducing sorting for branches and tags.

You can sort either alphabetically or chronologically (starting with the most recently used tags/branches).

Option to show hidden characters (spaces, tabs)

The commits we push every day do not need to contain visible changes. There are times when only whitespace is actually affected by the change, but Fork used to have no way to show if, say, you converted tabs to spaces.

There is now a separate option to show invisible characters while inspecting source diffs, so that no change remains unreviewed.

Show uncommitted changes indicator in tabs

If you’re managing multiple repositories at once using tabs, you might have noticed that you had to open a tab to see whether the repo had leftover changes you needed to commit.

It all changes now: Fork will show a star indicator in tabs if the repository contains uncommitted changes.

Automatically create folder structure in repo manager

One of the greatest hindrances in the process of opening your existing repository in Fork was actually finding it in the long list in Repository Manager. In Fork 1.0.79 we streamline the procedure by recreating your source folder structure.

Fork will automatically import the structure of your source directories and will display all repositories in their respective folders. You can manually rescan your source directories at any time, and the default source folder can be selected in Preferences.

Improved chunk highlighting

The design of the chunk highlighting (presented when hovering over individual changes in a single file) has been enhanced to be clearer and more distinct.

You can check it out by yourself while browsing through the changes list.

Minor changes and improvements
  • Backup interactive rebase using temporary branches
  • Propose to remove index.lock file if repository is locked
  • Fix for application menu entries being initially disabled (sometimes)
  • Fix for page guide in commit message field being too hard to see
  • Notarize application to support upcoming macOS changes
  • Improved Interactive Rebase dialog
  • Fix for merge commit message staying after resolving (#61)
  • Fix for too long branch name not fitting in status control (#601)
  • Allow undefined global user identity
  • Fix for squash by S hotkey not showing context menu in IR
  • Fix for some checkboxes blinking on click
  • Fix for GitHub notifications not working if custom locale is set
  • Fix for initial horizontal scroll position being incorrect sometimes
  • Fix for monospace font not being applied to commit details view
  • Fix for rare freeze on closing active tab
  • Fix for finish gitflow dialogs containing duplicated branches
  • Improved discard performance for many files
  • Automatically switch current branch filter on checkout
  • Add ⌘0 shortcut to select current HEAD (#566)
  • Change theirs-ours order in merge conflict view
  • Fix for commit file button remaining disabled after failed commit (#565)
  • Make active revision and branch more visible (#533)
  • Ability to skip pre-commit hooks is back (#513)
  • Merge conflict resolver improvements

Download Fork right now and share your feedback with us!
Download Fork for Mac

Share this:

Fork 1.0.73

Feb 6, 2019 Dmitry Serov tag release notes mac

The Fork team welcomes 2019 with a fresh release of Fork for macOS. Fork 1.0.73 delivers major design tweaks and user experience improvements, as well as a brand-new integrated merge tool. There’s been a lot of minor fixes, too, most of them driven by the feedback of our users in our public issue tracker. This post will cover the most important changes that made it to the latest build.

Improved merge conflict resolver with manual editing support

Not having to leave the cozy interface of Fork to fix merge conflicts has been great, thanks to Fork’s custom built merge resolver. For this release, it was rewritten from the ground up to provide even better experience. Now the end result can be edited manually.

Highlight commits to-push and to-pull

Keeping track of the changes in the local branch and its remote counterpart might be a nuisance. In Fork 1.0.73, tiny coloured bubbles next to commits in ‘All Commits’ view will inform you whether the commit is due to be pulled from or pushed to the remote repository.

Redesigned commit details view

The pane with commit information was redesigned for this release. Some visual clutter was cleaned up, and the label appearance was revised to make reading more comfortable.

Custom diff view for submodule changes

Fork didn’t use to tell much about the submodule changes - the old view merely highlighted the difference in subproject commit hashes. In the fresh release, though, a new view is used to show submodule pointer changes, and it conveys much more information.

Internet connection definition for Little Snitch Firewall

Little Snitch is a popular firewall and network connection inspector for macOS. Starting from 1.0.73 Fork includes an Internet Access Policy document that allows Little Snitch users to see which Internet connections Fork creates and for what purpose.

Make your communications more transparent with Internet connection definition for Little Snitch Firewall.

Minor changes and improvements
  • Ability to push to any branch [#441]
  • Show git bisect labels [#440]
  • Make diff more readable in dark theme for color blind users [#307, #490]
  • Use Mojave accent color for progress bar [#473]
  • “Discard” shortcut does not work with box appearing on mouse hover [#103]
  • Stash uncommitted changes dialog: Layout bug [#475]
  • Legal text is too dark in Dark Mode [#508]
  • Typo in CLI help message [#434]
  • Add custom actions for changed files [#417]
  • Option to resolve multiple conflicts at once
  • Show warning when committing in detached HEAD [#487]
  • Invoking new branch shortcut multiple times brings multiple prompts [#511]
  • Fixed: Merge and rebase commits are not signed
  • Fixed: Commit Template is not populated on commit header click

Download Fork right now and share your feedback with us!
Download Fork for Mac

Share this: