Replies: 7 comments 8 replies
-
We do specify bitness here: I vaguely remember a discussion about dropping this setting and building "any cpu", but my tests resulted in crashes. |
Beta Was this translation helpful? Give feedback.
-
Continuing...
would work and produce the |
Beta Was this translation helpful? Give feedback.
-
Continuing...
I guess, like the above test problems with loading the End of report. |
Beta Was this translation helpful? Give feedback.
-
Regarding:
Update: there is a beta version of Git for Windows port to Arm64; the port is currently being merged back to mainline. |
Beta Was this translation helpful? Give feedback.
-
Regarding:
Update: this problem occurs (at least in my Arm64 platform build) when running GE during development, i.e. running it via:
This problem doesn't occur if using the portable GE zip distribution, from |
Beta Was this translation helpful? Give feedback.
-
Any update on where we're at with this? w/ the latest gitExtensions i'm still not able to run on despite having the runtime it wants installed: > dotnet --list-runtimes
Microsoft.AspNetCore.App 6.0.25 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 8.0.0-rc.2.23480.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 8.0.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.25 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.14 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.0-rc.2.23479.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 6.0.25 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 7.0.14 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 8.0.0-rc.2.23479.10 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 8.0.0 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App] |
Beta Was this translation helpful? Give feedback.
-
@brandonh-msft I have done some manual builds of GE for Windows on Arm64, and they are available in my fork as unofficial releases. I've also documented the build steps for WoA in each release. |
Beta Was this translation helpful? Give feedback.
-
I'd like to start a discussion thread about building and running GE natively in a Windows-on-Arm64 machine. The compiler & SDK tools like Visual Studio 2022 and .NET 6 are already available for native Arm64 development, so hopefully it's just a matter of compiling GE to Arm64 executable so that it'll run natively in Windows 11 on the Arm64 box. But I'm a newbie in these .NET things, so bear with me if the following may not be quite accurate.
Note that Windows 11 on Arm64 has a x64 translation layer such that it supports running successfully most of existing x64 binaries/executables unchanged on the Arm64 box. The existing x86 GE release can run, for example, with caveats like #9755 (comment). But the translation layer incurs a performance penalty, i.e. slower, as compared to running native Arm64 software. Given that my Arm64 box isn't as fast as an equivalent x64 machine, it would be best to squeeze out more performance if GE could be built and run natively as Arm64 executable. Another slowdown is Git for Windows itself, which is not yet available natively in Arm64, so it requires the x64 translation layer every time it is invoked. (And GE uses Git for Windows extensively.)
I'll detail the steps I was doing to facilitate discussions & feedback.
dotnet build
command, the build completes successfully and produces the portable GE in the folderartifacts\Debug\bin\GitExtensions\net6.0-windows
. I guess the GE project doesn't specify any platform, hence it defaults toAnyCPU
and so the build would work with ARM64 platform too. Examining the resultingGitExtensions.exe
with thedumpbin
utility shows that it's an Arm64 executable:dotnet run --project GitExtensions
command, or by double-clicking the aboveGitExtensions.exe
file, it takes a long time (around half a minute) to show the GE dashboard. Why is that? What is GE doing taking so long before showing the dashboard?Then opening the Settings dialog, with Tools --> Settings, I have the same 'frozen' problem as described in #10215. The CPU usage of GE is about 20% when in this state, and the GE process need be killed via the Task Manager. This problem is 100% reproducible with the Arm64 executable. And it occurs whenever I'm in the dashboard, like when first starting up, or when closing a repository to go back to the dashboard.
Also, as mentioned in #9755 (comment), ConEmu need be disabled for all Git commands to work on Arm64. Actually disabling ConEmu makes all Git commands seem fast to me, so it's good UX to me. (With GE, the
ConEmu64.exe
process gets stuck and need be killed with Task Manager. But when launched as a stand-alone program,ConEmu64.exe
actually works, with some error about 'injecting hooks FAILED', but the console window works.)dotnet test
command, mostly fail, with error abouttesthost.dll
:I guess
testhost.dll
is an x86 library, so it fails to load in an Arm64 GE process. Where does thistesthost.dll
come from?More to come...
Beta Was this translation helpful? Give feedback.
All reactions