/// <summary> /// Computes the three-way-merge of Json hashtables. /// </summary> public static Hashtable Merge(Hashtable parent, Hashtable left, Hashtable right) { HashDiff left_diff = JsonDiff.Diff(parent, left); HashDiff right_diff = JsonDiff.Diff(parent, right); HashDiff diff = HashDiff.Merge(left_diff, right_diff); Hashtable res = parent.DeepClone(); diff.Apply(res); return(res); }
/// <summary> /// Computes the three-way-merge of Json hashtables and returns the intermediate diff results. /// </summary> public static Hashtable MergeDetailed(Hashtable parent, Hashtable left, Hashtable right, out HashDiff left_diff, out HashDiff right_diff, out HashDiff merged_diff) { left_diff = JsonDiff.Diff(parent, left); right_diff = JsonDiff.Diff(parent, right); merged_diff = HashDiff.Merge(left_diff, right_diff); Hashtable res = parent.DeepClone(); merged_diff.Apply(res); return(res); }
public static ChangeIdArrayOperation Merge(ChangeIdArrayOperation left, ChangeIdArrayOperation right) { return(new ChangeIdArrayOperation(HashDiff.Merge(left.Diff, right.Diff))); }