Tuesday, August 8, 2023

Kaleidoscope 4.1

Florian Albrecht (Mastodon):

Kaleidoscope can now directly talk to Git. While Kaleidoscope could always integrate with Git, until now it could only show the results of a Git operation, such as git difftool and git mergetool, which was typically initiated through a Git client like Tower.


For the 4.1 update, we decided to focus on the ability to display and compare multiple revisions of a file.


Below the File History entries, there are two more useful functionalities:

  1. The Filter field allows quick filtering of the commit list. Enter text to search in authors, commit hashes, dates, and the commit message. For example, entering your name will filter the list to show only your commits.
  2. The branch button in the bottom right allows you to look at a different git reference, such as a specific branch or tag. Selecting an entry will reload the list and show commits for that reference.

I’m a big fan of Tower, but it has always been weak at showing the history of a single file. You can’t quickly open a file from Terminal or via drag-and-drop. Once you get the file history open, it doesn’t show the entire commit message. Once you open the commit associated with a file revision, you can see the other files, but it still doesn’t show the full commit message. The full History view does, but you can’t copy the commit hash from the commit view to paste it into the History view’s search field. Tower supports multiple windows but doesn’t make it very easy; you can’t just select two files and open their histories at the same time.

Kaleidoscope makes some of these tasks really easy. There are many ways to get it to open a single file, and then it automatically loads the history (and even the previous version, if you want). It’s easy to navigate the history to pick which versions you want to compare. I’ve seen many different apps implement this type of interface, and Kaleidoscope’s version may be the best. There’s a popover that shows the full commit message, though unfortunately the text in it isn’t selectable. It would also be nice to be able to resize the history pane to see bit more of each commit summary. It’s easy to open multiple windows to look at the histories of different files, and they show up in Open Recent so it’s easy to get back to them.


Update (2023-08-09): Kaleidoscope 4.1 is not sandboxed, and I think this Git integration would have been tough to implement and less smooth to use from a sandboxed app. (Telling an app to open a file does not give it access to the associated Git repository. There are ways to automatically get access to a nearby file, e.g. the journal file next to a database, but I don’t think this would work with Git, whose data is typically in an enclosing folder.) So I wonder whether this feature would have ever shipped if Kaleidoscope had remained in the Mac App Store.


Comments RSS · Twitter · Mastodon

Leave a Comment