Exemple #1
0
        public ConflictResolutionResult Resolve(IServiceContainer serviceContainer, MigrationConflict conflict, ConflictResolutionRule rule, out List <MigrationAction> actions)
        {
            actions = null;
            long otherSideConflictActionId;

            if (rule.ActionRefNameGuid.Equals(new VCContentConflictTakeLocalChangeAction().ReferenceName))
            {
                // left-> right migration. User select take local (right). So we skip left side conflict action(the original conflict action).
                if (!markChangeActionAsSkipped(conflict.ConflictedChangeAction.ActionId))
                {
                    TraceManager.TraceError("Cannot mark conflict action {0} as skipped", conflict.ConflictedChangeAction.ActionId);
                    return(new ConflictResolutionResult(false, ConflictResolutionType.SkipConflictedChangeAction));
                }
                return(new ConflictResolutionResult(true, ConflictResolutionType.SkipConflictedChangeAction));
            }
            else if (rule.ActionRefNameGuid.Equals(new VCContentConflictTakeOtherChangesAction().ReferenceName))
            {
                // left-> right migration. User select take other (left). So we skip right side conflict action(the other side's conflict action).
                if (!long.TryParse(conflict.ConflictDetails, out otherSideConflictActionId))
                {
                    TraceManager.TraceError("Cannot find other side's conflict action {0}", conflict.ConflictDetails);
                    return(new ConflictResolutionResult(false, ConflictResolutionType.SuppressOtherSideChangeAction));
                }
                if (!markChangeActionAsSkipped(otherSideConflictActionId))
                {
                    TraceManager.TraceError("Cannot mark conflict action {0} as skipped", conflict.ConflictDetails);
                    return(new ConflictResolutionResult(false, ConflictResolutionType.SuppressOtherSideChangeAction));
                }
                return(new ConflictResolutionResult(true, ConflictResolutionType.SuppressOtherSideChangeAction));
            }
            else if (rule.ActionRefNameGuid.Equals(new VCContentConflictUserMergeChangeAction().ReferenceName))
            {
                if (updateConversionHistory(conflict, rule, serviceContainer))
                {
                    return(new ConflictResolutionResult(true, ConflictResolutionType.SuppressedConflictedChangeGroup));
                }
                else
                {
                    return(new ConflictResolutionResult(false, ConflictResolutionType.Other));
                }
            }
            else
            {
                return(new ConflictResolutionResult(false, ConflictResolutionType.UnknownResolutionAction));
            }
        }
        public ConflictResolutionResult Resolve(IServiceContainer serviceContainer, MigrationConflict conflict, ConflictResolutionRule rule, out List <MigrationAction> actions)
        {
            actions = null;

            if (rule.ActionRefNameGuid.Equals(new VCLabelCreationConflictSkipAction().ReferenceName))
            {
                return(new ConflictResolutionResult(true, ConflictResolutionType.SkipConflictedChangeAction));
            }
            else if (rule.ActionRefNameGuid.Equals(new VCLabelCreationConflictRetryAction().ReferenceName))
            {
                return(new ConflictResolutionResult(true, ConflictResolutionType.Retry));
            }
            else
            {
                return(new ConflictResolutionResult(false, ConflictResolutionType.UnknownResolutionAction));
            }
        }
Exemple #3
0
 public static ConflictResolutionResult TryResolve(ConflictResolutionRule rule, MigrationConflict conflict)
 {
     throw new NotImplementedException();
 }
 public bool CanResolve(MigrationConflict conflict, ConflictResolutionRule rule)
 {
     return(ConflictTypeHandled.ScopeInterpreter.IsInScope(conflict.ScopeHint, rule.ApplicabilityScope));
 }
 public ConflictResolutionResult Resolve(IServiceContainer serviceContainer, MigrationConflict conflict, ConflictResolutionRule rule, out List <MigrationAction> actions)
 {
     actions = null;
     return(new ConflictResolutionResult(true, ConflictResolutionType.Other));
 }
Exemple #6
0
        public ConflictResolutionResult Resolve(IServiceContainer serviceContainer, MigrationConflict conflict, ConflictResolutionRule rule, out List <MigrationAction> actions)
        {
            actions = null;

            /* Removing for now until the conflict handler can handle this for any adaptter via an interface and not just for TFS
             * if (rule.ActionRefNameGuid.Equals(new VCInvalidLabelNameAutomaticRenameAction().ReferenceName))
             * {
             *  conflict.ConflictedChangeAction.ChangeGroup.Name = FixupTfsLabelName(conflict.ConflictedChangeAction.ChangeGroup.Name);
             *  actions = new List<MigrationAction>();
             *  return new ConflictResolutionResult(true, ConflictResolutionType.UpdatedConflictedChangeAction);
             * }
             * else
             */
            if (rule.ActionRefNameGuid.Equals(new VCLabelConflictManualRenameAction().ReferenceName))
            {
                conflict.ConflictedChangeAction.ChangeGroup.Name = rule.DataFieldDictionary[VCLabelConflictManualRenameAction.DATAKEY_RENAME_LABEL];
                return(new ConflictResolutionResult(true, ConflictResolutionType.UpdatedConflictedChangeAction));
            }
            else
            {
                return(new ConflictResolutionResult(false, ConflictResolutionType.UnknownResolutionAction));
            }
        }
 public bool CanResolve(MigrationConflict conflict, ConflictResolutionRule rule)
 {
     return(true);
 }
Exemple #8
0
        public ConflictResolutionResult Resolve(IServiceContainer serviceContainer, MigrationConflict conflict, ConflictResolutionRule rule, out List <MigrationAction> actions)
        {
            actions = null;
            if (rule.ActionRefNameGuid.Equals(new WITEditEditConflictTakeSourceChangesAction().ReferenceName))
            {
                if (null != conflict.ConflictedChangeAction && TakeSource(conflict))
                {
                    return(new ConflictResolutionResult(true, ConflictResolutionType.Other));
                }
            }
            else if (rule.ActionRefNameGuid.Equals(new WITEditEditConflictTakeTargetChangesAction().ReferenceName))
            {
                if (null != conflict.ConflictedChangeAction && TakeTarget(conflict))
                {
                    return(new ConflictResolutionResult(true, ConflictResolutionType.UpdatedConflictedChangeAction));
                }
            }
            else if (rule.ActionRefNameGuid.Equals(new WITEditEditConflictIgnoreByFieldChangeAction().ReferenceName))
            {
                if (null != conflict.ConflictedChangeAction)
                {
                    bool canIgnore = TryIgnoreNonFieldConflict(conflict);
                    if (canIgnore)
                    {
                        return(new ConflictResolutionResult(true, ConflictResolutionType.Other));
                    }
                }
            }

            return(new ConflictResolutionResult(false, ConflictResolutionType.Other));
        }
        public ConflictResolutionResult Resolve(IServiceContainer serviceContainer, MigrationConflict conflict, ConflictResolutionRule rule, out List <MigrationAction> actions)
        {
            actions = null;

            if (rule.ActionRefNameGuid.Equals(new VCLabelConflictManualRenameAction().ReferenceName))
            {
                conflict.ConflictedChangeAction.ChangeGroup.Name = rule.DataFieldDictionary[VCLabelConflictManualRenameAction.DATAKEY_RENAME_LABEL];
                return(new ConflictResolutionResult(true, ConflictResolutionType.UpdatedConflictedChangeAction));
            }
            else
            {
                return(new ConflictResolutionResult(false, ConflictResolutionType.UnknownResolutionAction));
            }
        }
        public ConflictResolutionResult Resolve(IServiceContainer serviceContainer, MigrationConflict conflict, ConflictResolutionRule rule, out List <MigrationAction> actions)
        {
            actions = null;
            if (rule.ActionRefNameGuid.Equals(new ManualConflictResolutionAction().ReferenceName))
            {
                return(new ConflictResolutionResult(true, ConflictResolutionType.Other));
            }

            return(new ConflictResolutionResult(false, ConflictResolutionType.Other));
        }
Exemple #11
0
 public ConflictResolutionResult Resolve(IServiceContainer serviceContainer, MigrationConflict conflict, ConflictResolutionRule rule, out List <MigrationAction> actions)
 {
     actions = null;
     if (rule.ActionRefNameGuid.Equals(new VCChangeToAddOnBranchParentNotFoundAction().ReferenceName))
     {
         return(new ConflictResolutionResult(true, ConflictResolutionType.UpdatedConflictedChangeAction));
     }
     else if (rule.ActionRefNameGuid.Equals(new VCRetryOnBranchParentNotFoundAction()))
     {
         return(new ConflictResolutionResult(true, ConflictResolutionType.Retry));
     }
     else
     {
         //Todo, show UI, allow user to create resolution rules.
         return(new ConflictResolutionResult(false, ConflictResolutionType.UnknownResolutionAction));
     }
 }