private static int CountNonNotes(NoteMap map) { int c = 0; NonNoteEntry nonNotes = map.GetRoot().nonNotes; while (nonNotes != null) { c++; nonNotes = nonNotes.next; } return(c); }
/// <summary>Performs the merge.</summary> /// <remarks>Performs the merge.</remarks> /// <param name="base">base version of the note tree</param> /// <param name="ours">ours version of the note tree</param> /// <param name="theirs">theirs version of the note tree</param> /// <returns>merge result as a new NoteMap</returns> /// <exception cref="System.IO.IOException">System.IO.IOException</exception> public virtual NoteMap Merge(NoteMap @base, NoteMap ours, NoteMap theirs) { try { InMemoryNoteBucket mergedBucket = Merge(0, @base.GetRoot(), ours.GetRoot(), theirs .GetRoot()); inserter.Flush(); return(NoteMap.NewMap(mergedBucket, reader)); } finally { reader.Release(); inserter.Release(); } }
public virtual void TestCollapseFanoutAfterMerge() { NoteMapMerger merger = new NoteMapMerger(db, null, null); NoteMap largeTree = CreateLargeNoteMap("note_", "content_", 257, 0); NUnit.Framework.Assert.IsTrue(largeTree.GetRoot() is FanoutBucket); NoteMap deleteFirstHundredNotes = CreateLargeNoteMap("note_", "content_", 157, 100 ); NoteMap deleteLastHundredNotes = CreateLargeNoteMap("note_", "content_", 157, 0); NoteMap result = merger.Merge(largeTree, deleteFirstHundredNotes, deleteLastHundredNotes ); NUnit.Framework.Assert.AreEqual(57, CountNotes(result)); NUnit.Framework.Assert.IsTrue(result.GetRoot() is LeafBucket); }
/// <summary>Performs the merge.</summary> /// <remarks>Performs the merge.</remarks> /// <param name="base">base version of the note tree</param> /// <param name="ours">ours version of the note tree</param> /// <param name="theirs">theirs version of the note tree</param> /// <returns>merge result as a new NoteMap</returns> /// <exception cref="System.IO.IOException">System.IO.IOException</exception> public virtual NoteMap Merge(NoteMap @base, NoteMap ours, NoteMap theirs) { try { InMemoryNoteBucket mergedBucket = Merge(0, @base.GetRoot(), ours.GetRoot(), theirs .GetRoot()); inserter.Flush(); return NoteMap.NewMap(mergedBucket, reader); } finally { reader.Release(); inserter.Release(); } }
private static int CountNonNotes(NoteMap map) { int c = 0; NonNoteEntry nonNotes = map.GetRoot().nonNotes; while (nonNotes != null) { c++; nonNotes = nonNotes.next; } return c; }