Exemplo n.º 1
0
        /// <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;
        }
Exemplo n.º 2
0
 /// <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;
        }
Exemplo n.º 7
0
 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);
 }