Exemplo n.º 1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ContainerOperations"/> class.
        /// </summary>
        /// <param name="worker">The worker.</param>
        /// <param name="targetContainer">The target container.</param>
        /// <param name="targetIndex">Index of the target.</param>
        /// <param name="unknownIndex">Index of the unknown.</param>
        public ContainerOperations(
            IMergeWorker worker,
            IWriteableIndexContainer targetContainer,
            MemoryIndex targetIndex,
            MemoryIndex unknownIndex)
        {
            this.targetContainer = targetContainer;
            this.worker          = worker;
            this.targetIndex     = targetIndex;

            unknownOperation = new MergeOperation(unknownIndex);
            worker.addOperation(unknownOperation);
        }
Exemplo n.º 2
0
 // Update is called once per frame
 void Update()
 {
     if (Input.GetAxis("Fire1") != 0)
     {
         objectUnderCursor = FindObjectUnderCursor();
         if (objectUnderCursor != null)
         {
             IMergeWorker mergeWorker = versionManager.GetMergeWorker();
             if (mergeWorker != null && objectUnderCursor.tag == "VersionPreview")
             {
                 mergeWorker.PickObject(objectUnderCursor);
             }
         }
     }
 }
Exemplo n.º 3
0
    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);
    }
Exemplo n.º 4
0
    public ICommit CreateMergeCommit(string commitMessage)
    {
        foreach (KeyValuePair <VersionController, IVersion> stageData in this.mw.BuildStagingArea())
        {
            this.Add(stageData.Key, stageData.Value);
        }
        ICommit mergeCommit = this.Commit(commitMessage);

        foreach (VersionController versionedObject in this.mw.BuildStagingArea().Keys)
        {
            this.ResetToHead(versionedObject);
        }

        this.mw.End();
        this.mw = null;

        if (mergeTrigger != null)
        {
            mergeTrigger.Trigger();
        }


        return(mergeCommit);
    }