gmasterscm / ama

Ask me anything!
https://blog.sindresorhus.com/answering-anything-678ce5623798
5 stars 1 forks source link

What about a commit list? #7

Closed psantosl closed 6 years ago

psantosl commented 6 years ago

We are getting feedback from some users saying that the Branch Explorer is fine to understand the branch/merge history, but oftentimes they need a quicker way to browse commit comments.

We had this in mind:

image

Thoughts?? :-)

(BTW, the style comes from a Visio design doc :P)

ghost commented 6 years ago

I hate cards in this case, they take too much space. This is basically what I want:

image

That's SourceTree, although I bet you know it :) . A simple gridview with seeing author, commit message, commit time and commit graph is still fit on the left - that's what I need to get understanding of what and when is done and take a peek at diffs. And It's compact - I can see 30-40 commits fit on one screen and still see how branches merge, tags placed. Or 20+ commits and still able to see diffs when selecting commit. It's very convenient.

psantosl commented 6 years ago

Not that I'm a big fan of grids anymore :-)

We can certainly do that super fast, I mean, grid/list view (maybe card view optional).

In fact, that's what we still do in Plastic SCM:

image

But we wanted to move past this into something better.

Ok, if everyone out there really preferred grid better than card, it would make implementation simpler.

Now: what we won't do is the "commit graph on the left". (I mean, that's my view now, hopefully I don't have to change it :-P) We think branch explorer is much better to show branches and merges (I can't see much on the typical diagrams all other git tools use). If we come up with exactly the same render as everyone else... what would be the added value?

The other thing is: many say they want to read commit messages and the branch explorer doesn't help them because they have to click or hover. List view only shows you part of the message. Will it be enough? Not sure.

Maybe we can go for list/card view together, with a toggle or something.

dadhi commented 6 years ago

@psantosl , @oleksii-vynnychenko

I am supporting the card view exactly because of added value, so I can see nearest or latest changes with full message on the one screen without distraction.

But I want a quick jump to and from Branch Explorer so I can quickly check the place of commit on the graph of things.

psantosl commented 6 years ago

Good point: jump from list to BrEx. Do not forget.

ghost commented 6 years ago

Seeing graph, branch, commit message and often author (although I can live without author) at same time without needing to hover/clicking/dancing over something - is what I personally need and a must-have feature for a day-to-day git tool for me. Basically that's what absolute majority (if not all) of tools do and to what most people used to. Personally I think it's just very convenient so tools have it.

Branch explorer is cool in it's way but having to hover over each and every commit to understand "what's that?" is not convenient. It's just a graph display and without other info present - it's very limited.

About commit message being trimmed out in such grids - I don't know about others but from what I've seen and from my practice and ... well, what git developers suggest - commit message should be short (and I'd say period, but that's me) or at least not long with first line containing what was done in this commit with few words. I know many companies (like the one I'm working in) set rules on max length of commit message, same as some Git tools provide setting the limit, or some IDEs (like all JetBrains ones). All further lines in commit message is usually some deep details that you'll read only when you really need to or just a list of files that were changed (and I can see that from diff list already) and you don't need that to take a peek at whole picture or to find certain commit from the list.

psantosl commented 6 years ago

If we had a traditional commit list like the other tools have, why would you use gmaster then? Diff/merge?

ghost commented 6 years ago

@psantosl , You can have that all-in-one gridview along with other views with cards, not as substitute...

Yes, good diff/merge tool and VS integration is huge, at least for me. Just in case you wanna hear thought of random developer (me), otherwise skip all text below with TLDR: some bla-bla from internet :) :

I'm .NET dev with VS being main IDE, I want to do:

  1. most stuff without switching from IDE (commit, merge/rebase, watch diff with several latest commits, look blame)
  2. much less frequently just look through what was done in repository last days or some searching for a commit or when file was changed through history, etc.

Now lets be real, VS git support is quite terrible so for 1st: commit - OK, diff - meh, OK I guess (although I much more prefer gmaster's), merge - not good (sometimes its figuring out right, sometimes makes me wonder if they parse *.cs files as language code at all and merging takes much more time) and I have feeling you'll do this job much-much better, blame - OK, commit search/navigation - non-existent.

For 2nd I'm using SourceTree and it has very good commit gridview/listview and it can do most basic stuff (that I'm already doing in IDE most of the time), but diff/merge is non-existent basically, even search history with diffs through multiple commits can't be done.

So yes, good diff/merge along with IDE integration with some nice navigation/search features is quite valuable at least for me.

AngusMcIntyre commented 6 years ago

I have Sourcetree and Gmaster installed. For this kind of exploration I will fall back to the Sourcetree. I may even just log into Bitbucket and inspect the repo directly.

I'm not convinced gmaster needs this but it would help the feature list. Maybe just rotate the branch explorer 90 degree, compress the layout and stick the commit details next to commit?

psantosl commented 6 years ago

Hi again,

We had a discussion yesterday about how to deal with it (with @miryamGSM and @rubarax).

We would like to better understand how your workflow looks like with the list of commits. I mean:

Thanks :-)

AngusMcIntyre commented 6 years ago

For me, I like to be able to read the commit messages without having to provide input between each one. Consider if you had to turn a book page between each sentence. It feels like that.

ghost commented 6 years ago

@psantosl , Use cases just from the top of my head:

  1. Have to revisit what was done really for some task on some feature that was implemented a month or two ago (like something not working and you want to know if some parts were implemented at all, or maybe it was merged incorrectly). Yes sometimes if you know what code provided that feature you can blame and navigate from there -> find commit -> look at that commit -> if missed look at another one. But sometimes you don't know where to start, what files to look at (especially if it was implemented by other guy and even from different module). All you know is that it was done somewhere month ago. You look at graph and start looking at commits (may filter by author if you know who did it) of that time and reading commit messages because you don't know file names, or the wording that author put into describing it.
  2. Periodically look at what others did in repo recently, like last couple of days. Commit messages are usually enough but sometimes you see some commit with interesting issue and you ant to look at diffs. With seeing graph at same time you see tails of branches so you now what's now on staging servers and what branches are active so you know what others do, what's on live servers, seeing tags you understand intermediate deployments. Yes some things should be even more convenient to see at issue tracker for example or just dev meetings (that we at our company don't practice at all, lol) but with good gridview like in SourceTree you're "closer to code".
  3. I bet something else, can't remember..... :)

Branch explorer looks beautiful, cool and fancy and I bet you've put a lot of work and most likely it builds graph properly (Tortoise for example builds graph badly in a non-informative way, SourceTree - surprisingly good), but without commit messages it's usage is limited (totally agree with @Gusdor there). It feels like it takes too much space for what info it provides. Having lots of text/info on screen is OK for developer, IMO. I mean, No one is complaining that diff views contain too much text :) . We're not talking about some landing page of a site that any random human should be comfortable with, it's specialized developer tool - The more useful info on screen the better.

p.s. yes, I knew about arrows and still

stil commented 6 years ago

@psantosl @oleksii-vynnychenko

I'm so used to SourceTree's gridview, that lack of it is dealbreaker for me. Card view you propose reminds me of Outlook email view. I don't think it's most productive way of showing commit list.

Gmail uses simple grid view for displaying list of emails and it has insane userbase (more than 1 billion I believe). You can't go wrong about that :>

We are trying to understand why having tons of text is better than just checking the commits one by one

Most people (especially developers, myself included) are used to skimming through tons of text and are able to easily find what they're looking for.

Paul-JanPauptit commented 6 years ago

Humans are pretty good at visually scanning large amounts of (properly laid out) text, especially devs who have been training themselves to do so for years, with the tools they are used to.

The gmaster branch explorer is for ... well, exploring branch structure, and exceptionally good for that purpose. However, for a quick glance of the actual changes to the codebase itself a traditional commit list is vastly superior. They are two different things, and gmaster should have both. I am now using other GIT clients for this purpose, but I don't want to :).

psantosl commented 6 years ago

Then we got good news @Paul-JanPauptit , because we JUST released the commit history in list format :-)

image