public IConflictResolver <TType> GetConflictResolver <TType>(IDiff <TType> conflicted) { var conflicts = new ConflictContainer(); conflicts.RegisterAll(conflicted); return(new ConflictResolver <TType>(conflicted, conflicts)); }
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)); }