Change:
Steps to Reproduce: a directory with Git initialized. "Incoming/Outgoing" section in the SCM pane appear. Could be done by either: Make sure the current branch has an upstream branch, then commit something. Or Set and to . the page. a change to a file. Expected result: the file appears under "Changes" section in SCM pane. Actual result: the "Changes" section doesn't appear in SCM pane. Expected result: the file appears under "Staged changes" section in SCM pane. Actual result: the "Staged changes" section doesn't appear in SCM pane. Happens on Firefox 121.0, Ubuntu 22.04. Doesn't seem to happen on Chromium 120 and WebKitGTK 2.42.3. Happens in GitHub Codespaces: Also happens with code-server: Also happens with OpenVSCode Server insider:
I'm experiencing the same or a very similar issue in latest code-server using Firefox. I can no longer open the repository in source control if there are any incoming/outgoing changes and instead am getting an exception in the browser console without the repository opening. Likely the reason the issue appears slightly differently for me is because I have multiple repositories in source control. For anyone else affected the following settings are making this issue to not occur:
Same here but not consistent: Version: 1.85.1 (user setup) Commit: Date: 2023-12-13T09:49:37.021Z Electron: 25.9.7 ElectronBuildId: Chromium: 114.0.5735.289 18.15.0 V8: 11.4.183.29-electron.0 OS: Windows_NT x64 10.0.
could you please try VS Code Insiders and see if you are still able to reproduce the problem? I have fixed couple of issues in this area and it would be great if you could try Insiders to make sure that this issue is covered by my fixes as well. Thanks!
Tested with OpenVSCode-server insiders, which is rebased on top of commit ("Sanity Bounds for "window.zoomLevel" ( ()") [1]. The issue still exists. code-server doesn't release insider builds, and I don't know how to test insider builds of GitHub codespaces' web UI, so I can't test those. (Off topic, but does GitHub codespaces provide an insider build for web interface by any chance?) [1]:
if you open a GitHub Codespace, you can click on the "Gear" icon in the activity bar, and there is a menu item to switch to VS Code Insiders. You can try that out and let me know if you are still able to reproduce the issue. Thank you!
Thank you. Tested with the GitHub Codespaces + VSCode insiders [1], the issue can still be reproduced. Interestingly, if I change the to and then to again, the "Source control" pane essentially freeze: the "Incoming/Outgoing" section doesn't comeback, and further changes to the working directory is not shown anymore (like, if you add another file, it doesn't show up, even after I click "Refresh" button). [1]
thanks for trying this out. Could you please confirm that this indeed can only be reproduce in Firefox and everything works as expected in a Chromium based browser (ex: Chrome, Edge, etc)? Could you please the developer tools console and see if there are any relevant errors there? Could you also invoke the "Git: Show Git Output" command and send me the contents of it?
Yes. This only happens in Firefox. It doesn't happen in Chromium [1], and Gnome Web (WebKit-based) [2]. <details[1] <preVersion: 1.86.0-insider Commit: Date: 2024-01-23T06:18:07.155Z Browser: Mozilla/5.0 (X11; Linux x8664) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 </pre[2] <preVersion: 1.86.0-insider Commit: Date: 2024-01-23T06:18:07.155Z Browser: Mozilla/5.0 (X11; Ubuntu; Linux x8664) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Safari/605.1.15 </pre</detailsThere seems to be. As soon as I change to , this error pops up in the brower's console. And it seems to pop up every time I press "Refresh" in the source control pane too. <details<preUncaught (in promise) Error: Invalid comparison compare K K z w F E D C B z updateChildren Cc a promise callbackqueue Cc queue Cc W y fire z y z fire Lb wb reloadLocalUserConfiguration Hb updateValue updateValue Pc Mc b promise callbacktrigger Mc Lc ge y </pre</detailsHere it is. Although, I'm not sure how useful it is. <details<pre2024-01-23 10:40:31.442 [info] Log level: Info 2024-01-23 10:40:31.442 [info] Validating found git in: "git" 2024-01-23 10:40:31.442 [info] Using git "2.43.0" from "git" 2024-01-23 10:40:31.442 [info] git rev-parse --show-toplevel [126ms] 2024-01-23 10:40:31.442 [info] git rev-parse --git-dir --git-common-dir [9ms] 2024-01-23 10:40:31.442 [info] Open repository: /workspaces/core-base 2024-01-23 10:40:31.442 [info] git config --get commit.template [78ms] 2024-01-23 10:40:31.442 [info] git rev-parse --show-toplevel [65ms] 2024-01-23 10:40:31.481 [info] git for-each-ref --format=%(refname)%00%(upstream:short)%00%(objectname)%00%(upstream:track)%00%(upstream:remotename)%00%(upstream:remoteref) refs/heads/main refs/remotes/main [22ms] 2024-01-23 10:40:31.483 [info] git rev-parse --show-toplevel [5ms] 2024-01-23 10:40:31.501 [warning] ENOENT: no such file or directory, open '/workspaces/core-' 2024-01-23 10:40:31.523 [info] git rev-parse --show-toplevel [5ms] 2024-01-23 10:40:31.523 [info] git rev-parse refs/remotes/origin/main [23ms] 2024-01-23 10:40:31.630 [info] git status -z -uall [89ms] 2024-01-23 10:40:31.631 [info] git rev-parse --show-toplevel [70ms] 2024-01-23 10:40:31.674 [info] git rev-parse --show-toplevel [18ms] 2024-01-23 10:40:31.675 [info] git config --get commit.template [4ms] 2024-01-23 10:40:31.716 [info] git rev-parse --show-toplevel [26ms] 2024-01-23 10:40:31.718 [info] git for-each-ref --format=%(refname)%00%(upstream:short)%00%(objectname)%00%(upstream:track)%00%(upstream:remotename)%00%(upstream:remoteref) refs/heads/main refs/remotes/main [12ms] 2024-01-23 10:40:31.736 [warning] ENOENT: no such file or directory, open '/workspaces/core-' 2024-01-23 10:40:31.755 [info] git rev-parse refs/remotes/origin/main [20ms] 2024-01-23 10:40:31.784 [info] git merge-base refs/heads/main refs/remotes/origin/main [30ms] 2024-01-23 10:40:31.855 [info] git status -z -uall [84ms] 2024-01-23 10:40:31.863 [info] git rev-list --count --left-right [17ms] 2024-01-23 10:40:33.111 [info] git config --local [138ms] 2024-01-23 10:40:33.111 [warning] git config failed: Failed to execute git 2024-01-23 10:40:49.678 [info] git config --get commit.template [2ms] 2024-01-23 10:40:49.709 [info] git for-each-ref --format=%(refname)%00%(upstream:short)%00%(objectname)%00%(upstream:track)%00%(upstream:remotename)%00%(upstream:remoteref) refs/heads/main refs/remotes/main [5ms] 2024-01-23 10:40:49.732 [warning] ENOENT: no such file or directory, open '/workspaces/core-' 2024-01-23 10:40:49.733 [info] git rev-parse refs/remotes/origin/main [1ms] 2024-01-23 10:40:49.768 [info] git status -z -uall [9ms] 2024-01-23 10:40:49.854 [info] git merge-base refs/heads/main refs/remotes/origin/main [2ms] 2024-01-23 10:40:49.873 [info] git rev-list --count --left-right [2ms] 2024-01-23 10:41:41.011 [info] git config --get commit.template [15ms] 2024-01-23 10:41:41.012 [info] git for-each-ref --format=%(refname)%00%(upstream:short)%00%(objectname)%00%(upstream:track)%00%(upstream:remotename)%00%(upstream:remoteref) refs/heads/main refs/remotes/main [3ms] 2024-01-23 10:41:41.026 [warning] ENOENT: no such file or directory, open '/workspaces/core-' 2024-01-23 10:41:41.029 [info] git rev-parse refs/remotes/origin/main [2ms] 2024-01-23 10:41:41.049 [info] git status -z -uall [7ms] 2024-01-23 10:41:41.112 [info] git merge-base refs/heads/main refs/remotes/origin/main [2ms] 2024-01-23 10:41:41.131 [info] git rev-list --count --left-right [3ms] </pre</details

Discussion:
return 1; } <del> if (isSCMViewSeparator(one)) { if (!isSCMHistoryItemGroupTreeElement(other) && !isSCMResourceGroup(other)) { throw new Error('Invalid comparison'); } return 0; } </del> if (isSCMResourceGroup(one)) { <del> if (!isSCMResourceGroup(other)) { throw new Error('Invalid comparison'); } </del> <ins> return isSCMResourceGroup(other) ? 0 : -1; } </ins> <del> return 0; </del> <ins> if (isSCMViewSeparator(one)) { return isSCMResourceGroup(other) ? 1 : -1; </ins> } if (isSCMHistoryItemGroupTreeElement(one)) { <del> if (!isSCMHistoryItemGroupTreeElement(other) && !isSCMResourceGroup(other) && !isSCMViewSeparator(other)) { throw new Error('Invalid comparison'); } return 0; </del> <ins> return isSCMHistoryItemGroupTreeElement(other) ? 0 : 1; </ins> } if (isSCMHistoryItemTreeElement(one)) {