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

This diff has been restricted to the following files: 'database.cc'

#
#
# patch "database.cc"
#  from [9341b8a07be7af789675c0d1f9af26273c6fa8b3]
#    to [a7f6d1a9f789180312488e66637df2832f11a4fb]
#
============================================================
--- database.cc	9341b8a07be7af789675c0d1f9af26273c6fa8b3
+++ database.cc	a7f6d1a9f789180312488e66637df2832f11a4fb
@@ -1170,33 +1170,6 @@ database::drop(hexenc<id> const & ident,
   execute(query(drop) % text(ident()));
 }

-void
-database::put_version(hexenc<id> const & old_id,
-                      hexenc<id> const & new_id,
-                      delta const & del,
-                      string const & data_table,
-                      string const & delta_table)
-{
-
-  data old_data, new_data;
-  delta reverse_delta;
-
-  get_version(old_id, old_data, data_table, delta_table);
-  patch(old_data, del, new_data);
-  diff(new_data, old_data, reverse_delta);
-
-  transaction_guard guard(*this);
-  if (exists(old_id, data_table))
-    {
-      // descendent of a head version replaces the head, therefore old head
-      // must be disposed of
-      drop(old_id, data_table);
-    }
-  put(new_id, new_data, data_table);
-  put_delta(old_id, new_id, reverse_delta, delta_table);
-  guard.commit();
-}
-
 // insert the given new data using old_id as a hint
 // as to ancestry
 void
@@ -1260,6 +1233,7 @@ database::remove_version(hexenc<id> cons
                          string const & data_table,
                          string const & delta_table)
 {
+  E(false, F("needs updating for against-base"));
   // We have a one of two cases (for multiple 'older' nodes):
   //
   //    1.  pre:        older <- target <- newer
@@ -1451,9 +1425,9 @@ database::put_file_version(file_id const
 void
 database::put_file_version(file_id const & old_id,
                            file_id const & new_id,
-                           file_delta const & del)
+                           file_data const & dat)
 {
-  put_version(old_id.inner(), new_id.inner(), del.inner(),
+  put_version(old_id.inner(), new_id.inner(), dat.inner(),
               "files", "file_deltas");
 }

@@ -1660,45 +1634,6 @@ database::make_all_fwd()
   guard.commit();
 }

-void
-database::deltify_revision(revision_id const & rid)
-{
-  transaction_guard guard(*this);
-  revision_set rev;
-  MM(rev);
-  MM(rid);
-  get_revision(rid, rev);
-  // Make sure that all parent revs have their files replaced with deltas
-  // from this rev's files.
-  {
-    for (edge_map::const_iterator i = rev.edges.begin();
-         i != rev.edges.end(); ++i)
-      {
-        for (std::map<split_path, std::pair<file_id, file_id> >::const_iterator
-               j = edge_changes(i).deltas_applied.begin();
-             j != edge_changes(i).deltas_applied.end(); ++j)
-          {
-            if (exists(delta_entry_src(j).inner(), "files") &&
-                file_version_exists(delta_entry_dst(j)))
-              {
-                file_data old_data;
-                file_data new_data;
-                get_file_version(delta_entry_src(j), old_data);
-                get_file_version(delta_entry_dst(j), new_data);
-                delta delt;
-                diff(old_data.inner(), new_data.inner(), delt);
-                file_delta del(delt);
-                drop(delta_entry_dst(j).inner(), "files");
-                drop(delta_entry_dst(j).inner(), "file_deltas");
-                put_file_version(delta_entry_src(j), delta_entry_dst(j), del);
-              }
-          }
-      }
-  }
-  guard.commit();
-}
-
-
 void
 database::put_revision(revision_id const & new_id,
                        revision_set const & rev)
@@ -1753,8 +1688,6 @@ database::put_revision(revision_id const
               % text(new_id.inner()()));
     }

-  //deltify_revision(new_id);
-
   // Phase 4: write the roster data and commit
   put_roster(new_id, ros, mm);

@@ -2869,8 +2802,6 @@ database::put_roster(revision_id const &
   // Else we have a new roster the database hasn't seen yet; our task is to
   // add it.

-  put_version(new_id, new_data, data_table);
-
   std::set<revision_id> parents;
   get_revision_parents(rev_id, parents);

@@ -2889,7 +2820,7 @@ database::put_roster(revision_id const &

   if (!written)
     {
-      put(new_data, new_data, data_table);
+      put(new_id, new_data, data_table);
     }

   guard.commit();
@@ -3085,11 +3016,20 @@ transaction_guard::maybe_checkpoint(size
 void
 transaction_guard::maybe_checkpoint(size_t nbytes)
 {
+  static ticker size("siz", "s", 1);
+  static ticker bytes("byt", "b", 1);
   checkpointed_calls += 1;
   checkpointed_bytes += nbytes;
   if (checkpointed_calls >= checkpoint_batch_size
       || checkpointed_bytes >= checkpoint_batch_bytes)
-    do_checkpoint();
+    {
+      if (checkpointed_calls >= checkpoint_batch_size)
+        ++size;
+      if (checkpointed_bytes >= checkpoint_batch_bytes)
+        ++bytes;
+
+      do_checkpoint();
+    }
 }

 void