desktop icon indicating copy to clipboard operation
desktop copied to clipboard

History Graph in comparison view

Open hottestchilipepper opened this issue 4 years ago • 75 comments

Describe the feature or problem you’d like to solve

I need a Graph feature. I know this issue is duplicated with #1634 , but it is locked, and @outofambit allowed me to reopen this issue at #9444 . I implemented but I also think it needs more discussion.

Sometimes I have to know where the branch comes from and when it was made. But I forget often where the branch comes from, and I have to look for history reading so many commit messages. I think this is not just for me. Human cannot remember what all branches come from.

Merge direction is important too. Assume that I made a 'branch-a' from 'master', after some commits were pushed on 'master' and 'branch-a', made a 'branch-b' from 'branch-a'. I should merge 'branch-a' to 'branch-b' and 'master' to 'branch-a'. I should not merge 'master' to 'branch-b' directly and should not merge 'branch-b' to 'branch-a'. In order to know the merge direction, we have to make documents about all branches. But it's annoying, it will be better to see from History Graph. And we can see intuitively from History Graph whether juniors made mistakes in merging.

As many people said, in order to aware that current branch is out of date, History Graph is also useful, too.

Proposed solution

The full graph is very complicated. Following the purpose of it, it will be better to show graph between only two branches. Many people want the classic thing. I mixed these needs with modern GitHub Desktop. So I propose below

K-042

History Graph in Comparison View. With this, we can see whether current branch comes from comparison branch. Also we can see the merge direction and when the current branch was made.

Any questions, ideas and advice will be helpful.

hottestchilipepper avatar Apr 04 '20 04:04 hottestchilipepper

++ To this! One other use case I currently have for some sort of graph view is that my team uses trunk-based development, and it would be incredibly useful to be able to search through a graph and see the different commits one after another similar to navigating through commits in a PR

avegancafe avatar May 07 '20 15:05 avegancafe

My concern with this design is that it may be "good enough" and prevent adoption of the horizontal graph used previously.

A vertical graph is basically all you can do in a terminal window, you can only scroll up and down. But a horizontal graph is much friendlier and easier to read at a glance. I do like that in the proposed vertical design that it limits the graph to two branches. I don't think I've ever wanted to compare more branches than just my current and one other (99% of the time it's the master/main/default branch).

Right now the only horizontal graph I'm aware of is in Classic GH Desktop (very hard to procure) and gmaster (overly complicated).

TheJaredWilcurt avatar Sep 24 '20 04:09 TheJaredWilcurt

I'm also having same requirement. I have to open VS Code and Git Graph extension every time to check and track the branches. Vertical Graph something like this would be so useful. Vertical graph will be more easy to visualize all commits with dots and merging with lines.

image

bhadresharya avatar Dec 21 '20 06:12 bhadresharya

Wiil this ever happen? When will the graph be implemented?

whippingdot avatar Jan 06 '21 05:01 whippingdot

I use GitAhead and VSCodium because GH Desktop doesn't have this feature. It would be nice to have a graph and it may makes me switch.

MrHackino avatar Jan 29 '21 10:01 MrHackino

There's like 40 apps out there to visualize vertical graphs, with way too many branches ("Fork" being one of the better ones if you're into that kind of thing). There's almost none with a simple horizontal graph. Don't give us "yet another" of the same thing we already have plenty of. Bring back your best feature.

TheJaredWilcurt avatar Jan 29 '21 21:01 TheJaredWilcurt

I am a simple guy with simple requirements towards my git client. I was using old native Github Desktop client for a long time until it no longer worked since a couple months ago. I tried new version a while ago and recently gave it another try, but I must say I found it to be a huge downgrade because of this missing feature. Even after weeks of attempts I felt half-blinded working with git without any visual aid and had to switch to another client (with huge multibranch graph, which is overwhelming, but god, it's better than nothing).

trafium avatar Feb 04 '21 12:02 trafium

This might be a reopen of https://github.com/desktop/desktop/issues/1634 (sorry for that) but showing the history (all of it, not only the linearised past of the current branch head) is THE essential feature of a git GUI like gitk https://git-scm.com/docs/gitk . All of those do it: https://git-scm.com/downloads/guis , the competitor gitlab does it in the web UI https://docs.gitlab.com/ee/user/project/repository/#repository-graph ... that is for a good reason.

Seeing the graph is absolutely essential for working on a git repository with more than 2 people/branches at the same time in order to understand what is going on, i.e. where branches took off and what is merged in where. Please add a git GUI to the github web UI and the desktop!

Echsecutor avatar Feb 16 '21 16:02 Echsecutor

GitHub already has that feature under insights > network. It's useful for seeing the network of forked branches:

  • Example: https://github.com/nwjs/nw.js/network

If you want that locally, use one of the other existing UI's that already offer this. GitHub Desktop should focus on helping people get started with Git, and in simplifying the complexities of Git. The previous 2-track horizontal git graph worked very well for this. Vertical graphing is available in the command line and in every other UI. Showing all branches is confusing and overwhelming. It would contain irrelevant information to what you care about. Just show 2 branches, horizontal. Keep it simple, if people want complex, that's what everyone else is offering.

TheJaredWilcurt avatar Feb 16 '21 17:02 TheJaredWilcurt

Many thanks for pointing out the Network Graph Feature! Not the best GUI view, but definitely essential. Seeing a git history like this is, in my view, essential to understand what git does in the first place, even for new commers.

Echsecutor avatar Mar 01 '21 10:03 Echsecutor

To GitHub(P.S. this is taken from something I wrote in an issue called Warning):

I have had an idea for adding the Git Graph. If you are hesitant of adding a Git Graph because there is no space in the application, you can add a button in the top row as there is a lot of white space:

ON A BIG COMPUTER LIKE MINE image

REDUCED FRAME image

When you press the button, it can take you to another tab with a whole scrollable git graph with any branch's name (even deleted ones) on hover and full commit details.

VS CODE GIT GRAPH COMMIT DETAILS image

Note: This is how the full commit details can look, though I would prefer them on a popup tab below or with a better style. This doesn't look that nice so if you implement this, I would expect a better design

FULL GIT GRAPH LOOK image

Note: Picture taken from online - Axosoft. This is a picture of GitKraken. Again I would expect a better design from GitHub Desktop but this looks sweet anyway and I love that the colors pop out!

whippingdot avatar Mar 30 '21 11:03 whippingdot

Any update on github desktop git graph?

JenuelDev avatar May 22 '21 13:05 JenuelDev

a horizontal graph is much friendlier and easier to read at a glance TheJaredWilcurt at https://github.com/desktop/desktop/issues/9452#issuecomment-698104410

yeah, this point was also raised at https://github.com/desktop/desktop/issues/1634#issuecomment-303646773

goyalyashpal avatar May 28 '21 17:05 goyalyashpal

https://docs.gitlab.com/ee/user/project/repository/#repository-graph ... that is for a good reason. @Echsecutor at https://github.com/desktop/desktop/issues/9452#issuecomment-779948669

the link needs update: https://docs.gitlab.com/ee/user/project/repository/#repository-history-graph

goyalyashpal avatar May 28 '21 18:05 goyalyashpal

does git graph already in github desktop? that would be nise.

JenuelDev avatar May 29 '21 01:05 JenuelDev

I think @hottestchilipepper's concept is brilliant. Let me explain why since many here don't seem to appreciate it:

  • It looks a bit bland right now, but once the professional UI designers in the Desktop team add a tiny bit of color and tweak a few other graphical elements I think it will be gorgeous.
  • Limiting the graph to the comparison view is the key insight here. I'm convinced that the reason why we still don't have a graphical branch view in Desktop yet is because the dev team thinks that the "rainbow spaghetti" charts (see examples above) in all other git GUIs are confusing and conflict with the barebones simplicity of Desktop. I agree. A simple two-branch view is a perfect compromise.
  • To those pushing for a horizontal graph: I agree that the horizontal graph looks clean and simple. But the problem with that design is that it adds no information to the "X commits ahead, Y commits behind" text that Desktop already presents. The advantage of a vertical graph is that you can show the actual commits side-by-side (as in this suggestion) which adds context to the ahead/behind text, making it a valuable addition to the comparison view.

In short: this is an excellent proposal. Now that Desktop finally has rollback functionality (YAY to "Create branch from commit") this is the last thing missing for Desktop to become "feature complete" for day-to-day git management - and IMHO the best git GUI available. I sincerely hope @billygriffin and the rest of the dev team revisit the idea and start hacking on it.

niclasmattsson avatar Jun 20 '21 19:06 niclasmattsson

  • .... The advantage of a vertical graph is that you can show the actual commits side-by-side (as in this suggestion) which adds context to the ahead/behind text, making it a valuable addition to the comparison view.

yeah, i was thinking that yesterday. Horizontal graph looses the ability to use the vertical dimension and also the efficiency in visually linking with the info in commit history - when language is horizontal as well (which most languages are).

goyalyashpal avatar Jun 21 '21 12:06 goyalyashpal

this image is taken from VS Code git graph extension... if your a vscode user,, u can use this extension instead.. image

JenuelDev avatar Jun 22 '21 05:06 JenuelDev

Envoyé de mon iPhone

Le 22 juin 2021 à 05:48, Jenuel Oras Ganawed @.***> a écrit :

 this image is taken from VS Code git graph extension... if your a vscode user,, u can use this extension instead..

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.

ssafiat avatar Jun 22 '21 06:06 ssafiat

this image is taken from VS Code git graph extension... if your a vscode user,, u can use this extension instead.. image

We know that, but we want it implemented in GitHub Desktop. Not everyone uses VSCode, and this is a thread about implementing the feature in GitHub Desktop so...

whippingdot avatar Jun 22 '21 06:06 whippingdot

Just my 2 cents: I wanted to switch from Sourcetree to GitHub desktop because we have so many repos there, but the lack of a history graph is a big issue for me. It gives me a quick overview of the history and interplay between branches. Just look at how much useful information I get in Sourcetree in one screen: Screenshot 2021-09-23 at 11 43 55

The history graph is prominent to provide easy navigation and "situational awareness". There are also options to filter and customise the graph. For each selected commit I can easily browse the changes in the bottom of the screen.

Please reconsider this feature request. Until then I'll stick with Sourcetree.

a-szotyori avatar Sep 23 '21 09:09 a-szotyori

No offense, but I don't think those screenshots from VScode and Sourcetree are a good fit for Github Desktop, which is all about simplicity, clarity and minimalism. I called graphs like that "rainbow spaghetti" in my comment above, and I honestly think those examples are more deterring than encouraging to the core Desktop devs. In contrast, I think the simple 2-branch graph in Desktop's comparison view as proposed in the OP is a more realistic idea and a perfect fit for Desktop.

niclasmattsson avatar Sep 23 '21 14:09 niclasmattsson

Thanks @niclasmattsson for your comment. I understand now that the design philosophy is different for GitHub Desktop. There is no one-size-fits-all and I discovered now that GitHub Desktop is not for me.

P.S.: I would recommend refraining from using somewhat derogatory terms that you invented publicly with strangers. It might be "rainbow spaghetti" for your and for someone else it's a valuable productivity booster.

a-szotyori avatar Sep 23 '21 14:09 a-szotyori

is there anything WIP for this ticket?

gh-jvirdee avatar Sep 24 '21 21:09 gh-jvirdee

is History Graph in Github desktop, will it be implemented?

JenuelDev avatar Sep 25 '21 13:09 JenuelDev

Hi, history graph in Sourcetree is very usefull tool. It's pity that such feature is not available in GiHub Desktop. I must go to Sourcetree app.

vedrancu avatar Oct 14 '21 10:10 vedrancu

Seems like there's this attempt? Anybody knows why was this PR closed and never merged?

https://github.com/desktop/desktop/pull/9444

vrgimael avatar Nov 16 '21 03:11 vrgimael

A lack of a way to visualize the commit graph is the single reason I recommend to others not to use GitHub Desktop. I understand all the arguments for simplicity, but I find GitHub Desktop users merge from main more and then wonder why code "they thought they fixed" has returned. They often are the users who say that Git forces you to save off your changes elsewhere, dump and reclone your repo, and copy them back in. It seems really counterproductive.

I have had some success with SourceTree, but the tool I've been sticking with is the one that lets me hide all the remote branches and even my own so I can focus on what's important. I think even those tools could be improved and smarter, letting me say I'm not interested in seeing tags, not interested in seeing new remote branches, just let me focus and narrow my view to what's important. That alone has allowed me to be very productive, but of course this is more than a "starter" feature.

One must first be very comfortable with what a branch/tag pointer really are in Git. I know that sounds like I am advocating for everyone to be advanced, but I've found one I teach someone this one basic point about Git, they seem to become much more productive and less afraid since they know a branch is just a pointer to a commit in a permanent graph.

SpaceShot avatar Mar 04 '22 13:03 SpaceShot

Saya bukan pr saya warga negare saya igin off semua...

Pada Jum, 4 Mac 2022 21:34 Chris Gomez @.***> menulis:

A lack of a way to visualize the commit graph is the single reason I recommend to others not to use GitHub Desktop. I understand all the arguments for simplicity, but I find GitHub Desktop users merge from main more and then wonder why code "they thought they fixed" has returned. They often are the users who say that Git forces you to save off your changes elsewhere, dump and reclone your repo, and copy them back in. It seems really counterproductive.

I have had some success with SourceTree, but the tool I've been sticking with is the one that lets me hide all the remote branches and even my own so I can focus on what's important. I think even those tools could be improved and smarter, letting me say I'm not interested in seeing tags, not interested in seeing new remote branches, just let me focus and narrow my view to what's important. That alone has allowed me to be very productive, but of course this is more than a "starter" feature.

One must first be very comfortable with what a branch/tag pointer really are in Git. I know that sounds like I am advocating for everyone to be advanced, but I've found one I teach someone this one basic point about Git, they seem to become much more productive and less afraid since they know a branch is just a pointer to a commit in a permanent graph.

— Reply to this email directly, view it on GitHub https://github.com/desktop/desktop/issues/9452#issuecomment-1059165165, or unsubscribe https://github.com/notifications/unsubscribe-auth/AWLJJTNYO3DABIPKGVWG5HTU6IGOJANCNFSM4L5FSIFA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you are subscribed to this thread.Message ID: @.***>

mananrrg95 avatar Mar 04 '22 13:03 mananrrg95

This is a critical feature and is very confusing why the official destop app of github lacks of a graphical tree view. This is the only reason why I have to use other's git clients to work with.

Please add this feature

Remusqs1 avatar May 19 '22 21:05 Remusqs1