TortoiseGit 2.13.0 installer spuriously silently disables shell extension
What steps will reproduce the problem?
I'm really not sure, and have not gotten any help on the TortoiseGit users list after waiting 2 weeks. However, I can provide a list of facts from various experiments I've tried to figure this out:
-
Other co-workers in my company have not reported this problem, and we are all using AWS Workspace running Windows Server 2016 DataCenter Edition
-
This might be related to an issue from 2013 that is closed but never actually resolved: #1995 (closed)
-
This appears to be an installation issue, rather than a core product issue, but I'm not that well-versed in installers to say for sure, and I don't know where TortoiseGit installation log pipes to.
-
Running the TortoiseGit MsiInstaller in either install mode or uninstall mode, not as Admnistrator, causes Explorer.exe to die and need to be force-restarted through "start explorer.exe".
-
However, restarting explorer.exe does not fix the fact the installer left the registry entry for TortoiseGit as disabled.
-
Running the uninstaller confirms the registry entry was successfully removed, using NirSoft ShellExView and clicking the Refresh icon after the uninstall finishes.
-
Windows Event Viewer confirms running uninstaller was successful. e.g.,
Click to expand
Level Time Source EventID TaskCategory Message Info 01:36:41 PM MsiInstaller 1042 None Ending a Windows Installer transaction: {61FC5801-99FF-4DA2-A7EA-211C6238B230}. Client Process Id: 15532. Info 01:36:41 PM MsiInstaller 1034 None Windows Installer removed the product. Product Name: TortoiseGit 2.13.0.1 (64 bit). Product Version: 2.13.0.1. Product Language: 1033. Manufacturer: TortoiseGit. Removal success or error status: 0. Info 01:36:41 PM MsiInstaller 11724 None Product: TortoiseGit 2.13.0.1 (64 bit) -- Removal completed successfully.
-
I then re-installed the extension and verified with NirSoft ShellExView that TortoiseGit is mysteriously, yet again, disabled in the registry. Screenshot:
I carefully reviewed the MsiInsaller GUI options and looked for anything that could explain this, and verified I was using Git For Windows, and had no other git clients installed.
I postulate that TortoiseGit installer is erroneously reporting MsiInstaller exit code of 0 (success) https://docs.microsoft.com/en-us/windows/win32/msi/error-codes and that the problem likely has something to do with TortoiseSVN and TortoiseGIT being installed side-by-side.
What is the expected output? What do you see instead?
I expect to see a TortoiseGit shell extension context menu when I right-click on a "git directory".
What version of TortoiseGit and Git are you using? On what operating system?
TortoiseGit 2.13.0.1
Git for WIndows (x64) 2.37.0
Computer Details
Amazon AWS Workspace PowerPro Instance (8 vCPU, 32 GB RAM)
PowerShell 7.0.1 Script to Dump OS-level info
systeminfo | select-string "^OS"
OS Name: Microsoft Windows Server 2016 Datacenter
OS Version: 10.0.14393 N/A Build 14393
OS Manufacturer: Microsoft Corporation
OS Configuration: Member Server
OS Build Type: Multiprocessor Free
PowerShell 7.0.1 Script to dump PATH variable
$env:PATH
C:\Program Files\PowerShell\7;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files\PowerShell\7;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Program Files\Amazon\cfn-bootstrap;C:\ProgramData\chocolatey\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn;D:\Users\John.Zabroski\AppData\Local\Microsoft\WindowsApps;D:\Users\John.Zabroski\AppData\Local\GitHubDesktop\bin;C:\Program Files\Microsoft VS Code\bin;C:\Program Files\Microsoft SQL Server\130\Tools\Binn;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn;C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn;C:\Program Files\Microsoft SQL Server\140\Tools\Binn;C:\Program Files\Microsoft SQL Server\140\DTS\Binn;C:\Program Files\PowerShell\7;C:\Program Files (x86)\Gpg4win..\GnuPG\bin;C:\Program Files\Azure Data Studio\bin;C:\Program Files\Amazon\AWSCLIV2;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit;C:\Program Files\Microsoft SQL Server\150\Tools\Binn;C:\Program Files\dotnet;C:\Program Files\Git\cmd;C:\Program Files\TortoiseGit\bin;C:\Program Files (x86)\LinqPad6;D:\Users\John.Zabroski.dotnet\tools;D:\Users\John.Zabroski\AppData\Local\Programs\Fiddler;D:\Users\John.Zabroski.dotnet\tools
Hotfixes Installed
systeminfo /FO CSV | ConvertFrom-Csv | select -ExpandProperty "Hotfix(s)" | % {$_ -Split ","}
34 Hotfix(s) Installed.
[01]: KB5014630
[02]: KB3176936
[03]: KB3186568
[04]: KB3192137
[05]: KB3199209
[06]: KB3199986
[07]: KB4013418
[08]: KB4023834
[09]: KB4035631
[10]: KB4049065
[11]: KB4089510
[12]: KB4091664
[13]: KB4093137
[14]: KB4132216
[15]: KB4465659
[16]: KB4485447
[17]: KB4486129
[18]: KB4498947
[19]: KB4503537
[20]: KB4509091
[21]: KB4512574
[22]: KB4520724
[23]: KB4521858
[24]: KB4524244
[25]: KB4535680
[26]: KB4550994
[27]: KB4562561
[28]: KB4565912
[29]: KB4589210
[30]: KB5001402
[31]: KB5005698
[32]: KB5011570
[33]: KB5014026
[34]: KB5014702
Please provide any additional information below.
Here was my original question to the TortoiseGit Users Mailing List: https://groups.google.com/g/tortoisegit-users/c/eUHdrJUps9U/m/nTvueagaAQAJ
I also noted there was a previous issue for this, #1995 (closed) , and that Sven created debugging tips for this, but frankly, I'm not that interested in compiling TortoiseGit from source to figure out why the installer is failing silently. My guess is that whatever issue happened in 2013, happened here, and the same installer bug has likely been around for about a decade, just only happens a couple of times to some people for various reasons.
One possible suggestion is for the installer to run a post-installation check to verify things, rather than just bail and report success (It has been a few years since I have created an MSI, and that was with Wix framework, so I don't know what this project uses).
Another possible suggestion, really more for myself and others with this issue in the future, is to look into group policy app installation debug logging https://docs.microsoft.com/en-us/troubleshoot/windows-server/group-policy/troubleshoot-software-installations-debug-logging