microsoft / vscode

Visual Studio Code
https://code.visualstudio.com
MIT License
162.28k stars 28.57k forks source link

Git source control is showing the whole history under "Incoming/Outgoing" when the working tree is clean #224517

Closed ejohnson-dotnet closed 2 weeks ago

ejohnson-dotnet commented 1 month ago

Does this issue occur when all extensions are disabled?: Yes

Steps to Reproduce:

  1. Open a folder with a git repo in VS Code
  2. Click on the Source Control side tab.
  3. Under the "Incoming/Outgoing" it will show the whole history, even when git status shows "Your branch is up to date" and "nothing to commit, working tree clean"

It used to show only the commits which really needed to be pushed or pulled.

gjsjohnmurray commented 1 month ago

Did you see https://code.visualstudio.com/updates/v1_92#_incomingoutgoing-changes-graph about the new history graph which is the default since 1.92 released today?

saschwarz commented 1 month ago

@gjsjohnmurray thanks for the link. I came here looking to find out how to turn it off.

The release notes say tell us how you like it. Not sure where to do that. I would have loved it if it was in a collapsible/accordion section like all the others. I really only want to see commits that aren't yet pushed/pulled all the time (like it used to do).

The section naming is now misleading; I'd expect "Incoming/Outgoing" to be empty once I've pulled/pushed(?)

Would it be possible to describe use case(s) where a dev would want to see historical commits all the time? Maybe I'm using git in an unusual manner(?)

timothycohen commented 1 month ago

I do appreciate the feature, but I'd agree that it really should be an accordion section. Scrolling through the staging area now flies off into the commit history instead of hitting a hard stop at the last unstaged file.

deflis commented 1 month ago

I welcome the feature to display the Git Commit Graph as it is something I have wanted for a long time. However, I strongly believe that these should be displayed as an independent section like GitLens and not within the Source Control.

mercury233 commented 1 month ago

What is more, it show up on a repo which I'll never pull or push, no upstream set. https://github.com/microsoft/vscode/issues/224539

georgerdpdmg commented 1 month ago

I have the same issue. Would be nice to be able to toggle off or hide, is very invasive at the moment.

Version: 1.92.0 (Universal) Commit: b1c0a14de1414fcdaa400695b4db1c0799bc3124 Date: 2024-07-31T23:26:45.634Z (1 day ago)

**@** ------- % git status
On branch feat/-----
Your branch is up to date with 'origin/feat/------'.

nothing to commit, working tree clean
**@** -------  % 
Screenshot 2024-08-02 at 09 41 08
FilippoLeon commented 1 month ago

If you have many changes, this slows down VS Code incredibly too.

gjsjohnmurray commented 1 month ago

@georgerdpdmg the scm.showHistoryGraph setting will turn it off.

lszomoru commented 1 month ago

Thank you all for the feedback! The thinking behind showing the changes in the main Source Control view is that these changes are related to your inner loop (outgoing changes, incoming changes, and changes to the base branch in case one exists).

I hear you that this information can be distracting if you are used to the Source Control view being empty when there are no pending changes. We are considering making the section collapsible though if we were to collapse it, I would rather move this information into a separate view.

Please keep the feedback coming. Thank you!

ricardograca-scratch commented 1 month ago

Can this be made opt-in? It's really hard to read, adds clutter to the UI, I have no idea what it's showing me and adds no value to me on a first glance. Maybe if I was looking for it specifically it would be useful, but as is it's just distracting.

gjsjohnmurray commented 1 month ago

@ricardograca-scratch please see https://code.visualstudio.com/updates/v1_92#_incomingoutgoing-changes-graph for mention of the setting to disable it.

georgerdpdmg commented 1 month ago

@gjsjohnmurray Thank you, much better now with "scm.showHistoryGraph": false For anyone else not knowing where to add the setting, see below:

Screenshot 2024-08-02 at 12 32 08

Thank you @lszomoru, if in a future release is going to become UI toggle-able I will enabled it back because it has value. I've got depressed when I realised how many commits I have on my feature branch, blame css (or my lack of css expertise) haha

quyvsquy commented 1 month ago

Ya, i dont like this feature. You can turn off by add to settings.json with "scm.showHistoryGraph": false,

bravo-stack commented 1 month ago

@gjsjohnmurray thanks for the link. I came here looking to find out how to turn it off.

The release notes say tell us how you like it. Not sure where to do that. I would have loved it if it was in a collapsible/accordion section like all the others. I really only want to see commits that aren't yet pushed/pulled all the time (like it used to do).

The section naming is now misleading; I'd expect "Incoming/Outgoing" to be empty once I've pulled/pushed(?)

Would it be possible to describe use case(s) where a dev would want to see historical commits all the time? Maybe I'm using git in an unusual manner(?)

Same here. It just felt all cumbersome and poorly organized.

Matthijs2023 commented 1 month ago

@lszomoru It seems to have performance issues.

I upgraded today to v1.92.0 and had a couple times that VSC was (temporary) unresponsive when switching/merging branches. Turning the showHistoryGraph setting off solved it. I think if there are too many merges, it has performance issues. Maybe the graph should be cut off and only loading the last 25 merges with a load more button.

Also I think it's confusing to see this graph in the same spot where you normally only see the differences with the remote branch. I think it would be better if it's separate (like the timeline in the explorer).

mateo-morales-garcia-gamecoderstudios commented 1 month ago

I was using it before, but after the update it feels slower, probably because now shows too the main branch where there are lots of merge commits 🤔

siegelaaron94 commented 1 month ago

A toggle icon here Screenshot 2024-08-02 120757

And a tree expand/collapse control here

Screenshot 2024-08-02 121045

These changes would make it so I would use this feature and not just turn it off and forget about it. As a default, it's just too much noise, but it is an excellent feature in general when you do need it.

ChrisMaunder commented 1 month ago

I have about 15 repos all under the same workspace. This makes that tab incredibly noisy and hard to navigate without adding any value to my workflow. Why on earth wasn't there a simple "hide" button added when this was released?

Further: on the first repo the history spans 6 "pages" on that sidebar. The other repos show far less, but interestingly, when I've done a sync on the other repos the history disappears (yay). And yet the 6 pages of pointless history on the first repo is always shown

PLEASE let us hide this. It's absolutely killing my productivity and I'm finding I'm making mistakes having to hunt through the jungle.

ChrisMaunder commented 1 month ago

the scm.showHistoryGraph setting will turn it off.

@gjsjohnmurray I owe you a beer.

rwestbrock-24hf commented 1 month ago

Thanks for sharing that setting to disable it but it would be better if we could toggle it right in the source control panel instead. I liked how it worked before where I would see my outgoing commits before pushing them as it gave me visibility without making the list take up the entire panel like it does now.

MN7 commented 1 month ago

To those who want to toggle this 'History Graph' off:

Disable this scm.showHistoryGraph by going to settings (Press Ctrl + , on windows, and simply search for scm.showHistoryGraph).

Search tags (hopefully to help other developers searching about this feature): vs code, incoming / outgoing, incoming outgoing, incoming, outoing, left side panel, graph, performance degradation, latest update, july 2024

Buedenbender commented 1 month ago

Is there somehow the option to limit the number of entries in the history? I would like something like a head (top 5) or configurable via settings to the top x.

LepkoQQ commented 1 month ago

I agree with others who say that this is too noisy and should at lease be collapsible, if not disabled by default.

I was searching around for the option to disable and now that I've disabled it it's way better and I can focus on actual code that is not yet pushed or pulled.

I agree that it can be useful, but either collapsed or in another view.

Paul-Hatcher commented 1 month ago

I've just come across this change today. I have to say as per comments here it's noisy/confusing . I'm also unsure of any actual use case where it would be in any way useful. Should have been an opt in for those that want vscode clutter.

ohumeniuk-cw commented 1 month ago

very annoying feature, especially taking into account that you can't collapse that view and don't know how to disable it

detzt commented 1 month ago

I'm also reverting back to the previous behavior by setting "scm.showHistoryGraph": false, which is and has been useful to glance at what's going to change before pulling. I can see that there are situations where the new view is useful, but I would expect it in a separate part of the UI, like "History", "Network Graph", or "Branch Explorer" in other SCM applications.

SampsonCrowley commented 1 month ago

I loved the old feature. I despise the newest update.

"incoming/outgoing" should mean exactly that. only what is not already in sync.

please bring back the previous behavior. If I want to see the full history log, not just what's different between local and origin, that's what the "commits" section is for

Screenshot 2024-08-07 at 12 22 32

ricardomlourenco commented 1 month ago

very annoying feature if we can't collapse it or disable it. Also is making Source Control Tab SUPER slow for me. Rather please move it to a button where we can click it and it shows on the right side bigger and easier to read. nd not in the TAB,

ricardomlourenco commented 1 month ago

I'm also reverting back to the previous behavior by setting "scm.showHistoryGraph": false, which is and has been useful to glance at what's going to change before pulling. I can see that there are situations where the new view is useful, but I would expect it in a separate part of the UI, like "History", "Network Graph", or "Branch Explorer" in other SCM applications.

Thank you much! That helped me to disable this damn thing! Now my source control tab is back to speed 👍

ricardomlourenco commented 1 month ago

How can we vote/request to improve this feature, remove it from the Tab and move it to the right as it should be?

lmsonic commented 1 month ago

I actually would like to be able the branch history in the source control panel even after you sync (maybe it could be with a configurable filter to show the latest n commits). Could it be an optional setting, since seems like a lot of people in this thread don't have my same preference? Thank you

Kenionatus commented 4 weeks ago

It is extremely slow for me (multiple minutes for the menu to become usable). This is probably due to the git repo having almost 60k commits. This makes the feature unusable for me. VScode version is 1.92.1. Loading with all extensions disabled does not fix it.

gjsjohnmurray commented 4 weeks ago

@Kenionatus I suggest you turn the feature off using "scm.showHistoryGraph": false

starjet commented 4 weeks ago

Making this show up by default in the source control panel is a terrible idea
Did no one using insider builds really say anything about this?

Mahamottka commented 3 weeks ago

Adding scm.showHistoryGraph to json setting worked, thanks.

This new update would be good if only first 10 latest commits were shown, by default, otherwise it should be hidden by default. I dont know who thought this would be a good idea, because me with trillion commits suddenly had to scroll all the way down to display my modules, VScode owes me a new mouse wheel.

ian-emsens-shd commented 3 weeks ago

As others have said, this is a "feature" that should be off by default.

To turn it off, use your equivalent of CMD + SHIFT + P, type settings and search for history graph.

Optionally, you can click the cogwheel next to the setting and apply it to all your profiles to banish it from every instance of vsc you use.

Screenshot 2024-08-14 at 17 18 03
TimothyAlexisVass commented 3 weeks ago

The release notes say tell us how you like it.

I like it 0/10

mortenlerudjordet commented 3 weeks ago

I do like it, though MUST add something that limits how many history entries are shown for each repo. Something like "scm.historyGraphLength" : 10

MikeRich88 commented 3 weeks ago

When this feature is on, it obfuscates the list of outgoing changes that I need to push.

Rating 0/10

sovetski commented 3 weeks ago

Did you see https://code.visualstudio.com/updates/v1_92#_incomingoutgoing-changes-graph about the new history graph which is the default since 1.92 released today?

Thank you for the link. After deactivating it, everything is working fine again.

I don't understand why features like this are applied by default. It leads to a very bad user experience.

huyz commented 3 weeks ago

I don't understand why features like this are applied by default

Maybe they need more users testing the Insiders edition to yell early.

lszomoru commented 3 weeks ago

Thanks again for all the feedback. In the latest VS Code Insiders release we have added multiple options to easily hide the history graph: 1) right click on any empty space in the "Source Control" view, and use the "Show Incoming/Outgoing Changes" action, 2) the ... menu in the section header contains the "Show Incoming/Outgoing Changes" action, 3) the ... menu of the "Source Control" view contains the "Show Incoming/Outgoing Changes" action user the "View & Sort" submenu.

We are also evaluating moving this information into a separate view. Will continue to update this issue with the work happening to address the feedback.

starjet commented 3 weeks ago

Thanks again for all the feedback. In the latest VS Code Insiders release we have added multiple options to easily hide the history graph: 1) right click on any empty space in the "Source Control" view, and use the "Show Incoming/Outgoing Changes" action, 2) the ... menu in the section header contains the "Show Incoming/Outgoing Changes" action, 3) the ... menu of the "Source Control" view contains the "Show Incoming/Outgoing Changes" action user the "View & Sort" submenu.

We are also evaluating moving this information into a separate view. Will continue to update this issue with the work happening to address the feedback.

I'll be honest here. The most sensible change to do here is just make this not be enabled by default. People who have a small number of commits can turn it on if they so wish, and those who have a large number of commits won't immediately have their senses assaulted by it.
But it's definitely a step in the right direction to make it easier to turn off, so thanks for that at least.

thoroc commented 2 weeks ago

Please make it a opt-in, this is definitely annoying enough that people sought how to disable it despite the fact that the user isn't being prompted for any preferences regarding this option.

ptankov commented 2 weeks ago

I would rather move this information into a separate view.

YES!

et304383 commented 2 weeks ago

Turn this off by default please.

moronigranja commented 2 weeks ago

I also hate it. If I wanted to see a snakes nest, I wouldn't waste so much time managing cables on my desk.

rikimasorati commented 2 weeks ago

It loads 5 years of coding everytime i do something on git and commiting and pushing takes now painfully long. And it cant be turned off also. Very bad. Already looking from alternatives from competition.

saschwarz commented 2 weeks ago

@rikimasorati https://github.com/microsoft/vscode/issues/224517#issuecomment-2265162230

lszomoru commented 2 weeks ago

Thanks again all for your feedback. The history graph has been moved into its own dedicated view - Source Control Graph. The new view is still limited to the current/remote/base branches but next milestone we will be adding the capability to select any branches from the repository to be shown. The new view also uses caching, paging, and if the view is not visible or expanded no additional git calls are being made.

The new view is already available in VS Code Insiders and will be included in the next VS Code Stable release. Please five it a try and let us know what you think. Thanks!