repo git: Use commit message from file to avoid command line conflicts
This commit is contained in:
parent
545d274a8b
commit
f6b413ca8e
|
@ -402,11 +402,28 @@ namespace Sparkles.Git {
|
|||
user_email = user_email.AESEncrypt (password);
|
||||
}
|
||||
|
||||
git = new GitCommand (LocalPath,
|
||||
string.Format ("commit --all --message=\"{0}\" --author=\"{1} <{2}>\"",
|
||||
message, user_name, user_email));
|
||||
GitCommand git_commit;
|
||||
string message_file_path = Path.Combine (LocalPath, ".git", "info", "commit_message");
|
||||
|
||||
git.StartAndReadStandardOutput ();
|
||||
try {
|
||||
File.WriteAllText (message_file_path, message);
|
||||
|
||||
// Commit from message stored in temporary file to avoid special character conflicts on the command line
|
||||
git_commit = new GitCommand (LocalPath,
|
||||
string.Format ("commit --all --file=\"{0}\" --author=\"{1} <{2}>\"",
|
||||
message_file_path, user_name, user_email));
|
||||
|
||||
} catch (IOException e) {
|
||||
Logger.LogInfo ("Git", Name + " | Could not create commit message file: " + message_file_path, e);
|
||||
|
||||
// If committing with a temporary file fails, use a simple static commit message
|
||||
git_commit = new GitCommand (LocalPath,
|
||||
string.Format ("commit --all --message=\"{0}\" --author=\"{1} <{2}>\"",
|
||||
"Changes by SparkleShare", user_name, user_email));
|
||||
}
|
||||
|
||||
git_commit.StartAndReadStandardOutput ();
|
||||
File.Delete (message_file_path);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue