Hi Janusz,
Thanks for your help. I will try to elaborate the issue as precise as I can:
The stuck trace is following:
GitCommands.dll!GitCommands.SynchronizedProcessReader.ReadBytes(System.Diagnostics.Process process, out byte[] stdOutput, out byte[] stdError) Line 44 C#
GitCommands.dll!GitCommands.GitCommandHelpers.CreateAndStartProcess(string arguments, string cmd, string workDir, out byte[] stdOutput, out byte[] stdError, byte[] stdInput) Line 192 + 0x17 bytes C#
GitCommands.dll!GitCommands.GitModule.RunCmdByte(string cmd, string arguments, byte[] stdInput, out byte[] output, out byte[] error) Line 599 + 0x2b bytes C#
GitCommands.dll!GitCommands.GitModule.RunCmd(string cmd, string arguments, out int exitCode, byte[] stdInput, System.Text.Encoding encoding) Line 584 + 0x46 bytes C#
GitCommands.dll!GitCommands.GitModule.RunGitCmd(string arguments, out int exitCode, byte[] stdInput, System.Text.Encoding encoding) Line 616 + 0x44 bytes C#
GitCommands.dll!GitCommands.GitModule.SystemEncoding.get() Line 139 + 0x7a bytes C#
GitCommands.dll!GitCommands.GitModule.RunGitCmd(string arguments, out int exitCode, byte[] stdInput) Line 611 + 0x39 bytes C#
GitCommands.dll!GitCommands.GitModule.RunGitCmd(string arguments, byte[] stdInput) Line 627 + 0x19 bytes C#
GitCommands.dll!GitCommands.GitModule.RunGitCmd(string arguments) Line 638 + 0x12 bytes C#
GitUI.dll!GitUI.CommandsDialogs.SettingsDialog.CheckSettingsLogic.CanFindGitCmd() Line 286 + 0x2d bytes C#
GitUI.dll!GitUI.CommandsDialogs.SettingsDialog.Pages.ChecklistSettingsPage.CheckGitCmdValid() Line 558 + 0x2f bytes C#
GitUI.dll!GitUI.CommandsDialogs.SettingsDialog.Pages.ChecklistSettingsPage.CheckSettings() Line 459 + 0xc bytes C#
GitExtensions.exe!GitExtensions.Program.Main() Line 83 + 0x10 bytes C#
So, on the last executing command ReadBytes, it returns byte[75] which is assigned to stdError value on "public static void ReadBytes(Process process, out byte[] stdOutput, out byte[] stdError)" void, having the ExitCode value of 127. The executing "process" variable in the above void has following params:
Arguments: "config --get ą"
CreateNoWindow: true
Domain: ""
FileName: "C:\\Program Files (x86)\\Git\\bin\\sh.exe"
LoadUserProfile true
This argument "config --get ą" is set in the \GitCommands\Git\GitModule.cs in "public static Encoding SystemEncoding" function lines 134 and 135 and commented as below:
//check whether GitExtensions works with standard msysgit or msysgit-unicode
// invoke a git command that returns an invalid argument in its response, and
// check if a unicode-only character is reported back. If so assume msysgit-unicode
// git config --get with a malformed key (no section) returns:
// "error: key does not contain a section: <key>"
const string controlStr = "ą"; // "a caudata"
string arguments = string.Format("config --get {0}", controlStr);
The stdError, from previous section I was explaining, those byte[75], later in \GitCommands\Git\EncodingHelper.cs, the EncodingHelper class => public static string GetString(byte[] output, byte[] error, Encoding encoding) line 12, is translated as {"C:/Program Files (x86)/Git/bin/sh.exe": config: No such file or directory} . Here is the stack trace:
GitCommands.dll!GitCommands.EncodingHelper.GetString(byte[] output, byte[] error, System.Text.Encoding encoding) Line 34 C#
GitCommands.dll!GitCommands.GitModule.RunCmd(string cmd, string arguments, out int exitCode, byte[] stdInput, System.Text.Encoding encoding) Line 585 + 0x17 bytes C#
GitCommands.dll!GitCommands.GitModule.RunGitCmd(string arguments, out int exitCode, byte[] stdInput, System.Text.Encoding encoding) Line 616 + 0x44 bytes C#
GitCommands.dll!GitCommands.GitModule.SystemEncoding.get() Line 139 + 0x7a bytes C#
GitCommands.dll!GitCommands.GitModule.RunGitCmd(string arguments, out int exitCode, byte[] stdInput) Line 611 + 0x39 bytes C#
GitCommands.dll!GitCommands.GitModule.RunGitCmd(string arguments, byte[] stdInput) Line 627 + 0x19 bytes C#
GitCommands.dll!GitCommands.GitModule.RunGitCmd(string arguments) Line 638 + 0x12 bytes C#
GitUI.dll!GitUI.CommandsDialogs.SettingsDialog.CheckSettingsLogic.CanFindGitCmd() Line 286 + 0x2d bytes C#
GitUI.dll!GitUI.CommandsDialogs.SettingsDialog.Pages.ChecklistSettingsPage.CheckGitCmdValid() Line 558 + 0x2f bytes C#
GitUI.dll!GitUI.CommandsDialogs.SettingsDialog.Pages.ChecklistSettingsPage.CheckSettings() Line 459 + 0xc bytes C#
GitExtensions.exe!GitExtensions.Program.Main() Line 83 + 0x10 bytes C#
If I can provide any more info, please let me know
Thank you,
Ilija Misov