Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use ScmTreeWidget in both commit details and in the diff widget #8084

Merged
merged 1 commit into from
Sep 30, 2020

Conversation

westbury
Copy link
Contributor

fixes #7616

What it does

This PR updates both the following to use ScmTreeWidget.

  • Commit Details editor (opened from the History view)
  • Diff view (opened from "Compare With..." on a folder's context menu)

This provides a more consistent view of resource changes, regardless of whether they are uncommitted, in a commit, or are a result of a diff between any two versions of a folder. Note that these widgets are provided by Theia's Git package, so not available if using the VS Code Git Builtin.

Some additional functionality comes along with this:

  • The diffs can be opened from the Commit Details

The Diff widget had two buttons, <- and ->, to step through changes within a file. Those buttons no longer exist and one now uses the cursor left and cursor right keys to step through changes. That brings it in line with the Source Control view and is also, with this PR, now the behavior in the Commit Details widget. If anyone wants to keep those buttons then that is fine (let me know) but we should probably also added them to both the Source Control and the Commit Details view.

Note that NavigableListWidget is now used only by the History widget. When the History is incorporated into the Timeline then NavigableListWidget will go away.

Note there is a known bug in this PR. If one opens a Diff on a folder, then makes a change to the files or staging that would change the Diff, the Diff widget does not immediately update. If one resizes the Diff widget then the refresh occurs. The forceUpdate is being done in ScmTreeWidget so I suspect this is some weird interaction with ReactVirtualized. I'm hoping someone will know what the cause may be, otherwise I will spend more time looking at it.

How to test

  • Test both the Commit Details widget and the Diff view.
  • Check that the Source Control view looks and behaves exactly as before.
  • Check in all three places that the tree/list toggle button works correctly.

Review checklist

Reminder for reviewers

@westbury westbury added git issues related to git scm issues related to the source control manager labels Jun 24, 2020
@akosyakov akosyakov mentioned this pull request Jun 29, 2020
1 task
@akosyakov akosyakov requested a review from vinokurig June 29, 2020 07:50
@akosyakov
Copy link
Member

Navigation in the commit detail view is broken. It should open a widget then split to right and don't give focus, otherwise there is no way to navigate between changes.

@akosyakov
Copy link
Member

I am not sure about removing arrows. I don't think that from user perspective these 3 views are the same, only from implementation. It seems that to simplify implementation we start removing user features.

@westbury
Copy link
Contributor Author

I am not sure about removing arrows. I don't think that from user perspective these 3 views are the same, only from implementation. It seems that to simplify implementation we start removing user features.

That's no problem. I'll just add an option to ScmTreeWidget to have or not have the arrows. I just didn't know the history of the arrows and why they were used in one place and not another.

@westbury
Copy link
Contributor Author

Should the arrows go in the view toolbar, next to the buttons that switch the tree/list mode, or stay where they were?

@akosyakov
Copy link
Member

akosyakov commented Jun 30, 2020

Should the arrows go in the view toolbar, next to the buttons that switch the tree/list mode, or stay where they were?

If you leave them as before it should be fine. We have Gitpod users with muscle memory to have them there while reviewing PRs via Gitpod.

@westbury
Copy link
Contributor Author

westbury commented Jul 7, 2020

Navigation in the commit detail view is broken. It should open a widget then split to right and don't give focus

I've now fixed this so that the appropriate editor widget location is used.

I am not sure about removing arrows.

I know you suggested putting back the arrows in the same place as before, i.e. to the right of the group header. However it was becoming messy to do that. I remember the very first time I saw the Diff view and my immediate reaction at the time was that the two arrow buttons looked out of place. The more I think about it the more it seems to me much cleaner with the other toolbar buttons. They're not moved that far, not far enough for anyone to have to re-learn. So, sorry, that's where they are for now.

All the other comments have also been addressed.

@akosyakov
Copy link
Member

How well this PR is compatible with old layout format for changed widgets?

@akosyakov
Copy link
Member

The diff widget does not work for me. I've tried to compare scm package with master in the tree mode. Navigation does not work for all files and the diff widget does not show any differences.

Arrows in the toolbar looks fine to me.

@akosyakov
Copy link
Member

akosyakov commented Jul 14, 2020

I've tried again. Navigation does not work sometimes, i.e. cannot move right from following positions.
Screenshot 2020-07-14 at 13 07 31
Screenshot 2020-07-14 at 13 06 10

Backend logs are full of errors:

Errors
root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-resource-opener.ts` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-resource-opener.ts` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-resource-opener.ts` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-resource-opener.ts` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-resource-opener.ts` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-resource-opener.ts` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-resource-opener.ts` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-resource-opener.ts` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-resource-opener.ts` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-resource-opener.ts` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-resource-opener.ts` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-resource-opener.ts` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-resource-opener.ts` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-resource-opener.ts` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-resource-opener.ts` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-resource-opener.ts` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-resource-opener.ts' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root WARN CellMeasurerCache should only measure a cell's width or height. You have configured CellMeasurerCache to measure both. This will result in poor performance.
root WARN Warning: componentWillUpdate has been renamed, and is not recommended for use. See https://fb.me/react-unsafe-component-lifecycles for details.

* Move data fetching code or side effects to componentDidUpdate.
* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.

Please update the following components: ScmHistoryList
root INFO [hosted-plugin: 4109] PLUGIN_HOST(4109): PluginManagerExtImpl/loadPlugin(/workspace/theia/plugins/vscode-builtin-css-language-features/extension/client/dist/cssMain)
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191
root ERROR The command `git show HEAD:packages/git/src/browser/diff/git-diff-header-widget.tsx` exited with an unexpected code: 128. The caller should either handle this error, or expect that exit code.
root ERROR fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

root ERROR Request show failed with error: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'
 GitError: fatal: path 'packages/git/src/browser/diff/git-diff-header-widget.tsx' exists on disk, but not in 'HEAD'

    at new GitError (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:87:28)
    at Object.<anonymous> (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:262:27)
    at step (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:56:23)
    at Object.next (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:37:53)
    at fulfilled (/workspace/theia/node_modules/dugite-extra/lib/core/git.js:28:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)
root ERROR Failed to open a SCM resource TypeError: Cannot read property 'uri' of undefined
    at MonacoEditorModel.get (https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:462:31)
    at https://3000-f6c6f894-11e8-485b-9635-0334cc0495e6.ws-eu01.gitpod.io/18.bundle.js:367:191

@westbury
Copy link
Contributor Author

Navigation does not work sometimes, i.e. cannot move right from following positions

Yes, I saw something odd going on and I've now had a chance to investigate. The problem occurs for 'Rename' and 'Copy' changes. The commit in this PR has both so is an excellent test case for this. There are actually two parts to the problem.

  1. The code in GitScmProvider.getUriToOpen was not putting oldUri into the diff uri. This is easily fixed and I have pushed a new commit with these changes. This problem was in master, introduced when the Source Control view was converted to a tree. There were multiple implementations of getUriToOpen, not all with all cases covered.

  2. There is a problem in ScmTreeWidget.openResource(). widget.getResourceUri() returns the original uri when a rename or copy. But sourceUri is the new uri. Hence the comparisons (two places) fail. The problem can be fixed by changing MonacoDiffEditor.getResourceUri to return the uri from this.modifiedModel (i.e. change line 92 of monaco-diff-editor.ts replacing originalModel with modifiedModel). I have no idea if this is the correct thing to do as far as all the other calls to getResourceUri are concerned so I have not committed this change. This problem has always existed, even before the change to use tree views in the Source Control widget, and it would probably be best to do the comparison on the full diff uri, both old uri and new uri. I think this is best fixed as a separate PR.

@akosyakov
Copy link
Member

akosyakov commented Jul 15, 2020

@westbury It would be a regression, on master I can iterate over all files in the diff view. I've checked that it works in Gitpod Theia as well which is like one month old. I wonder why we need such changes with this PR then it worked before. Could you check please why it works on master?

There is a problem in ScmTreeWidget.openResource(). widget.getResourceUri() returns the original uri when a rename or copy. But sourceUri is the new uri. Hence the comparisons (two places) fail. The problem can be fixed by changing MonacoDiffEditor.getResourceUri to return the uri from this.modifiedModel (i.e. change line 92 of monaco-diff-editor.ts replacing originalModel with modifiedModel). I have no idea if this is the correct thing to do as far as all the other calls to getResourceUri are concerned so I have not committed this change. This problem has always existed, even before the change to use tree views in the Source Control widget, and it would probably be best to do the comparison on the full diff uri, both old uri and new uri. I think this is best fixed as a separate PR.

That can be a good idea generally, but you are right we will need to analyse other clients.

@akosyakov
Copy link
Member

I've also noticed that GitDiffTreeModel is leaking:
Screenshot 2020-07-28 at 09 10 58

@akosyakov akosyakov mentioned this pull request Jul 28, 2020
1 task
@akosyakov
Copy link
Member

@westbury Do you think you will have time this week to look into it again? If not would you mind If i rebase and try to fix memory leak and issues with navigation?

@westbury
Copy link
Contributor Author

westbury commented Aug 9, 2020

when I use compare with... and master. It still stops navigating at added files

I can't reproduce that. It cursors through added files in both directions.

@westbury
Copy link
Contributor Author

westbury commented Aug 9, 2020

I've also noticed that GitDiffTreeModel is leaking

It is. There is some caching, but for other views such as FileTreeModel, although I see instances remain, the number match the number of widgets. GitDiffTreeModel instances remain without GitDiffWidget. I'll investigate further.

@westbury
Copy link
Contributor Author

westbury commented Aug 9, 2020

switching between flat and tree mode also become super slow

Looks like it's the event firing on each 'children' change. The model builds quickly but it is slow setting the root. It's quick when restoring the tree from store, so I will need to investigate further. I should get time to investigate tomorrow.

@westbury
Copy link
Contributor Author

The leak of the GitDiffTreeModel objects was caused by what appears to be a bug in Inversify, or perhaps Inversify is working as designed. I have pushed a commit with changes that avoid the problem.

I intended to look at the performance issue too today but unfortunately did not spend much time on this today.

@westbury
Copy link
Contributor Author

Removing the forceUpdate on tree change, which was not necessary, speeds up the switching from list to tree mode (as the tree change event is called for every node with children even though the new root is set as a single operation). I have been using this feature for a while to compare code and I have not seen navigation issues (other than issues that exist in master). Is there anything more that needs doing before merging this?

@akosyakov
Copy link
Member

akosyakov commented Aug 21, 2020

  1. I was able to reproduce reliably when navigation breaks for me:
  • amend your commit in the scm view
  • then in the explorer use Compare with... -> master on packages/scm
  • switch to the tree mode
  • try to navigate with the right arrow
  • for me it stucks on scm-groups-tree-model.ts (Added file)

Is it some special case?

  1. Also have following errors in the console:
root ERROR Failed to open a SCM resource Error: Request 'show' failed
    at Proxy.<anonymous> (https://3000-ff235339-329d-45a6-b6bc-3d28d715b2e7.ws-eu01.gitpod-staging.com/bundle.js:145025:33)
    at GitResource.<anonymous> (https://3000-ff235339-329d-45a6-b6bc-3d28d715b2e7.ws-eu01.gitpod-staging.com/62.bundle.js:6703:52)
    at step (https://3000-ff235339-329d-45a6-b6bc-3d28d715b2e7.ws-eu01.gitpod-staging.com/62.bundle.js:6679:23)
    at Object.next (https://3000-ff235339-329d-45a6-b6bc-3d28d715b2e7.ws-eu01.gitpod-staging.com/62.bundle.js:6660:53)
    at https://3000-ff235339-329d-45a6-b6bc-3d28d715b2e7.ws-eu01.gitpod-staging.com/62.bundle.js:6654:71
    at new Promise (<anonymous>)
    at push.../../packages/git/lib/browser/git-resource.js.__awaiter (https://3000-ff235339-329d-45a6-b6bc-3d28d715b2e7.ws-eu01.gitpod-staging.com/62.bundle.js:6650:12)
    at GitResource.push.../../packages/git/lib/browser/git-resource.js.GitResource.readContents (https://3000-ff235339-329d-45a6-b6bc-3d28d715b2e7.ws-eu01.gitpod-staging.com/62.bundle.js:6694:16)
    at MonacoEditorModel.<anonymous> (https://3000-ff235339-329d-45a6-b6bc-3d28d715b2e7.ws-eu01.gitpod-staging.com/16.bundle.js:433:124)
    at step (https://3000-ff235339-329d-45a6-b6bc-3d28d715b2e7.ws-eu01.gitpod-staging.com/16.bundle.js:69:23)

Not sure what caused them.

  1. There is also a new warning in logs:
CellMeasurerCache should only measure a cell's width or height. You have configured CellMeasurerCache to measure both. This will result in poor performance.
  1. Memory leak is still present. Please check that all scm/git widgets release all listeners from the retainers it does not seem to be the case:

Screenshot 2020-08-21 at 11 43 51

@westbury
Copy link
Contributor Author

  1. I was able to reproduce reliably when navigation breaks for me:

The problem was caused because the diff was going to HEAD, not the working tree. This resulted in files in the change list that opened diffs that did not have any changes. The cursoring could not cope with this. The problem was introduced when the different getUriToOpen implementations were merged.

  1. Also have following errors in the console:
root ERROR Failed to open a SCM resource Error: Request 'show' failed

This is also caused by diffs using HEAD. Added files do not exist in HEAD, hence this error.

I've pushed a commit with the fix.

@westbury
Copy link
Contributor Author

westbury commented Sep 2, 2020

  1. There is also a new warning in logs:
CellMeasurerCache should only measure a cell's width or height. You have configured CellMeasurerCache to measure both. This will result in poor performance.

This is not new. I've been seeing these for months. Look in any Travis build and you'll see these.

  1. Memory leak is still present. Please check that all scm/git widgets release all listeners from the retainers it does not seem to be the case

I had been able to see these, but the retainers listed by Chrome were all over the place. Now I can't reproduce the problem at all. Note that one often gets a duplicate of GitDiffWidget, but then I see that duplicated in master too, and I see other widgets unexpectedly duplicated.

@akosyakov
Copy link
Member

@vince-fugnitto Would you be able to test it?

@vince-fugnitto
Copy link
Member

@vince-fugnitto Would you be able to test it?

Sure! I'll test it shortly.

@westbury
Copy link
Contributor Author

@vince-fugnitto I just wanted to check if you still have time to test this.

@vince-fugnitto
Copy link
Member

@vince-fugnitto I just wanted to check if you still have time to test this.

Unfortunately I did not have the time to test the pull-request thoroughly due to internal priorities but I will try my best to review.
It may be good to add others to review as well since its a significant change.

Copy link
Member

@vince-fugnitto vince-fugnitto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll update this comment with my findings as I test, the changes overall look very good 👍

Possible Future Improvements

I noticed that opening changes from the tree does not necessarily respect the functionality we have regarding opening files too large, or incorrect file types. This may be something to improve in the future as the application goes offline and is difficult to recover (unless I force quit and restart).

For newly added files (A) should their diff not be completely positive (green) when the file was first added?

image

Example from vscode (different extension but same general idea):

image

CHANGELOG.md Outdated
@@ -163,6 +163,7 @@
<a name="1_4_0_deprecate_languages"></a>
- [[languages]](#1_4_0_deprecate_languages) `@theia/languages` extension is deprecated, use VS Code extensions to provide language smartness:
https://code.visualstudio.com/api/language-extensions/language-server-extension-guide [#8112](https://github.com/eclipse-theia/theia/pull/8112)
- [git] the changes in the commit details (opened from the history view) and in the diff view (opened with 'Compare With...' on a folder's context menu) are now switchable between 'list' and 'tree' modes
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changelog entry will need to be updated to the next release (not 1.4.0 as it is now).

@westbury
Copy link
Contributor Author

For newly added files (A) should their diff not be completely positive (green) when the file was first added

This PR does not change that. Personally I prefer the behavior in Theia to the behavior in vscode. I get twice the width to see added and deleted files and it is easier to read the code.

The changelog entry will need to be updated to the next release (not 1.4.0 as it is now).

I've pushed a commit which moves the entry within the changelog.

@vince-fugnitto
Copy link
Member

For newly added files (A) should their diff not be completely positive (green) when the file was first added

This PR does not change that. Personally I prefer the behavior in Theia to the behavior in vscode. I get twice the width to see added and deleted files and it is easier to read the code.

Agreed, that's why I mentioned it under 'possible future improvements'. I think the behaviour is vscode is more consistent with other apps and tools (even github displays new files as newly added lines). If users want more space they can use inline diff rather than side to side using diffEditor.renderSideBySide. Of course this is not the goal of the pull-request.

The changelog entry will need to be updated to the next release (not 1.4.0 as it is now).

I've pushed a commit which moves the entry within the changelog.

👍


It would be good for others to review as well if possible.

Signed-off-by: Nigel Westbury <nigelipse@miegel.org>
@westbury
Copy link
Contributor Author

@vince-fugnitto I've rebased to resolve the changelog conflicts.

I think it is hard to find a third person to test this because it does not affect those who use the vs-code git builtin. If there are no issues that need to be fixed can it be approved based on testing by @vince-fugnitto and @akosyakov ?

Of course I do need to get back to #7976 so these Git diffs can be included when using the vs-code builtin.

Copy link
Member

@vince-fugnitto vince-fugnitto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@westbury I verified the changes once more and they work well for me 👍
I would have preferred if others would review as well but I believe we all migrated to using the builtin git extensions instead.

@westbury westbury merged commit 809e10c into master Sep 30, 2020
@westbury westbury deleted the diff-tree branch September 30, 2020 08:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
git issues related to git scm issues related to the source control manager
Projects
None yet
Development

Successfully merging this pull request may close these issues.

The Git diff editor should show the changed files as a tree
3 participants