public IEnumerator TestMergeWorkerSmoke() { testObject1.transform.position = new Vector2(0.0f, 0.0f); testObject2.transform.position = new Vector2(3.0f, 3.0f); VersionManager.Instance().Add(testController1); VersionManager.Instance().Add(testController2); ICommit commit = VersionManager.Instance().Commit("Add two objects"); yield return(null); IBranch testBranch = VersionManager.Instance().CreateBranch("testBranch"); VersionManager.Instance().Checkout("testBranch"); testObject1.transform.position = new Vector2(1.0f, 0.0f); VersionManager.Instance().Add(testController1); ICommit secondCommit = VersionManager.Instance().Commit("Move testObject1"); VersionManager.Instance().Checkout("master"); Assert.AreEqual("master", master.GetName()); Assert.AreSame(commit, master.GetTip()); Assert.AreEqual("testBranch", testBranch.GetName()); Assert.AreSame(secondCommit, testBranch.GetTip()); IMergeWorker mw = new MergeWorker(master, testBranch, null, null); Assert.AreEqual(Relationship.FastForward, mw.GetMergeType()); Assert.AreEqual(MergeStatus.FastForward, mw.GetStatus(testController1)); Assert.AreEqual(MergeStatus.FastForward, mw.GetStatus(testController2)); Assert.AreEqual(true, mw.IsResolved()); }
public Relationship Merge(IBranch featureBranch) { if (!EnabledVersionControls.Instance().CanMerge) { Debug.Log("Merging not enabled yet"); } if (isDetached) { throw new Exception("Can't merge if detached"); } if (this.mw != null) { throw new Exception("Already doing a merge, resolve this first"); } IMergeWorker mw = new MergeWorker(activeBranch, featureBranch, pickTrigger, mergeUI); Relationship mergeType = mw.GetMergeType(); if (mw.GetMergeType() == Relationship.FastForward) { mw.End(); activeBranch.UpdateTip(featureBranch.GetTip()); activeCommit = activeBranch.GetTip(); LoadStateOfCommit(activeCommit); if (mergeTrigger != null) { mergeTrigger.Trigger(); } return(mergeType); } this.mw = mw; return(mergeType); }