mirror of
https://fastgit.cc/github.com/sourcegit-scm/sourcegit
synced 2026-04-24 10:50:52 +08:00
optimize<Command>: each process has its own envs
This commit is contained in:
@@ -14,7 +14,7 @@ namespace SourceGit.Commands {
|
||||
handler = outputHandler;
|
||||
|
||||
if (!string.IsNullOrEmpty(sshKey)) {
|
||||
Environment.SetEnvironmentVariable("GIT_SSH_COMMAND", $"ssh -i '{sshKey}'");
|
||||
Envs.Add("GIT_SSH_COMMAND", $"ssh -i '{sshKey}'");
|
||||
Args = "";
|
||||
} else {
|
||||
Args = "-c credential.helper=manager ";
|
||||
|
||||
@@ -52,6 +52,11 @@ namespace SourceGit.Commands {
|
||||
/// </summary>
|
||||
public bool TraitErrorAsOutput { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// 用于设置该进程独有的环境变量
|
||||
/// </summary>
|
||||
public Dictionary<string, string> Envs { get; set; } = new Dictionary<string, string>();
|
||||
|
||||
/// <summary>
|
||||
/// 运行
|
||||
/// </summary>
|
||||
@@ -68,6 +73,8 @@ namespace SourceGit.Commands {
|
||||
|
||||
if (!string.IsNullOrEmpty(Cwd)) start.WorkingDirectory = Cwd;
|
||||
|
||||
foreach (var kv in Envs) start.EnvironmentVariables[kv.Key] = kv.Value;
|
||||
|
||||
var progressFilter = new Regex(@"\s\d+%\s");
|
||||
var errs = new List<string>();
|
||||
var proc = new Process() { StartInfo = start };
|
||||
|
||||
@@ -16,7 +16,7 @@ namespace SourceGit.Commands {
|
||||
|
||||
var sshKey = new Config(repo).Get($"remote.{remote}.sshkey");
|
||||
if (!string.IsNullOrEmpty(sshKey)) {
|
||||
Environment.SetEnvironmentVariable("GIT_SSH_COMMAND", $"ssh -i '{sshKey}'");
|
||||
Envs.Add("GIT_SSH_COMMAND", $"ssh -i '{sshKey}'");
|
||||
Args = "";
|
||||
} else {
|
||||
Args = "-c credential.helper=manager ";
|
||||
|
||||
@@ -16,7 +16,7 @@ namespace SourceGit.Commands {
|
||||
|
||||
var sshKey = new Config(repo).Get($"remote.{remote}.sshkey");
|
||||
if (!string.IsNullOrEmpty(sshKey)) {
|
||||
Environment.SetEnvironmentVariable("GIT_SSH_COMMAND", $"ssh -i '{sshKey}'");
|
||||
Envs.Add("GIT_SSH_COMMAND", $"ssh -i '{sshKey}'");
|
||||
Args = "";
|
||||
} else {
|
||||
Args = "-c credential.helper=manager ";
|
||||
|
||||
@@ -14,7 +14,7 @@ namespace SourceGit.Commands {
|
||||
|
||||
var sshKey = new Config(repo).Get($"remote.{remote}.sshkey");
|
||||
if (!string.IsNullOrEmpty(sshKey)) {
|
||||
Environment.SetEnvironmentVariable("GIT_SSH_COMMAND", $"ssh -i '{sshKey}'");
|
||||
Envs.Add("GIT_SSH_COMMAND", $"ssh -i '{sshKey}'");
|
||||
Args = "";
|
||||
} else {
|
||||
Args = "-c credential.helper=manager ";
|
||||
|
||||
Reference in New Issue
Block a user