GitLiveApp / GitLive

GitLive Docs
82 stars 24 forks source link

"No git repositories found in this project" while running under WSL #86

Closed darkvertex closed 1 year ago

darkvertex commented 2 years ago

I'm running under WSL2 (Windows Subsystem for Linux) and the extension is installed and let me authenticate and all, but it's not detecting any git repositories in my VSCode workspace.

It's a single-root workspace, with a git repo at the root, nothing weird. origin url points to a private bitbucket repo.


If I try a repo direct, outside of WSL, it seems to detect something but I actually have trouble doing much with it. I see:

image

When I click "Install GitLive on felixandpaul" it seems to complete successfully yet it never gets detected by the extension.

I guess it maybe has something to do with my company being its own Bitbucket "team"? It doesn't appear as an available workspace when I'm authorizing the GitLive app to my Bitbucket account. Is that because I'm not admin? Can only admins of a workspace use GitLive?? That seems weird.

nbransby commented 2 years ago

Hi @darkvertex yes I am afraid only admins can install the GitLive for Bitbucket app on a Bitbucket team. Currently we require this app to be installed before any team member can use GitLive with repositories from that team.

We know this kinda sucks and we are actively working on removing this requirement soon, sometime in Q4.

We'll keep this issue open until we've released the new version with the requirement removed, thanks for reaching out.

nbransby commented 2 years ago

As for the WSL issue (which I assume is inmeterial for you now) we will try and reproduce our end

darkvertex commented 2 years ago

Indeed if I have to ask IT to install something to the whole workspace I'd rather not, so the WSL issue is immaterial to me until the Bitbucket integration is improved. It would be nice if you can fix it eventually though.

Keep me posted. Thank you!

snekcz commented 2 years ago

Actually, it seems the extension is not supported in remote development workspace in VS Code. Can you add support for remote workspaces please?

nbransby commented 2 years ago

@snekcz what is the issue you are having exactly?

snekcz commented 2 years ago

@snekcz what is the issue you are having exactly?

We just wanted to try this extension. 3 developers, using VS Code. Two of us have no issue to connect, - those who store their repos locally. But I have stored all my files inside WSL2 and using VSCode remote development extensions to access them. GitLive extension says "GitLive was unable to find the built-in Git extension. Please make sure the Git extension is enabled." on start and shows "No repository found in this project" in GitLive window. I even tried to install GitLive to WSL remote server manually, but it says it is disabled there, "because it prefers to run locally". I think if it runs in WSL, like many other extensions do, it would work, because Git repo is also stored there. UPDATE: I have found a reason/solution !!! extensionKind is defined as [ "ui", "workspace" ] in extension's package,json. When I override it in VS Code settings to [ "workspace" ] it started to work. Can you change it to [ "workspace" , "ui" ], so it prefers workspace for running? I think it should solve the issue without "hacking" the VSCode settings.

Steakeye commented 2 years ago

@snekcz Thanks for reporting this and also the suggested solution; we're just confirming it works and doesn't have any other side effects. All being well the required change will go into our next release.

snekcz commented 2 years ago

@snekcz Thanks for reporting this and also the suggested solution; we're just confirming it works and doesn't have any other side effects. All being well the required change will go into our next release.

@Steakeye Actually there seems to an issue. When I have the extension activated, the VSCode git process randomly overloads CPU by continuously invoking these commands:

> git fetch
> git diff --name-status -z --diff-filter=ADMR --cached c68ebc3b6b38ac76cd49605e5390f686632f7e79
> git status -z -u
> git symbolic-ref --short HEAD
> git for-each-ref --format=%(refname)%00%(upstream:short)%00%(objectname)%00%(upstream:track) refs/heads/master refs/remotes/master
> git for-each-ref --sort -committerdate --format %(refname) %(objectname) %(*objectname)
> git remote --verbose
> git config --get commit.template
> git merge-base HEAD origin/master

I don't know what it causes or if it happens only to me (running the extension in remote workspace) or if it is a common situation. Even not sure if the issue is in GitLive or internal VSCode Git extension.

nbransby commented 2 years ago

@snekcz that looks like a nasty one - we'll investigate to see if it is our end and if so release a fix as soon as possible, thanks for reporting

Steakeye commented 2 years ago

@darkvertex the solution provided by snekcz will be going into our next release, it would be great if you could let us know if you encounter any further issues once you are able to upgrade.

Ygnys commented 2 years ago

@darkvertex Great news, we now support offline mode which removes installation requirement! To try it out, please make sure to install the latest version of the plugin available in EAP channel for JetBrains and Pre-Release for VS Code. (Here you can find more on GitLive's EAP for JetBrains and GitLive's EAP for VS Code). Will be happy to hear how it works for you!

Ygnys commented 2 years ago

@darkvertex @snekcz The fix for the WSL issue has been added to the newest version (EAP for VS Code). The latest version fixes also the CPU issues. Would be great to hear how it works for you!

snekcz commented 2 years ago

@darkvertex @snekcz The fix for the WSL issue has been added to the newest version (EAP for VS Code). The latest version fixes also the CPU issues. Would be great to hear how it works for you!

@Ygnys I can confirm GitLive now runs under WSL also and from the time I have upgraded to EAP, I had no CPU issues (more than a month now). Thank you for the fixes.

Ygnys commented 2 years ago

@snekcz thanks for the feedback! Happy to hear it works fine!

relandboyle commented 2 years ago

@snekcz I'm just checking out Git Live for the first time and I'm seeing the same error and symptoms that you described on November 10th.

I'm on Win 10 / WSL2 / Ubuntu and I generally keep everything up to date. I tried Git Live pre-release and it appeared to behave the same way.

Any idea where I should start looking for the cause?

Thank you.

Steakeye commented 2 years ago

Hi @relandboyle,

I've been investigating your issue and I've been able to reproduce it and also record a video demonstrating a workaround that Id like you to try. In the video linked in this post, demonstrates how I select a project that exists in the WSL Ubuntu VM and GitLive fails to load on start but I was able to trigger GitLive into starting by pressing the refresh button in the bottom bar of VSCode; an alternative which should have the same effect is to edit and save a file.

https://user-images.githubusercontent.com/8146520/157322193-974e7d78-8dc5-40d7-8078-d9c9d3b71a54.mp4

The screenshot below circles the button I'm referring to: Git sync button

Could you please try this workaround and report back to us whether it produces the desired effect?

In the mean time we will be working on a fix for this particular issue.

Thanks!

relandboyle commented 2 years ago

@Steakeye Thanks for the video.

I don't see that refresh button or the current branch in the status bar. Mine looks like the image below.

This is on a branch with an upstream remote.

I notice in the video that you don't see the error message that I am seeing now, and that snekcz described in November.

Do I have some common setting or feature switched off?

Thank you.

image

Steakeye commented 2 years ago

@relandboyle would you be able to share the VSCode version information for you IDE? It can be found under the Help section by selecting About.

about section under help

If you could verify the EAP of GitLive version you're using that would also be helpful.

GitLive EAP should be: GitLive EAP version

Thanks!

Steakeye commented 2 years ago

@relandboyle just thought you'd be interested that I managed to clone your repo and set up two remotes and GitLive was still able to initialise:

upstream and origin remotes

I also installed GitLens in case there was some reason that the plugins were conflicting but this doesn't seem to be the case.

All else being well, that error message is meant to indicate that the VSCode Git Extension isn't enabled, so it might be worth verifying that it's enabled in the Extensions tab. Also, it's a stretch but that message can arise because there's no Git installed in the OS, which in this case would be the Ubuntu running under WSL, so verifying that would also be useful!

Let me know how you get on 👍🏽

darkvertex commented 2 years ago

Hey, I was able to install the prerelease version under WSL2, so.. yay?

Sadly, until it does not require admin rights on the entire Bitbucket and Jira teams, the whole thing is useless to me as I can't use it with my team.

I understand it may seem logical to require this, but it's a big point of friction and I don't see why I can't just associate it to my Bitbucket user (which it let me log in with) which has full readwrite access on all our company repos so there should be no need for additional rights to fulfill the premise of the product.

nbransby commented 2 years ago

Sadly, until it does not require admin rights on the entire Bitbucket and Jira teams, the whole thing is useless to me as I can't use it with my team.

I understand it may seem logical to require this, but it's a big point of friction and I don't see why I can't just associate it to my Bitbucket user (which it let me log in with) which has full readwrite access on all our company repos so there should be no need for additional rights to fulfill the premise of the product.

Hi @darkvertex we hear you on this and we do have it in the works, currently we only support it for GitHub.

We've also made a big step in this direction recently with the release of offline mode so you should be able to use a lot of our features without the admin access.

You can find out more about that here: https://blog.git.live/gitlive-15.0-offline-merge-conflict-detection-across-all-branches-for-any-git-repository#offline-mode

relandboyle commented 2 years ago

@Steakeye I think it's working now. I'll try to test with a buddy again tomorrow.

To directly respond to your request: VS Code version is 1.65.2 and GitLive version is v15.0.3. I did try the pre-release version but that does not seem to affect my issue.

My issue was finding and enabling the built-in Git extension. I use Git and GH CLI but I'm not sure if I was ever aware of this built-in extension, and I'm not sure why it was disabled. Of course there are hundreds of extension in the Marketplace with "git" in the name; now I see I can filter by built-in features.

Thanks again for your time and attention.

Steakeye commented 2 years ago

@relandboyle glad we got it sorted! Be on the lookout for the upcoming patch release 😄 we caught a few more VSCode bugs that'll improve certain feature 👍🏽

relandboyle commented 2 years ago

@Steakeye No luck.

At this point, my friend and I have both attempted to sign out and sign back in to GitLive but we are both hung up and unable to log in. When we click the profile icon, we see this text entry field with the placeholder text "Manage your accounts" but we are unable to select anything or enter anything. It's not clear what we're meant to do here.

I am the Org admin and the Org owns the repo. I was previously signed in and could see my own tiny GitHub profile image. My friend has been unable to get to that point.

image

Steakeye commented 2 years ago

Hi @relandboyle,

So sorry for not getting back to you sooner. I missed the notification for this thread. I know it sounds silly but I have to confirm with you that you were indeed opening a folder inside VSCode that includes a .git repo folder.

Secondly, it may well be the case that you are trying to use GitLive with a valid repo and you are experiencing a bug that was present in version 15.0.3 which prevented GitLive recognising repositories in certain situations; we were aware of this bug and it has now been fixed in 15.0.5.

If you could upgrade to GitLive 15.0.5 and try again, hopefully you'll be see offline mode at least and a link to Sign in, or if you were previously signed in it should sign in automatically.

I hope this solves it but let me know how you fare.

relandboyle commented 2 years ago

@Steakeye No apologies necessary. I appreciate the effort and the attention on this issue. Thank you.

Yes, I can confirm there is a .git/ folder. It's not visible in the VS Code file explorer but it is present in the directory. I can confirm I'm on version 15.0.5. I did see the sign-in link and I did sign in. I have reviewed and can confirm that GitLive is installed on the GitHub organization/repository. I have reviewed and can confirm the built-in Git extension is enabled.

I'll be happy to jump on a Zoom sometime if that would be helpful to you.

image image image

Steakeye commented 2 years ago

Hi @relandboyle!

Thanks for your last set of screenshots, they were really helpful. It seems like you've managed to help us identify a big with the GitHub API we use as well as an area of our functionality that could do with hardening.

The issue is that the GitHub endpoint we're using to find all the repos associated with your GitLive install returns the repo name as "Interview-Skills-Grid" while the remote name we get from your local git data is "interview-skills-grid"; we hash these raw values client and server side and then when we get this list of hashed repos associated with your organisation we use that to check that the local repo on your machine exists in that list; given this bug, the local repo isn't found and GitLive doesn't work for you as expected!

So, we'll be getting in touch with GitHub to report this issue on there end and for now the best workaround we can offer you is this:

git remote set-url origin https://github.com/relandboyle/Interview-Skills-Grid.git
git remote set-url upstream https://github.com/relandboyle/Interview-Skills-Grid.git

By changing your remote URLs to use the capitalised names, the client should be able to match the local repo with the GitHub data.

Hopefully this solves it for you once and for all, do let us know! Our apologies for this workaround but we'll let you know once we've got a fix from GitHub or patched the issue in our service.

Steakeye commented 2 years ago

Hi @relandboyle!

GitHub support got back to me and pointed out that there are two similarly named repositories:

https://github.com/RBoyle-Software/Interview-Skills-Grid
https://github.com/relandboyle/interview-skills-grid

So with that extra insight, I'm pretty confident that you have GitLive installed against the RBoyle-Software organisation, which is good!

Having said that, I need to correct my instruction from last week as in fact you need to make sure you're using the RBoyle-Software hosted Interview-Skills-Grid project, https://github.com/RBoyle-Software/Interview-Skills-Grid.git.

Either update the remote urls as previously described

git remote set-url origin https://github.com/RBoyle-Software/Interview-Skills-Grid.git
git remote set-url upstream https://github.com/RBoyle-Software/Interview-Skills-Grid.git

Or it might just be easier to clone a new local project to confirm it works:

git clone https://github.com/RBoyle-Software/Interview-Skills-Grid.git

With the correct remote repo being referenced with an exact string match (case sensitive) for the organisation and repo name, you should find it works.

relandboyle commented 2 years ago

@Steakeye Apologies for the delayed response.

I have not had an opportunity to test, but my takeaway from this discussion is that I should just use lowercase letters for my repositories like everyone else.

I really appreciate the effort you put into this. I would still be happy to jump into a Zoom at some point if you'd like to review or test.

Thank you very much.

Steakeye commented 2 years ago

Sorry @relandboyle, we've been super busy working on other features. Give the time difference and workload, it's best if we can confirm things are working for you in an asynchronous fashion 😄 Did you get everything working in the end?

Ygnys commented 1 year ago

Closing the issue because it needs more information and has not had recent activity. For removing the admin requirement for GitLive installation, please refer to #133