/// <summary> /// Sets up everything necessary for a call out to the ChorusMerge executable /// </summary> /// <param name="targetHead"></param> /// <param name="sourceHead"></param> private void PrepareForMergeAttempt(Revision targetHead, Revision sourceHead) { //this is for posterity, on other people's machines, so use the hashes instead of local numbers MergeSituation.PushRevisionsToEnvironmentVariables(targetHead.UserId, targetHead.Number.Hash, sourceHead.UserId, sourceHead.Number.Hash); MergeOrder.PushToEnvironmentVariables(_localRepositoryPath); _progress.WriteMessage("Merging {0} and {1}...", targetHead.UserId, sourceHead.UserId); _progress.WriteVerbose(" Revisions {0}:{1} with {2}:{3}...", targetHead.Number.LocalRevisionNumber, targetHead.Number.Hash, sourceHead.Number.LocalRevisionNumber, sourceHead.Number.Hash); RemoveMergeObstacles(targetHead, sourceHead); }
private int DoMerge(GroupOfConflictingLiftFiles group) { MergeSituation.PushRevisionsToEnvironmentVariables("bob", "-123", "sally", "-456"); MergeOrder.PushToEnvironmentVariables(group.Folder.Path); // Change error logging to standard out so that tests which simulate errors don't fail the build Program.ErrorWriter = Console.Out; try { return(Program.Main(new[] { group.BobFile.Path, group.AncestorFile.Path, group.SallyFile.Path })); } finally { Program.ErrorWriter = Console.Error; } }
public void Main_Utf8FilePaths_FileNamesOk() { using (var e = new TemporaryFolder("ChorusMergeTest")) using (var p = new TemporaryFolder(e, "ไก่ projéct")) { var filePath1 = Path.Combine(p.Path, "aaa.chorusTest"); File.WriteAllText(filePath1, @"aaa"); var filePath2 = Path.Combine(e.Path, "aaa.chorusTest"); File.WriteAllText(filePath2, @"aaa"); var filePath3 = Path.Combine(e.Path, "aaa.chorusTest"); File.WriteAllText(filePath3, @"aaa"); var encoding = Encoding.GetEncoding(1252); string filePath1Cp1252 = encoding.GetString(Encoding.UTF8.GetBytes(filePath1)); string filePath2Cp1252 = encoding.GetString(Encoding.UTF8.GetBytes(filePath2)); string filePath3Cp1252 = encoding.GetString(Encoding.UTF8.GetBytes(filePath3)); MergeSituation.PushRevisionsToEnvironmentVariables("bob", "-123", "sally", "-456"); MergeOrder.PushToEnvironmentVariables(p.Path); var result = Program.Main(new[] { filePath1Cp1252, filePath2Cp1252, filePath3Cp1252 }); Assert.That(result, Is.EqualTo(0)); } }
private int DoMerge(GroupOfConflictingLiftFiles group) { MergeSituation.PushRevisionsToEnvironmentVariables("bob", "-123", "sally", "-456"); MergeOrder.PushToEnvironmentVariables(group.Folder.Path); return(Program.Main(new[] { group.BobFile.Path, group.AncestorFile.Path, group.SallyFile.Path })); }