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