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

Windows support #2594

Closed
krlvi opened this issue Feb 12, 2024 · 67 comments
Closed

Windows support #2594

krlvi opened this issue Feb 12, 2024 · 67 comments
Labels
os:windows The Windows platform

Comments

@krlvi
Copy link
Member

krlvi commented Feb 12, 2024

Tracking windows support


Edit by @Qix-

Hello everyone, Windows support is live. See #2594 (comment) and https://gitbutler.com for links!

@schacon schacon added the os:windows The Windows platform label Feb 12, 2024
@francois-joubert
Copy link

Really looking forward trying this out on my win machine! Any chance this would run on WSL in the meantime?

@anaisbetts
Copy link
Contributor

@francois-joubert It seems to run on my WSL instance but has DPI scaling issues that makes it unusable:

image

@Cerabbite
Copy link

Cerabbite commented Feb 13, 2024

@anaisbetts What kind of monitor do you have? On my Dell XPS 17 monitor it looks fine.

The only problem is that the login does not work, I don't know if that has to do with it running in WSL.

image

@KroniK907
Copy link
Contributor

KroniK907 commented Feb 13, 2024

I installed firefox on my wsl instance and set it as my default browser using microsoft RDP to get into the settings app for the wsl instance (basic instructions for connecting via rdp here). Once I had a working default browser setup, I was able to complete the sign in process and have all features working via wsl.

@anaisbetts
Copy link
Contributor

@Cerabbite This is on my laptop screen @ 200% scaling

@KroniK907
Copy link
Contributor

KroniK907 commented Feb 14, 2024

I have created a gist that provides a complete walkthrough for getting GitButler working on WSL: https://gist.github.com/KroniK907/24c6edafa2b34af773dc9466dd7e4e00

I have reduced the steps as much as possible, and provided instructions for installing both the AppImage version as well as the .deb version. The deb version takes 4 terminal commands and less than 2 minutes to get running, and while the AppImage version requires a little bit more effort to set up, allows for the app to update itself, rather than requiring a manual .deb install for each new release.

Important note: this solution is really only practical if you are willing to set up your dev environment in WSL. Trying to make the WSL gitbutler instance interact with a project stored on the windows filesystem can be laggy or not work at all if it's a big enough project.

@Cerabbite
Copy link

Cerabbite commented Feb 14, 2024

@KroniK907 Thank you, this was way faster than my way which was compiling it from scratch. Though it is still very unstable for me.

image
But I'll keep trying to see if I can fix my issues

Edit: After restarting git-butler a couple of time it worked fine

@Ronsku
Copy link

Ronsku commented Feb 15, 2024

Looking forward to Windows support! 🥳
Are there any time estimations?

@GIRU-GIRU
Copy link

GIRU-GIRU commented Feb 15, 2024

Another windows user praying for win support, Unreal Engine dev not a great experience on linux, WSL is abit much effort as well

@Cerabbite
Copy link

@GIRU-GIRU I got GitButler setup on WSL in a matter of minutes. (I did already have WSL setup)

I used this guide by @KroniK907

I have created a gist that provides a complete walkthrough for getting GitButler working on WSL: https://gist.github.com/KroniK907/24c6edafa2b34af773dc9466dd7e4e00

@KroniK907
Copy link
Contributor

KroniK907 commented Feb 15, 2024

Looks like according to a comment on my gist that the WSL solution is really only viable if you are hosting your repos in WSL, otherwise the lag of having WSL access the windows file system makes it rather laggy and hard to use at best, and completely times out and is not useable at worst.

However, if you are able to use WSL as your dev environment it works really nicely.

@KroniK907
Copy link
Contributor

Updated my gist to add instructions for installing GitButler as an AppImage. The main reason for adding the AppImage install instructions was because the AppImage version can update itself, while the .deb has to be manually updated for each release.

Because the team is adding improvements and releasing new updates quickly, it seemed practical to provide install instructions for a version that did not require as much effort to keep up to date.

@impoetk
Copy link

impoetk commented Feb 16, 2024

I have and use WSL but my repos are windows only (WPF) looking forward for windows support

@7ahery
Copy link

7ahery commented Feb 16, 2024

Can't wait to test out the windows version 🤞

@dannyking
Copy link

+1 for Windows build

@bill876
Copy link

bill876 commented Feb 17, 2024

I have a setup where GUI apps from WSL run via VcXSrv on Windows side, one issue I encountered:

The window appears, but it is empty,
and terminal shows no errors, or this error:

[...] 'GLXBadFBConfig'. 
(Details: serial 172 error_code 163 request_code 149 (GLX) minor_code 21) [...]

These changes helped me solve the issue:
disable the wgl setting in vcxsrv, and also remove LIBGL_ALWAYS_INDIRECT from my linux environment

@MystPi
Copy link

MystPi commented Feb 18, 2024

When Windows is supported, will it have support for the WSL filesystem? I feel like installing gitbutler in WSL isn't the best solution for WSL devs.

@KroniK907
Copy link
Contributor

I feel like installing gitbutler in WSL isn't the best solution for WSL devs.

As a wsl dev, installing GitButler in WSL has been working great for me. But to your question about file access, any windows app can access the \\wsl.localhost\ network path to the wsl instances. But that may end up being kinda laggy. We won't know for sure what that performance hit will look like till there is a windows build.

@interceptor
Copy link

I also really want windows support, cannot wait! :)

@Southclaws
Copy link

Would love to help get this running natively on Windows, what's currently blocking this?

Native Windows dev so happy to help here!

@MHHenriksen
Copy link

Would love to help get this running natively on Windows, what's currently blocking this?

Native Windows dev so happy to help here!

Byron/gitoxide#1287 mentions this issue and has a few things to attack

@w5l
Copy link

w5l commented Feb 22, 2024

Would love to help get this running natively on Windows, what's currently blocking this?
Native Windows dev so happy to help here!

Byron/gitoxide#1287 mentions this issue and has a few things to attack

Which says about Windows support:

There may be rough edges around program and hook invocations, to be smoothed out of time (probably this is about more than Git though, currently unclear)

Which sounds to me like the thing to pick up here is getting a beta (alpha?) Windows build done, and letting people test it? Then we can find said "rough edges", make tickets for them and get them fixed.

And a second mention about Windows support:

On Windows, there is no native ssh transport yet which might be worse than git2 right now.

Git for Windows comes with the option to install ssh (if I recall correctly) and modern Windows versions might even support it out of the box. At least, my Windows dev box runs all git commands over ssh and also uses it for signing commits. A simple check to see if ssh is in $PATH should be enough right? Especially for a beta.

@Southclaws
Copy link

Modern Windows installations will have ssh installed and available as an .exe and I think a link library too.

The git for windows depends on the install, for example I only install Git itself without any of the extras (I don't want their weird bundled terminal emulator and linuxy libraries, I just want git.exe - so I opt for installing only that, which may omit the ssh installs too since I never use ssh anyway) so a check to see if it's in Path like on any other system would make the most sense along with a helpful error message if not, linking to the relevant install docs.

Is there any way SSH could just be packaged with the install in future, either via static linking or a DLL?

@w5l
Copy link

w5l commented Feb 22, 2024

Is there any way SSH could just be packaged with the install in future, either via static linking or a DLL?

One of the nice features of using SSH is the option for key based authentication and using ssh-agent. You can then add and remove auth and signing keys to ssh-agent on the fly (eg. with a password manager). I think this all falls apart if apps start using different SSH libraries, since a specific ssh-agent seems to be linked to its specific ssh instance. At least, that is my experience while fighting ssh key auth on a box having SSH bundled with Git, SSH bundled with Windows and an OpenSSH install side by side.

Anyway, the "no native ssh transport yet" seems clear enough and solvable (take ssh from path). I'm more interested in the "There may be rough edges around program and hook invocations" bit.

PS. According to some Microsoft blogs, SSH is available as a Windows Feature for general public from Windows 10 version 1803 (released early 2018) onwards.

@MHHenriksen
Copy link

PS. According to some Microsoft blogs, SSH is available as a Windows Feature for general public from Windows 10 version 1803 (released early 2018) onwards.

That's right! It's trivial to install or check if it's available and installed with DISM or its equivalent Powershell commands, it's as simple as Add-WindowsCapability -Online -Name OpenSSH.Client* (the name includes a version number, hence the trailing wildcard). And if you ask me, Windows Server 2019 or Windows 10 (build 1809, not 1803) is entirely fine to have as a minimum requirement.

But wait, there's more! Microsoft is working on an updated version on GitHub, and ship beta versions which can be installed with winget (literally just winget install "openssh beta"!) or downloaded as a .zip or .msi from their GitHub releases (and can therefore also be packaged and shipped with GitButler if desired).

Hope that helps!

@schacon schacon pinned this issue Feb 27, 2024
@A-Lamia
Copy link

A-Lamia commented Mar 11, 2024

Ok, tested out recent changes awesome job so far! Currently i can interact with GitButler with mostly no issues.

Things that are working now:

  • Correct git changes being reported.
  • Creating virtual branches.
  • Stuck git pull spinner.
  • Drag and dropping changes to new branch.
  • Committing changes.

What is still broken:

  • Git push fails.
  • Images still fail to load.
  • Git commits are credited to GitButler regardless of setting that controls who is the author.
  • Can not sign in, get an error saying there was an issue, error in DevTools shows (Unauthorized) Possibly have something to do with the API being incorrect because of launching in development mode ?

Once again awesome work, will update post if i find anything else.

@Qix-
Copy link
Contributor

Qix- commented Mar 11, 2024

Glad to hear it.

Tests failing are also down from ~170 or so to just 37. I'm going through and revising how we handle paths but it'll take a bit of work - however I believe that's the source of most of the remaining failures.

Git push fails.

Yeah the push/pull stuff is going to be a pain to fix, libgit2 famously doesn't do push/pull on Windows very well. I haven't even begun investigating that yet but will get to it at some point.

For now, you can do pushes manually via the CLI. All of our refs are stored under .git/refs/gitbutler, so you should be able to do git push <remote> refs/gitbutler/<virtual branch name> where <virtual branch name> is one of the list items from e.g. ls .git/refs/gitbutler. They should correspond to your virtual branch names.

Keep in mind this isn't officially supported and might change in the future (but might not). But for now, that should suffice as a workaround.

Images still fail to load.

This should be easy enough to fix; I believe @mtsgrd mentioned he might just do this from the frontend if possible instead of proxying through Tauri. We still need to investigate this one, as we've had issues with this even on other platforms in the past.

Git commits are credited to GitButler regardless of setting that controls who is the author.

Very strange. Can you run git config gitbutler.utmostDiscretion in your repository and check that it's 1 or true or something? Make sure to have disabled committing with GitButler in the settings first.

I'll make a note of this to check over the next few days. Thanks for the heads up :)

Can not sign in, get an error saying there was an issue, error in DevTools shows (Unauthorized) Possibly have something to do with the API being incorrect because of launching in development mode ?

Indeed, this is because you're under Dev mode. Barring other windows-related issues, this should fix itself once we cut official builds. At some point we'll probably try to get this working under dev mode but that's low priority for us at the moment.

Thanks again for all the feedback, keep it coming if you find any more :)

@Qix-
Copy link
Contributor

Qix- commented Mar 21, 2024

#3262 just landed, adding fetch/push support for Windows via the "System Executable" auth method, settable via the project settings. Make sure to have git.exe and ssh.exe on your PATH.

Please let me know how it goes :)

@DrBarnabus
Copy link
Contributor

Been trying out a Windows build of GitBulter (from commit ce548ac) only issue I've really noticed is that the login refuses to work for me it's hitting a CORS error but interestingly only in nightly/release build not when running pnpm tauri dev there it works perfectly.

Great to see the Windows support actively being worked on!

CORS error for reference:
Image

@Qix-
Copy link
Contributor

Qix- commented Mar 22, 2024

Hey @DrBarnabus can you try again? We just updated our CORS policy to hopefully fix that. Shouldn't need to reinstall, perhaps just restart the app for good measure. Let me know :)

EDIT: Just heard back, it'll be about 30 minutes before it's live. Try again in about 30-45 minutes :)

@Qix-
Copy link
Contributor

Qix- commented Mar 22, 2024

A few updates:

  • fix profile pictures on windows #3279 fixes profile images on windows.
  • A number of PRs were just merged to get preliminary MSI builds working in CI. I'll work on NSIS packages soon to see if they're any better (MSI leaves a lot to be desired).

We're pretty close to having windows releases :) We're in the process of receiving certificates to allow us (hopefully, if the Microsoft gods allow us) to not have the "Windows just protected your computer" dialogs pop up when you run the installer after downloading it. Once that's set up, we'll probably go ahead with an official release.

Thanks for bearing with us!

@DrBarnabus
Copy link
Contributor

Hey @DrBarnabus can you try again? We just updated our CORS policy to hopefully fix that. Shouldn't need to reinstall, perhaps just restart the app for good measure. Let me know :)

EDIT: Just heard back, it'll be about 30 minutes before it's live. Try again in about 30-45 minutes :)

Just retested and that's now working which is great. Saw nightly builds are available now I'll keep up to date and report any other issues!

@w5l
Copy link

w5l commented Mar 25, 2024

That's great news! Apologies for asking the (probably_ obvious, but where can the nightlies be found?

@B1ack3ye

This comment was marked as resolved.

@mtsgrd
Copy link
Contributor

mtsgrd commented Mar 25, 2024

You can find the nightlies on our downloads page! https://app.gitbutler.com/downloads

@A-Lamia
Copy link

A-Lamia commented Mar 25, 2024

Testing out the nightly, i can only move a single file to a virtual branch when i try to move a second i get the error Failed to update branch ownership.

@ahaoboy
Copy link

ahaoboy commented Mar 26, 2024

UI bug
image

@w5l
Copy link

w5l commented Mar 26, 2024

You can find the nightlies on our downloads page! https://app.gitbutler.com/downloads

Thanks! I see that got a lot of attention and the first issues reported in this thread already. Shall we follow the Bugs and Feature Requests section of the main readme and make separate issue reports, or do you prefer issues dumped in this thread for now?

@Qix-
Copy link
Contributor

Qix- commented Mar 26, 2024

Once we get the certs for publishing a non-nightly build and we can verify it's working with the folks here, I'll go ahead and close this issue and we can start with normal bug reports :) Still want to make sure we've not missed anything major, especially with the code signing, as it could cause people to have Windows Defender freak out if not done correctly.

@slingshotvfx
Copy link

I am unable to add a git repository from a mapped network drive on windows 11 nightly 0.5.379.0, it only pops up this message:

image

I am able to add the repo if I copy it the local c: drive.

Adding an existing repo gives me this message:
image
And if I click "go back to gitbutler/integration":
image

However, cloning it fresh from github to the c: drive and adding it works as expected.

I'd love to help test windows builds, are there debug logs somewhere or any other diagnostic information?

@Greedquest
Copy link

Note you have to right click + properties and Unblock the msi (at least on Win 11) to get it to run as it has the mark of the Web otherwise
image

@Qix-
Copy link
Contributor

Qix- commented Mar 26, 2024

Hey @slingshotvfx, I'm not sure of a workaround for this. This is, unfortunately, a huge limitation of the Windows network drives (perhaps just the WSL drive, perhaps not - perhaps even just WSL1, as that's all I use) that affects a lot of software. For example, Cargo won't even work for me if I cd into a network drive and try to build a Linux project from the Windows side.

Unless there's a trick that solves this somehow, it's not something I think we can work around :/ We should definitely document this, though - I think it should be trivial enough to determine if it's a network drive on Windows and show a warning/error.

@slingshotvfx
Copy link

slingshotvfx commented Mar 27, 2024

@Qix- just to clarify, this was running the windows nightly and trying to access a repo on a windows drive (Z:\ in my case) that is mapped to an smb network share. No WSL or cross-platform access shenanigans.

Adding a project from a UNC path (e.g. \\server\path\to\repo) also gives me the same error.

@Qix-
Copy link
Contributor

Qix- commented Mar 27, 2024

Ah sorry, yeah I misread. It must just be a network share thing, unfortunately. I'll have to look a bit more into this to see if there's some sort of workaround, but I can't make any promises it'll happen soon.

@pmario
Copy link

pmario commented Mar 27, 2024

@slingshotvfx

I am unable to add a git repository from a mapped network drive on windows 11 nightly 0.5.379.0, it only pops up this message:

I did have the same problem. I could fix it by installing the latest version of git. I did git update

@slingshotvfx
Copy link

I did have the same problem. I could fix it by installing the latest version of git. I did git update

Unfortunately I still receive the same error with the latest version of git for windows.

@ccpwcn

This comment was marked as spam.

@B1ack3ye
Copy link

B1ack3ye commented Mar 31, 2024

Is there any way to change the email address that GitButler uses to push to specific projects?

I added the email to the global .gitconfig, but it still tries to push with a different email. No matter what "Git authentication" setting I configure in Gitbutler.
image

Even if I edit the project's config, the same thing happens.
image

@MarkStruik
Copy link

Hi, i am on the nightly for the windows version. after pushing a branch and unapply and apply i is trying to merge with zero changes? You can see that the file is reapplied for whatever reason. i do also sometimes have zero change changes after commiting?

image

@DrBarnabus
Copy link
Contributor

Unsure if it's isolated just to windows, I'd imagine it is though as I couldn't see any similar reports in issues, but I ran into an error updating the base branch yesterday.

Raised #3412

@2Friendly4You
Copy link

2Friendly4You commented Apr 8, 2024

Found two things on "Windows Nightly 0.5.400"

I'm not sure, if it should say OpenAI API, if I select Anthropic? Is that right?
Screenshot 2024-04-08 204117

And one small, unimportant thing:
When selecting a profile picture for the personal profile, it would be practical if the file selection only displayed the supported picture types and not all file types.

Moved to #3474

@Qix-
Copy link
Contributor

Qix- commented Apr 9, 2024

Hey @2Friendly4You, that's probably not windows-specific. Mind searching for/opening a new issue for that? Would be appreciated :)

@Qix-
Copy link
Contributor

Qix- commented Apr 10, 2024

Hi all, we just launched signed Windows builds - check out https://gitbutler.com for them (direct link to MSI).

Going to close this issue now; if there are any outstanding issues you're facing, please open them as new issues and let us know you're running under Windows so we can properly track them.

Keep in mind we're still in beta, so keep the bug reports flowing so we can address them and make things a bit less beta 🙃

Finally,

Thank you to everyone who provided feedback ❤️

- GitButler Team

@Qix- Qix- closed this as completed Apr 10, 2024
@Qix- Qix- unpinned this issue Apr 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
os:windows The Windows platform
Projects
Status: Done
Development

No branches or pull requests