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