Exemplo n.º 1
0
    public IEnumerator shouldBeAbleToCreateNewBranchWhenInDetachedHeadAndThenCommit()
    {
        VersionableObjectFactory factory = new VersionableObjectFactory();

        VersionController testController      = factory.createVersionableBox();
        VersionController otherTestController = factory.createVersionableBox();

        GameObject testObject      = testController.GetActiveVersion();
        GameObject otherTestObject = otherTestController.GetActiveVersion();

        testObject.transform.position      = new Vector2(0.0f, 0.0f);
        otherTestObject.transform.position = new Vector2(3.0f, 0.0f);

        VersionManager.Instance().Add(testController);
        VersionManager.Instance().Add(otherTestController);

        ICommit firstCommit   = VersionManager.Instance().Commit("Create two boxes");
        Guid    firstCommitId = firstCommit.GetId();

        yield return(null);

        testObject.transform.position      = new Vector2(1.0f, 0.0f);
        otherTestObject.transform.position = new Vector2(4.0f, 1.0f);

        VersionManager.Instance().Add(testController);
        VersionManager.Instance().Add(otherTestController);

        VersionManager.Instance().Commit("Move boxes");

        yield return(null);

        VersionManager.Instance().Checkout("master", firstCommitId);

        IBranch newBranch = VersionManager.Instance().CreateBranch("refactor");

        VersionManager.Instance().Checkout(newBranch);

        Assert.AreEqual(newBranch.GetTip().GetId(), VersionManager.Instance().GetActiveBranch().GetTip().GetId());
        Assert.AreEqual(newBranch.GetTip().GetId(), VersionManager.Instance().GetActiveCommit().GetId());

        testObject.transform.position = new Vector2(-1.0f, 0.0f);

        VersionManager.Instance().Add(testController);
        ICommit commit = VersionManager.Instance().Commit("Move a box to the left");

        Assert.AreEqual(newBranch.GetTip().GetId(), commit.GetId());
        Assert.True(commit.ObjectIsTrackedInThisCommit(testController));
        Assert.True(commit.ObjectIsTrackedInThisCommit(otherTestController));
    }
Exemplo n.º 2
0
 // Helper method for setting the state of the given tracked object to the corresponding
 // state in the given commit
 private void LoadStateOfCommitForTrackedObject(ICommit commit, VersionController trackedObject, int trackedObjectIndex)
 {
     if (commit.ObjectIsTrackedInThisCommit(trackedObject))
     {
         trackedObject.ResetToVersion(commit.getObjectVersion(trackedObject));
     }
     else
     {
         trackedObject.ResetToInitialState();
         trackedObjects.RemoveAt(trackedObjectIndex);
     }
 }
Exemplo n.º 3
0
 protected override bool shouldFire()
 {
     if (targetObject == null && targetBranch == "")
     {
         return(true);
     }
     else
     {
         if (targetBranch == "" || versionManager.GetActiveBranch().GetName() == targetBranch)
         {
             ICommit commit = versionManager.GetHead();
             if (targetObject == null || commit.ObjectIsTrackedInThisCommit(targetObject) &&
                 commit.ObjectWasChangedInThisCommit(targetObject))
             {
                 return(true);
             }
         }
     }
     return(false);
 }
Exemplo n.º 4
0
 public bool ObjectWasChangedInThisCommit(VersionController controller)
 {
     if (ObjectIsTrackedInThisCommit(controller))
     {
         if (parent == null)
         {
             return(true);
         }
         else if (!parent.ObjectIsTrackedInThisCommit(controller))
         {
             return(true);
         }
         else
         {
             return(!getObjectVersion(controller).Equals(parent.getObjectVersion(controller)));
         }
     }
     else
     {
         return(false);
     }
 }