fix: Force English locale in branch query command. (#1078)

This commit is contained in:
Gadfly 2025-03-10 20:05:37 +08:00 committed by GitHub
parent b4fbc2372b
commit 860f52153b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 15 additions and 4 deletions

View file

@ -37,6 +37,7 @@ namespace SourceGit.Commands
public string Args { get; set; } = string.Empty;
public bool RaiseError { get; set; } = true;
public bool TraitErrorAsOutput { get; set; } = false;
protected bool ForceEnglishLocale { get; set; } = false;
public bool Exec()
{
@ -193,8 +194,11 @@ namespace SourceGit.Commands
start.Environment.Add("GIT_SSH_COMMAND", $"ssh -i '{SSHKey}'");
// Force using en_US.UTF-8 locale to avoid GCM crash
if (OperatingSystem.IsLinux())
start.Environment.Add("LANG", "en_US.UTF-8");
if (ForceEnglishLocale || OperatingSystem.IsLinux())
{
start.Environment.Add("LANG", "C");
start.Environment.Add("LC_ALL", "C");
}
// Fix macOS `PATH` env
if (OperatingSystem.IsMacOS() && !string.IsNullOrEmpty(Native.OS.CustomPathEnv))

View file

@ -19,7 +19,10 @@ namespace SourceGit.Commands
// Force using en_US.UTF-8 locale to avoid GCM crash
if (OperatingSystem.IsLinux())
start.Environment.Add("LANG", "en_US.UTF-8");
{
start.Environment.Add("LANG", "C");
start.Environment.Add("LC_ALL", "C");
}
// Fix macOS `PATH` env
if (OperatingSystem.IsMacOS() && !string.IsNullOrEmpty(Native.OS.CustomPathEnv))
@ -50,7 +53,10 @@ namespace SourceGit.Commands
// Force using en_US.UTF-8 locale to avoid GCM crash
if (OperatingSystem.IsLinux())
start.Environment.Add("LANG", "en_US.UTF-8");
{
start.Environment.Add("LANG", "C");
start.Environment.Add("LC_ALL", "C");
}
// Fix macOS `PATH` env
if (OperatingSystem.IsMacOS() && !string.IsNullOrEmpty(Native.OS.CustomPathEnv))

View file

@ -14,6 +14,7 @@ namespace SourceGit.Commands
{
WorkingDirectory = repo;
Context = repo;
ForceEnglishLocale = true;
Args = "branch -l --all -v --format=\"%(refname)%00%(objectname)%00%(HEAD)%00%(upstream)%00%(upstream:trackshort)\"";
}