/// <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); }
// 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); } } } }
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); }
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); }