The unified diff between revisions [bc801c96..] and [04446196..] is displayed below. It can also be downloaded as a raw diff.

#
#
# patch "netsync.cc"
#  from [9d685cf069b5ccc36d5adaa1ed8ae829a1c934c1]
#    to [47d8fd00598b41e501700e9cf63e6300eb0fb1be]
#
============================================================
--- netsync.cc	9d685cf069b5ccc36d5adaa1ed8ae829a1c934c1
+++ netsync.cc	47d8fd00598b41e501700e9cf63e6300eb0fb1be
@@ -3720,28 +3720,21 @@ ancestry_fetcher::traverse_manifest(mani

   // handle the manifest forward-deltas
   if (!null_id(parent_man)
+      // don't update child to itself, it makes the loop iterate infinitely.
+      && !(parent_man == child_man)
       && fwd_manifest_deltas.find(child_man) != fwd_manifest_deltas.end())
     {
       // We're traversing with child->parent of A->B.
       // Update any forward deltas with a parent of B to
       // have A as a parent, ie B->C becomes A->C.
-      L(F("inserting manifest rev_deltas"));
       for (multimap<manifest_id,manifest_id>::iterator d =
            fwd_manifest_deltas.lower_bound(child_man);
            d != fwd_manifest_deltas.upper_bound(child_man);
            d++)
         {
-          L(F("here %s,%s") % d->first % d->second);
-        }
-      for (multimap<manifest_id,manifest_id>::iterator d =
-           fwd_manifest_deltas.lower_bound(child_man);
-           d != fwd_manifest_deltas.upper_bound(child_man);
-           d++)
-        {
           L(F("size %d\n") % fwd_manifest_deltas.size());
           L(F("inserting %s->%s") % parent_man % d->second);
           fwd_manifest_deltas.insert(make_pair(parent_man, d->second));
-          L(F("erasing %s,%s") % d->first % d->second);
         }

       fwd_manifest_deltas.erase(fwd_manifest_deltas.lower_bound(child_man),