public void Sync_WeHaveAFileWhichTheyAlsoEditedButHavenotCheckedIn_TheirsIsRenamedToSafetyAndTheyGetOurs() { using (RepositoryWithFilesSetup bob = new RepositoryWithFilesSetup("bob", "test.a9a", "original")) { using (RepositoryWithFilesSetup sally = RepositoryWithFilesSetup.CreateByCloning("sally", bob)) { File.WriteAllText(bob.ProjectFolder.Combine("problem.txt"), "bob's problem"); //notice, we don't alter the include pattern on bob, so this doesn't get checked in // on his side bob.AddAndCheckIn(); sally.ReplaceSomething("sallyWasHere"); File.WriteAllText(sally.ProjectFolder.Combine("problem.txt"), "sally's problem"); sally.ProjectConfiguration.IncludePatterns.Add("problem.txt"); sally.CheckinAndPullAndMerge(bob); sally.AssertNoErrorsReported(); //ok, so the problem is now lurking in bob's repo, but it doesn't hit him until //he does at least an update bob.CheckinAndPullAndMerge(sally); var rescueFiles = Directory.GetFiles(bob.ProjectFolder.Path, "*.ChorusRescuedFile"); Assert.AreEqual(1, rescueFiles.Length); Assert.AreEqual("bob's problem", File.ReadAllText(rescueFiles[0])); sally.AssertFileContents("problem.txt", "sally's problem"); } } }
public void Sync_NewFileWithNonAsciCharacters_FileAdded() { string name = "ŭburux.txt"; using (RepositoryWithFilesSetup bob = new RepositoryWithFilesSetup("bob", name, "original")) { bob.AddAndCheckIn(); bob.AssertNoErrorsReported(); } }
public void Sync_WeHaveUntrackedFile_NotRenamed() { using (RepositoryWithFilesSetup bob = new RepositoryWithFilesSetup("bob", "test.a9a", "original")) { using (RepositoryWithFilesSetup sally = RepositoryWithFilesSetup.CreateByCloning("sally", bob)) { File.WriteAllText(bob.ProjectFolder.Combine("somethingNew.txt"), "blah"); bob.ProjectConfiguration.IncludePatterns.Add("somethingNew.txt"); bob.AddAndCheckIn(); sally.ReplaceSomething("sallyWasHere"); File.WriteAllText(sally.ProjectFolder.Combine("untracked.txt"), "foo"); sally.CheckinAndPullAndMerge(bob); sally.AssertNoErrorsReported(); var rescueFiles = Directory.GetFiles(sally.ProjectFolder.Path, "*.ChorusRescuedFile"); Assert.AreEqual(0, rescueFiles.Length); } } }
public void Sync_MergeWhenThereIsMoreThanOneHeadToMergeWith_MergesBoth() { using (RepositoryWithFilesSetup bob = new RepositoryWithFilesSetup("bob", "test.a9a", "original")) using (RepositoryWithFilesSetup sally = RepositoryWithFilesSetup.CreateByCloning("sally", bob)) { var tip = sally.Repository.GetTip(); sally.ReplaceSomething("forbranch1"); sally.AddAndCheckIn(); sally.Repository.Update(tip.Number.Hash); sally.ReplaceSomething("forbranch1"); sally.AddAndCheckIn(); sally.Repository.Update(tip.Number.Hash); sally.ReplaceSomething("forbranch2"); sally.AddAndCheckIn(); sally.Repository.Update(tip.Number.Hash); sally.ReplaceSomething("forbranch3"); sally.AddAndCheckIn(); sally.Repository.Update(tip.Number.Hash); sally.AssertHeadCount(4); bob.ReplaceSomething("bobWasHere"); bob.AddAndCheckIn(); sally.ReplaceSomething("sallyWasHere"); sally.CheckinAndPullAndMerge(bob); sally.AssertNoErrorsReported(); var rescueFiles = Directory.GetFiles(sally.ProjectFolder.Path, "*.ChorusRescuedFile"); Assert.AreEqual(0, rescueFiles.Length); sally.AssertHeadCount(1); } }