phil294 / GitLG

A free, interactive Git UI for VSCode
MIT License
155 stars 15 forks source link

Bottom details panel + list of design suggestions #86

Open dimateos opened 8 months ago

dimateos commented 8 months ago

Hey 🐸

I love the docked bottom panel from git graph: image

I also like a lot git log columns and the tiny colored dots before commit messages: image

But I dont enjoy much the side panel, for some repos with long user names/commits the columns can get disaligned and commit messages cut too short (worsen by branch names being drawn over them): image

I feel like a bottom panel would keep the columns wide and happy :)

~A few~ comments/ideas on design (numbered for reference and personal priority):

Given that you are active, I though of adding a bit of opinion/ideas on top of: https://github.com/phil294/git-log--graph/issues/28 and https://github.com/phil294/git-log--graph/issues/56. Some are features related to design, but did not want to spam you with many issues, feel free to open separate ones or I could do so if you want.

  1. DESIGN: I would still would still prefer simpler straigth lines with a bit of optional rounded edges (e.g. options offered by git graph) but I guess those are hard to integrate? Just wanted to mention it as it might be the main reason that deters new user from this extension graph view: image

  2. DESIGN: I would also prefer branch names to be hidden behind commits messages. Sometimes long branch names hide them completely and seems a bit unintuitive: the beginning of the commit message is its most important part whereas the ending of the branch name rarely matters (you can already identify it). The whole branch name could be displayed when hovering over it, or as a tooltip a few momments later. This is worsen by split branch names for the same branch in different remotes etc, as commented in the following point: image

  3. FEATURE: Branch names could be merged when all remotes are at the same (also happens with local HEAD?), worsens overlapping branches over the commit messages: image

  4. DESIGN: Icon has too thin lines for small editor tab icons (git graph for comparison), but the lack of contrast is also noticeable in the extensions marketplace. I attached a suggested logo inspired in current one (edited the current svg a bit), but could be even simpler like the current icon used for "Open in graph view": image logoWide

  5. DESIGN: I feel like bold-italic is harder to read and seems like it is used for branch names? I guess this could be easlily changed with the custom css option, to e.g. regular italic: image

  6. DESIGN: Tags / Stashes could have a different icon isntead of just white text, or replace the white dot before the message: image

  7. BUG: Resize widget is ok for now (would be more intuitive to grab any part of the edge), but I cannot get the horizontal scrolling bar to dissapear no matter how I resize the pannel: image

  8. BUG: BTW, in my case the scroll to top button appears at the middle of the vertical bar: image

  9. BUG: How to go back from Branch Context Menu -> "Show", so far I close and reopen the view?

  10. FEATURE: Following from the previous, being able to filter shown branches is a nice feature, I wonder if a checkbox could be added to "All branches" so that it could filter shown branches similarly to "jump"/"filter" (search spin menu). Atm when seeing a unique branch, the "All branches" fail to go to a any filtered one, therefore I guess then I would filter those from the list too. Git-graph has a combo box with selection as you probably knew, here for reference: image

  11. FEATURE: Similar to the previous, could I filter remotes? I have not tested whether I could only push to certain remote either. But I guess is ok if all pushes just go to default remote.

  12. FEATURE: Would be nice to be able to highlight all when searching, maybe do it when search is set to "jump" while typing (similar to filter).

  13. FEATURE: Its common to be able to configure commit time to relative e.g. 2 weeks ago etc, or to other time formats (e.g. current seconds seems overkill). As an example, git graph has options for: image

  14. FEATURE: Wider lines for some branches (similar to https://github.com/mhutchie/vscode-git-graph/issues/207), develop or master could be easier to differentiate (list of regex to match in settings)

Wrapping up?

In the end these were a lot of suggestions XD, hopefully you appreciate them.

Absolutely no pressure nor expectations, I was just exited about this active alternative to git graph. Probably many of these were already planned or thought by you. Hope you dont mind the comparisons / samples with git graph. I will continue using git-log--graph and see if I stumble upon other rough edges I would add to this list.

Nonetheless, IMO you have done a great job so far. The extension is excellent at the current state so simply looking forwards to its development :) Thank you!

Best regards

phil294 commented 8 months ago

Hi @dimateos, thanks for the feedback, this is very helpful!

I feel like a bottom panel would keep the columns wide and happy :)

Sure, why not. Let's just make the split configurable (horizontally vs vertically) and all is good.

You can divide the panel in two like git graph: keep changed files at the top, which are the most important info per commit.

To the very least, something needs to be displayed at left/right side, yes, because otherwise there'd be a lot of wasted space.

In the end this section will probably look like Git Graph's UI again anyway. I kept trying to be a hipster and not do a plain copy of that extension's interface, but keep finding that its design is rather well-thought out, and there are often no other ways of doing it the way mhutchie did.

Btw I hid the button for now as I prefer to operate with the context menu instead and just show details here.

Me too, also they just take up so much space and are generally ugly :|

DESIGN: I would still would still prefer simpler straigth lines with a bit of optional rounded edges (e.g. options offered by git graph) but I guess those are hard to integrate?

Have you tried "git-log--graph.curve-radius": 0,? It's not perfect but might suit you better.

DESIGN: I would also prefer branch names to be hidden behind commits messages.

something indeed needs to happen here, it's also discussed in #44. Following your suggestion 100% wouldn't be a good idea though, because when you make the graph area very small (or hide it), it would mean that most of your branches are completely hidden. Also sometimes you couldn't even see if there may be more branches hidden. Because of that I think they should always be visible somewhere somehow.

FEATURE: Branch names could be merged when all remotes are at the same

yes

I attached a suggested logo inspired in current one

Awesome, thank you very much! I'll put this as the new logo now, starting with the next release. The current logo has been, like most things in this repo, the result of way too little invested effort, and definitely doesn't look good when zoomed out.

Regarding your remaining points, I don't really have an opinion, but they sound reasonable / need fixes. Thanks for taking the time to write them down.

BUG: How to go back from Branch Context Menu -> "Show", so far I close and reopen the view?

You just click the refresh button. Not very intuitive, yes, but its implementation was just really basic. Maybe the refresh button could be brightly highlighted in that situation.

FEATURE: Following from the previous, being able to filter shown branches is a nice feature, I wonder if a checkbox could be added to "All branches" so that it could filter shown branches similarly to "jump"/"filter" (search spin menu).

I can see where you're coming from, but that's probably rather difficult to implement using the extension's current architecture, I'm afraid.

FEATURE: Similar to the previous, could I filter remotes?

What do you mean by that? There is no remote management yet (#37)

I have not tested whether I could only push to certain remote either.

git push, like all commands, is a text-based git command execution, so you can write anything you like there, for example replace origin/master with some-other-origin/master. Making remotes selectable via dropdown here would be interesting but yet again probably rather ugly to implement.

FEATURE: Would be nice to be able to highlight all when searching, maybe do it when search is set to "jump" while typing

sounds good

FEATURE: Its common to be able to configure commit time to relative e.g. 2 weeks ago etc

Yeah but that would take up much more space. Finally something that is easily implemented though :D

FEATURE: Wider lines for some branches (similar to https://github.com/mhutchie/vscode-git-graph/issues/207)

Pretty much impossible

develop or master could be easier to differentiate (list of regex to match in settings)

Basic css adjustments are no problem of course. I guess I'll start by adding classes to the lines so you can e.g. "custom-css": "line.branch-master { box-shadow whatever; }"

Key branches like master or development already have a fixed color, so they're somewhat recognizable.

Wrapping up?

Thank you for the kind words!

phil294 commented 7 months ago

So much to do here, but at least the bottom details panel is done, please give the new setting details-position a try. It's getting increasingly annoying though to not be able to properly resize this window, this definitely needs some care soon. Also I haven't optimized its layout apart from making it two-column now

dimateos commented 7 months ago

Hey!

Will be using the new update today, looks very nice :)

Later I will revise your answers again, as I read them sometime ago...

I can also break this monolohic issue into more manageable ones after your comments, so you can keep it closed. Or go ahead and create the ones you find more important, etc

Thank you for the kind words!

Thank you for taking your time with the issue and for all the work Phil!

phil294 commented 7 months ago

FEATURE: Its common to be able to configure commit time to relative e.g. 2 weeks ago etc, or to other time formats (e.g. current seconds seems overkill).

This is already possible, in the main view Configure... at the top edit the log command and replace --date=iso-local with --date=relative