public IConflictResolver <TType> GetConflictResolver <TType>(IDiff <TType> conflicted)
        {
            var conflicts = new ConflictContainer();

            conflicts.RegisterAll(conflicted);

            return(new ConflictResolver <TType>(conflicted, conflicts));
        }
Exemplo n.º 2
0
        public TType Merge <TType>(TType @base, TType left, TType right)
        {
            ConflictContainer conflicts = new ConflictContainer();

            IDiff <TType> patch = this.Partial.MergeDiffs(
                this.Partial.Diff(@base, left),
                this.Partial.Diff(@base, right),
                conflicts
                );

            if (conflicts.HasConflicts)
            {
                ConflictResolver <TType> resolver = new ConflictResolver <TType>(patch, conflicts);

                this.Partial.ResolveConflicts(resolver);

                patch = resolver.Finish();
            }

            return(this.Partial.ApplyPatch(@base, patch));
        }
        public IDiff <TType> MergeDiffs <TType>(IDiff <TType> left, IDiff <TType> right, out IConflictContainer conflicts)
        {
            conflicts = new ConflictContainer();

            return(this.MergeDiffs(left, right, conflicts));
        }