Code: Alles auswählen
procedure TMainform.mnuSaveToGitClick(Sender: TObject);
var aProcess : TProcess;
Msg : string;
Lst : TStringlist;
InputStrings : string;
begin
Msg := s_msg_save_changes;
if InputQuery(s_msg_savegitCaption, s_msg_savegitPrompt, msg) then
begin
aProcess := TProcess.Create(nil);
Lst := TStringList.Create;
aProcess.Executable:='git.exe';
aProcess.Parameters.Add('commit');
aProcess.Parameters.Add('-a');
aProcess.Parameters.Add('-s');
aProcess.Parameters.Add('-m"' + Msg + '"');
aProcess.CurrentDirectory:=Application.Location;
AProcess.Options := AProcess.Options + [poWaitOnExit, poUsePipes];
aProcess.Execute;
Lst.LoadFromStream(AProcess.Output);
aProcess.Free;
ShowMessage(Lst.Text);
aProcess := TProcess.Create(nil);
InputStrings := 'meinganzsicherespasswort' + LineEnding;
aProcess.Executable:='git.exe';
aProcess.Parameters.Add('push');
aProcess.CurrentDirectory:=Application.Location;
aProcess.Options := AProcess.Options + [poUsePipes];
aProcess.Execute;
aProcess.Input.Write(InputStrings[1], Length(InputStrings));
Lst.LoadFromStream(AProcess.Output);
Msg := 'Meldung: ' + Lst.Text;
Lst.Clear;
Lst.LoadFromStream(AProcess.StdErr);
if Lst.Text <> '' then
Msg := Msg + LineEnding + 'Fehler: ' + Lst.Text;
aProcess.Free;
ShowMessage(Msg);
Lst.Free;
end;
end;
Mach ich git push in der Shell, klappt es ohne Probleme.
Was kann denn da der Unterschied sein?
Ich habe es bei Inputstring mit und ohne LineEnding versucht. Es klappt aber nicht.