diff --git a/TGServerService/ServerInstance/Repository.cs b/TGServerService/ServerInstance/Repository.cs index b3b92005d5..6ae37a3a31 100644 --- a/TGServerService/ServerInstance/Repository.cs +++ b/TGServerService/ServerInstance/Repository.cs @@ -546,14 +546,21 @@ namespace TGServerService /// Merges given into the current branch /// /// The sha/branch/tag to merge + /// The commit message for the merge commit /// on success, error message on failure - string MergeBranch(string committish) + string MergeBranch(string committish, string mergeMessage) { var mo = new MergeOptions() { OnCheckoutProgress = HandleCheckoutProgress }; - var Result = Repo.Merge(committish, MakeSig()); + if (mergeMessage != null) + { + mo.CommitOnSuccess = false; + mo.FastForwardStrategy = FastForwardStrategy.NoFastForward; + } + var sig = MakeSig(); + var Result = Repo.Merge(committish, sig, mo); currentProgress = -1; switch (Result.Status) { @@ -564,6 +571,8 @@ namespace TGServerService case MergeStatus.UpToDate: return RepoErrorUpToDate; } + if(mergeMessage != null) + Repo.Commit(mergeMessage, sig, sig); return null; } @@ -644,7 +653,7 @@ namespace TGServerService WriteInfo("Repo hard updated to " + originBranch.Tip.Sha, EventID.RepoHardUpdate); return error; } - res = MergeBranch(originBranch.FriendlyName); + res = MergeBranch(originBranch.FriendlyName, "Merge origin into current testmerge"); if (!LocalIsRemote()) //might be fast forward PushTestmergeCommit(); if (res != null) @@ -883,7 +892,7 @@ namespace TGServerService } //so we'll know if this fails - var Result = MergeBranch(LocalBranchName); + var Result = MergeBranch(LocalBranchName, String.Format("Testmerge commit for pull request #{0}", PRNumber)); if (Result == null) try