/// <summary> /// This is for regular three-way merges. /// </summary> public MergeTextNodesMethod(XmlMerger merger, IElementDescriber elementDescriber, HashSet<XmlNode> skipInnerMergeFor, ref XmlNode ours, List<XmlNode> ourKeepers, XmlNode theirs, List<XmlNode> theirKeepers, XmlNode ancestor, List<XmlNode> ancestorKeepers) { _ours = ours; _ourKeepers = ourKeepers; _theirs = theirs; _theirKeepers = theirKeepers; _ancestor = ancestor; _ancestorKeepers = ancestorKeepers; _merger = merger; _elementDescriber = elementDescriber; _skipInnerMergeFor = skipInnerMergeFor; }
/// <summary> /// This is for regular three-way merges. /// </summary> public MergeTextNodesMethod(XmlMerger merger, IElementDescriber elementDescriber, HashSet <XmlNode> skipInnerMergeFor, ref XmlNode ours, List <XmlNode> ourKeepers, XmlNode theirs, List <XmlNode> theirKeepers, XmlNode ancestor, List <XmlNode> ancestorKeepers) { _ours = ours; _ourKeepers = ourKeepers; _theirs = theirs; _theirKeepers = theirKeepers; _ancestor = ancestor; _ancestorKeepers = ancestorKeepers; _merger = merger; _elementDescriber = elementDescriber; _skipInnerMergeFor = skipInnerMergeFor; }
private static XmlNode HandleTheirChildNotPresent(XmlMerger merger, XmlNode ours, XmlNode ancestor, XmlNode ancestorChild, XmlNode ourChild, MergeSituation mergeSituation, IElementDescriber mergeStrategyForChild, string pathToFileInRepository) { if (XmlUtilities.AreXmlElementsEqual(ancestorChild, ourChild)) { // They deleted it. We did nothing. merger.EventListener.ChangeOccurred(new XmlDeletionChangeReport(pathToFileInRepository, ancestor, ancestorChild)); } else { // edit vs delete conflict. merger.ConflictOccurred(new EditedVsRemovedElementConflict(ourChild.Name, ourChild, null, ancestorChild, mergeSituation, mergeStrategyForChild, mergeSituation.AlphaUserId)); } return(ours); }
private static XmlNode HandleOurChildNotPresent(XmlMerger merger, XmlNode ours, XmlNode ancestor, XmlNode theirChild, string pathToFileInRepository, XmlNode ancestorChild, MergeSituation mergeSituation, IElementDescriber mergeStrategyForChild) { if (theirChild == null) { // Both deleted it. merger.EventListener.ChangeOccurred(new XmlBothDeletionChangeReport(pathToFileInRepository, ancestorChild)); } else { if (XmlUtilities.AreXmlElementsEqual(ancestorChild, theirChild)) { // We deleted it. They did nothing. merger.EventListener.ChangeOccurred(new XmlDeletionChangeReport(pathToFileInRepository, ancestor, ancestorChild)); } else { // delete vs edit conflict. merger.ConflictOccurred(new RemovedVsEditedElementConflict(theirChild.Name, theirChild, null, ancestorChild, mergeSituation, mergeStrategyForChild, mergeSituation.BetaUserId)); // ReSharper disable once PossibleNullReferenceException -- if ours.OwnerDocument is null, we have other problems ours.AppendChild(ours.OwnerDocument.ImportNode(theirChild, true)); } } return(ours); }
private static XmlNode HandleTheirChildNotPresent(XmlMerger merger, XmlNode ours, XmlNode ancestor, XmlNode ancestorChild, XmlNode ourChild, MergeSituation mergeSituation, IElementDescriber mergeStrategyForChild, string pathToFileInRepository) { if (XmlUtilities.AreXmlElementsEqual(ancestorChild, ourChild)) { // They deleted it. We did nothing. merger.EventListener.ChangeOccurred(new XmlDeletionChangeReport(pathToFileInRepository, ancestor, ancestorChild)); } else { // edit vs delete conflict. merger.ConflictOccurred(new EditedVsRemovedElementConflict(ourChild.Name, ourChild, null, ancestorChild, mergeSituation, mergeStrategyForChild, mergeSituation.AlphaUserId)); } return ours; }
private static XmlNode HandleOurChildNotPresent(XmlMerger merger, XmlNode ours, XmlNode ancestor, XmlNode theirChild, string pathToFileInRepository, XmlNode ancestorChild, MergeSituation mergeSituation, IElementDescriber mergeStrategyForChild) { if (theirChild == null) { // Both deleted it. merger.EventListener.ChangeOccurred(new XmlBothDeletionChangeReport(pathToFileInRepository, ancestorChild)); } else { if (XmlUtilities.AreXmlElementsEqual(ancestorChild, theirChild)) { // We deleted it. They did nothing. merger.EventListener.ChangeOccurred(new XmlDeletionChangeReport(pathToFileInRepository, ancestor, ancestorChild)); } else { // delete vs edit conflict. merger.ConflictOccurred(new RemovedVsEditedElementConflict(theirChild.Name, theirChild, null, ancestorChild, mergeSituation, mergeStrategyForChild, mergeSituation.BetaUserId)); ours.AppendChild(theirChild); } } return ours; }
private static XmlNode HandleOurChildNotPresent(XmlMerger merger, XmlNode ours, XmlNode ancestor, XmlNode theirChild, string pathToFileInRepository, XmlNode ancestorChild, MergeSituation mergeSituation, IElementDescriber mergeStrategyForChild) { if (theirChild == null) { // Both deleted it. merger.EventListener.ChangeOccurred(new XmlBothDeletionChangeReport(pathToFileInRepository, ancestorChild)); } else { if (XmlUtilities.AreXmlElementsEqual(ancestorChild, theirChild)) { // We deleted it. They did nothing. merger.EventListener.ChangeOccurred(new XmlDeletionChangeReport(pathToFileInRepository, ancestor, ancestorChild)); } else { // delete vs edit conflict. merger.ConflictOccurred(new RemovedVsEditedElementConflict(theirChild.Name, theirChild, null, ancestorChild, mergeSituation, mergeStrategyForChild, mergeSituation.BetaUserId)); ours.AppendChild(theirChild); } } return(ours); }