The Git sidebar UI

I just downloaded the 11 beta and had high hopes for the new git sidebar changes. Unfortunately we didn’t get much other than the extra pane that lists branches, tags and remotes. This is mildly useful but what I am mainly disappointed about is the seeming attempt to have the git UI end up something like Tower, Fork, Gitfox, SourceTree et.al. Unfortunately with the limited space in the sidebar, there’s no way that you are ever going to be able to add the level of complexity that these other dedicated apps implement—so why try? Is it going to end up like a Microsoft product with a bazillion buttons? Bury everything in a contextual menu? Seems like a zero-sum game. What is actually needed is a smart and simplistic UI that implements the most commonly needed features of git and leave all of the intricacies and complexity to the other apps. Is it realistic that Nova’s git sidebar will ever be able to negate the need for one of these other apps? I don’t think so—so why even try to compete?

There has only been one app that I’ve found that took this approach. It’s called Gitbox. It hasn’t been updated in 11 years but is still available on the Mac App Store (‎Gitbox on the Mac App Store). I had been using it everyday for 98% of my git needs until Ventura broke its ability to commit things.

The main features that make Gitbox so useful are as follows:

  1. branch drop downs with push and pull buttons in between that make it very obvious which branch you are on, which branch you are tracking. Switching either of these branches is quick. Pushing and pulling is one click because you already have the context of where you are pushing/pulling from/to.
    image

  2. At a glance you can see what commits you have locally that aren’t on the remote and vice versa. This also aids in pushing/pulling because you can see what commits you are going to pull down or push up in any given moment. (image in replies)

  3. The ability to see the files involved in a commit and see a diff between that commit and the last commit so you can tell what changed in those files at the time it was committed. Nova currently has the commit log but when you double click on a commit there’s no way to know which files were changed by that commit. This is a feature I use ALL THE TIME.

  4. the added ability to hold down modifier keys to force push and rebase rounds out the features needed for 98% of day to day git work. (image in replies)

Obviously I’m biased towards the Gitbox GUI because I’ve been using it for a long time but—as someone who both knows git on the command line and implements UI—it is still the only sensible, simplistic implementation that I have seen in the wild. All the others are just slightly different versions of the same (bad) idea. I would at least like to start a discussion around simplifying the git sidebar UI for a majority use case, rather than trying to cram in features to compete with more complex dedicated git apps.

Panic is an awesome company with well renowned UI chops and I believe a killer git feature like this could make Nova stand out as the best coding experience on a Mac that we all want it to be.

Anyone have any thoughts to add?

2 Likes

As a new user on this forum, I was only allowed to add 1 image on the post. Here are a couple of other images to explain the features that I would have included if I could:

Point 2:
image

  • Green dot is a local commit that doesn’t exist on the remote, blue dot is a remote commit that doesn’t exist locally.

Point 4:
image

I second the request for point 3 (more details for a given commit). Regarding other features and competing with dedicated git clients: I just canceled my Git Tower subscription and appreciate any improvements that come along with Nova
Cheers Chris

@Christian, I’m guessing that if you cancelled your Tower subscription in favour of the current Nova git gui then you, like me, probably didn’t need any of the advanced git features that these apps try to shoehorn into a UI. To me it sounds like a vote in favour of a more streamlined UI that does the basics in a cleaner fashion.

Generally agree with you here.

I think the biggest missing piece of the puzzle for me, and I think the biggest/most logical opportunity where Nova could provide value related to git is in file diffing and possibly in simple merge conflict resolution.

So far, the comparison feature making its way into Nova recently is promising on that front. To be honest, if they really wanted to I bet there’s room for Panic to put out a dedicated app for file diffing/merging. I’ve definitely not been able to find a decent enough Mac app for this myself… although Kaleidoscope does a pretty good at this, but is priced too high IMO.

Still though, there’s definitely a UI/UX benefit of being able to diff files directly in the editor you write it in. Not least of which is just making the these sorts of productivity tools more easily accessible “in the moment”.

In the end, the goal should be to make it easy to reach for these tools and features when doing so would be more productive/efficient than some alternative. I personally don’t really need all the advanced features of dedicated git/diffing apps that often… but I’m sure I’d benefit from taking advantage of them more.

Yet, jamming all the features into dropdown menus will trend towards a UI reminiscent of brutalist architecture… which definitely isn’t gonna help with that. In fact, with git it probably wouldn’t take much to get to a point where using a CLI would be the most user-friendly option. That doesn’t seem to be route Nova’s going down though, so I’m optimistic.

1 Like

I’d love to see the current diff function expanded into solving merge conflicts from within Nova.

Jetbrains have a cool implementation (diffing/merging) in IntelliJ and Panic should take that as a blueprint for a native implementation in Nova

2 Likes

I just wanted to chime in with general agreement on Nova 11b2 starting to accrue visual and cognitive clutter, both in the Git sidebar and the general interface. I do light git work in Nova but if ever I want to manage my git repo I turn to a dedicated app (Fork in this case). I am in agreement with most all of Josh’s observations/comments above to this end.

I appreciate the work on bringing “more” to Nova but this version is the first time I’m not looking forward to upgrading. There are QOL changes which I appreciate as features such as more ways to manage splits, but I don’t see myself using them often but the interface is in my face all the time. Overall I hope the move to bring more to Nova doesn’t leave it bursting at the seams and instead a path is found to keep it streamlined and cohesively thought out.

I appreciate the work Panic is doing and I recognize it’s hard to balance opinions and needs.

1 Like