#
#
# patch "ChangeLog"
# from [96ac221310f1e203ab5a8cea88f2d86c42e9904e]
# to [c85b6390e5e221f6e9203d2dee4e35c5e94ebae8]
#
# patch "database.cc"
# from [52ec48ff3274d5088e47b4a9ad74d846156cb678]
# to [8a18b697ea6dfa42979560ef2023429615fec9d6]
#
# patch "database.hh"
# from [9bd0680ba679954f3dd24abe2f95245458c5c321]
# to [da379322125c5ca6f8b1ab7e95e9b39d10bdf896]
#
# patch "database_check.cc"
# from [3433aba6cb013e6d03f28d45f5ce87db8ddb4c3c]
# to [cc6c8ece1194a534ba856ef17bc56ebb31b8458a]
#
# patch "transforms.cc"
# from [079c3479e99dda5711ca148a67c93f756641b0d1]
# to [3ccf0649c918465fe7169c823a2fc9e912488b9a]
#
# patch "transforms.hh"
# from [72398b1a08314a36352c7216fff9f6e2c00f74b3]
# to [231599114d9ce5980f63ef0acb0605d836f4c0e6]
#
# patch "vocab.cc"
# from [b7870ee35e2b5b4054a732e344d9cb9fbbaa22c2]
# to [ec4c04c67d063fa7beb7b7821411f56099588d9a]
#
# patch "vocab.hh"
# from [9a7c6c4699b65e563bc0fb7d8e557139283bbb5b]
# to [9bc5a9930e2e19e73317788cd7f5142d99adb60f]
#
# patch "vocab_terms.hh"
# from [346786c6c93907481a5c0691b3d60811827df9a3]
# to [fa88ad4f49972bed8d1e5f02bdeb23f5031f3de0]
#
============================================================
--- ChangeLog 96ac221310f1e203ab5a8cea88f2d86c42e9904e
+++ ChangeLog c85b6390e5e221f6e9203d2dee4e35c5e94ebae8
@@ -1,3 +1,17 @@
+2006-05-25 Derek Scherger
+
+ * database.{cc,hh} (exists): indentation fix
+ (roster_version_exists, roster_exists_for_revision,
+ get_roster_links, get_roster_ids, delete_existing_rev_and_certs,
+ get_roster_id_for_revision, get_roster, put_roster):
+ * database_check.cc (check_rosters_manifest,
+ check_rosters_marking, check_roster_links, check_revisions,
+ report_rosters, check_db): replace hexenc with roster_id
+ * transforms.{cc,hh} (calculate_ident): new roster_id variant
+ * vocab.cc (dump): new roster_id variant
+ * vocab.hh: typedef roster_id
+ * vocab_terms.hh: roster_id template instantiations
+
2006-05-24 Derek Scherger
* cmd_merging.cc (merge_into_dir): use the_null_node rather than 0
============================================================
--- database.cc 52ec48ff3274d5088e47b4a9ad74d846156cb678
+++ database.cc 8a18b697ea6dfa42979560ef2023429615fec9d6
@@ -865,7 +865,7 @@
bool
database::exists(hexenc const & ident,
- string const & table)
+ string const & table)
{
if (have_pending_write(table, ident))
return true;
@@ -1373,10 +1373,10 @@
}
bool
-database::roster_version_exists(hexenc const & id)
+database::roster_version_exists(roster_id const & id)
{
- return delta_exists(id(), "roster_deltas")
- || exists(id(), "rosters");
+ return delta_exists(id.inner(), "roster_deltas")
+ || exists(id.inner(), "rosters");
}
bool
@@ -1404,11 +1404,11 @@
query("SELECT roster_id FROM revision_roster WHERE rev_id = ? ")
% text(rev_id.inner()()));
I((res.size() == 1) || (res.size() == 0));
- return (res.size() == 1) && roster_version_exists(hexenc(res[0][0]));
+ return (res.size() == 1) && roster_version_exists(roster_id(res[0][0]));
}
void
-database::get_roster_links(std::map > & links)
+database::get_roster_links(std::map & links)
{
links.clear();
results res;
@@ -1416,7 +1416,7 @@
for (size_t i = 0; i < res.size(); ++i)
{
links.insert(make_pair(revision_id(res[i][0]),
- hexenc(res[i][1])));
+ roster_id(res[i][1])));
}
}
@@ -1440,7 +1440,7 @@
}
void
-database::get_roster_ids(set< hexenc > & ids)
+database::get_roster_ids(set & ids)
{
ids.clear();
set< hexenc > tmp;
@@ -1767,14 +1767,14 @@
% text(rid.inner()()));
// Find the associated roster and count the number of links to it
- hexenc roster_id;
+ roster_id ros_id;
size_t link_count = 0;
- get_roster_id_for_revision(rid, roster_id);
+ get_roster_id_for_revision(rid, ros_id);
{
results res;
fetch(res, 2, any_rows,
query("SELECT rev_id, roster_id FROM revision_roster "
- "WHERE roster_id = ?") % text(roster_id()));
+ "WHERE roster_id = ?") % text(ros_id.inner()()));
I(res.size() > 0);
link_count = res.size();
}
@@ -1785,7 +1785,7 @@
// If that was the last link to the roster, kill the roster too.
if (link_count == 1)
- remove_version(roster_id, "rosters", "roster_deltas");
+ remove_version(ros_id.inner(), "rosters", "roster_deltas");
guard.commit();
}
@@ -2724,11 +2724,11 @@
void
database::get_roster_id_for_revision(revision_id const & rev_id,
- hexenc & roster_id)
+ roster_id & ros_id)
{
if (rev_id.inner()().empty())
{
- roster_id = hexenc();
+ ros_id = roster_id();
return;
}
@@ -2736,7 +2736,7 @@
query q("SELECT roster_id FROM revision_roster WHERE rev_id = ? ");
fetch(res, one_col, any_rows, q % text(rev_id.inner()()));
I(res.size() == 1);
- roster_id = hexenc(res[0][0]);
+ ros_id = roster_id(res[0][0]);
}
void
@@ -2748,13 +2748,13 @@
}
void
-database::get_roster(hexenc const & ros_id,
+database::get_roster(roster_id const & ros_id,
data & dat)
{
string data_table = "rosters";
string delta_table = "roster_deltas";
- get_version(ros_id, dat, data_table, delta_table);
+ get_version(ros_id.inner(), dat, data_table, delta_table);
}
@@ -2783,7 +2783,7 @@
}
data dat;
- hexenc ident;
+ roster_id ident;
get_roster_id_for_revision(rev_id, ident);
get_roster(ident, dat);
@@ -2802,7 +2802,7 @@
MM(rev_id);
data old_data, new_data;
delta reverse_delta;
- hexenc old_id, new_id;
+ roster_id old_id, new_id;
if (!rcache.exists(rev_id))
{
@@ -2825,10 +2825,10 @@
execute(query("INSERT into revision_roster VALUES (?, ?)")
% text(rev_id.inner()())
- % text(new_id()));
+ % text(new_id.inner()()));
- if (exists(new_id, data_table)
- || delta_exists(new_id, delta_table))
+ if (exists(new_id.inner(), data_table)
+ || delta_exists(new_id.inner(), delta_table))
{
guard.commit();
return;
@@ -2837,7 +2837,7 @@
// Else we have a new roster the database hasn't seen yet; our task is to
// add it, and deltify all the incoming edges (if they aren't already).
- schedule_write(data_table, new_id, new_data);
+ schedule_write(data_table, new_id.inner(), new_data);
std::set parents;
get_revision_parents(rev_id, parents);
@@ -2851,15 +2851,15 @@
continue;
revision_id old_rev = *i;
get_roster_id_for_revision(old_rev, old_id);
- if (exists(new_id, data_table))
+ if (exists(new_id.inner(), data_table))
{
- get_version(old_id, old_data, data_table, delta_table);
+ get_version(old_id.inner(), old_data, data_table, delta_table);
diff(new_data, old_data, reverse_delta);
- if (have_pending_write(data_table, old_id))
- cancel_pending_write(data_table, old_id);
+ if (have_pending_write(data_table, old_id.inner()))
+ cancel_pending_write(data_table, old_id.inner());
else
- drop(old_id, data_table);
- put_delta(old_id, new_id, reverse_delta, delta_table);
+ drop(old_id.inner(), data_table);
+ put_delta(old_id.inner(), new_id.inner(), reverse_delta, delta_table);
}
}
guard.commit();
============================================================
--- database.hh 9bd0680ba679954f3dd24abe2f95245458c5c321
+++ database.hh da379322125c5ca6f8b1ab7e95e9b39d10bdf896
@@ -227,15 +227,15 @@
bool database_specified();
bool file_version_exists(file_id const & id);
- bool roster_version_exists(hexenc const & id);
+ bool roster_version_exists(roster_id const & id);
bool revision_exists(revision_id const & id);
bool roster_link_exists_for_revision(revision_id const & id);
bool roster_exists_for_revision(revision_id const & id);
- void get_roster_links(std::map > & links);
+ void get_roster_links(std::map & links);
void get_file_ids(std::set & ids);
void get_revision_ids(std::set & ids);
- void get_roster_ids(std::set< hexenc > & ids) ;
+ void get_roster_ids(std::set & ids) ;
bool check_integrity();
@@ -396,7 +396,7 @@
// roster and node_id stuff
void get_roster_id_for_revision(revision_id const & rev_id,
- hexenc & roster_id);
+ roster_id & ros_id);
void get_roster(revision_id const & rid,
roster_t & roster);
@@ -405,7 +405,7 @@
roster_t & roster,
marking_map & marks);
- void get_roster(hexenc const & roster_id,
+ void get_roster(roster_id const & ros_id,
data & dat);
void get_uncommon_ancestors(revision_id const & a,
============================================================
--- database_check.cc 3433aba6cb013e6d03f28d45f5ce87db8ddb4c3c
+++ database_check.cc cc6c8ece1194a534ba856ef17bc56ebb31b8458a
@@ -153,19 +153,19 @@
// roster, and general parsability/normalisation
static void
check_rosters_manifest(app_state & app,
- std::map, checked_roster> & checked_rosters,
+ std::map & checked_rosters,
std::map & checked_revisions,
std::set & found_manifests,
std::map & checked_files)
{
- set< hexenc > rosters;
+ set rosters;
app.db.get_roster_ids(rosters);
L(FL("checking %d rosters, manifest pass\n") % rosters.size());
ticker ticks(_("rosters"), "r", rosters.size()/70+1);
- for (set >::const_iterator i = rosters.begin();
+ for (set::const_iterator i = rosters.begin();
i != rosters.end(); ++i)
{
@@ -190,7 +190,7 @@
// normalisation check
{
- hexenc norm_ident;
+ roster_id norm_ident;
data norm_data;
write_roster_and_marking(ros, mm, norm_data);
calculate_ident(norm_data, norm_ident);
@@ -225,17 +225,17 @@
// that the referenced revisions exist.
static void
check_rosters_marking(app_state & app,
- std::map, checked_roster> & checked_rosters,
+ std::map & checked_rosters,
std::map & checked_revisions)
{
L(FL("checking %d rosters, marking pass\n") % checked_rosters.size());
ticker ticks(_("markings"), "m", checked_rosters.size()/70+1);
- for (std::map, checked_roster>::const_iterator i
+ for (std::map::const_iterator i
= checked_rosters.begin(); i != checked_rosters.end(); i++)
{
- hexenc ros_id = i->first;
+ roster_id ros_id = i->first;
L(FL("checking roster %s\n") % i->first);
if (!i->second.parseable)
continue;
@@ -289,27 +289,27 @@
static void
check_roster_links(app_state & app,
std::map & checked_revisions,
- std::map, checked_roster> & checked_rosters,
+ std::map & checked_rosters,
size_t & unreferenced_roster_links,
size_t & missing_rosters)
{
unreferenced_roster_links = 0;
- std::map > links;
+ std::map links;
app.db.get_roster_links(links);
- for (std::map >::const_iterator i = links.begin();
+ for (std::map::const_iterator i = links.begin();
i != links.end(); ++i)
{
revision_id rev(i->first);
- hexenc ros(i->second);
+ roster_id ros(i->second);
std::map::const_iterator j
= checked_revisions.find(rev);
if (j == checked_revisions.end() || (!j->second.found))
++unreferenced_roster_links;
- std::map, checked_roster>::const_iterator k
+ std::map::const_iterator k
= checked_rosters.find(ros);
if (k == checked_rosters.end() || (!k->second.found))
++missing_rosters;
@@ -320,7 +320,7 @@
static void
check_revisions(app_state & app,
std::map & checked_revisions,
- std::map, checked_roster> & checked_rosters,
+ std::map & checked_rosters,
std::set const & found_manifests)
{
std::set revisions;
@@ -362,17 +362,17 @@
// roster checks
if (app.db.roster_link_exists_for_revision(*i))
{
- hexenc roster_id;
+ roster_id ros_id;
checked_revisions[*i].found_roster_link = true;
- app.db.get_roster_id_for_revision(*i, roster_id);
+ app.db.get_roster_id_for_revision(*i, ros_id);
if (app.db.roster_exists_for_revision(*i))
{
checked_revisions[*i].found_roster = true;
- I(checked_rosters[roster_id].found);
- checked_rosters[roster_id].revision_refs++;
- if (!(rev.new_manifest == checked_rosters[roster_id].man_id))
+ I(checked_rosters[ros_id].found);
+ checked_rosters[ros_id].revision_refs++;
+ if (!(rev.new_manifest == checked_rosters[ros_id].man_id))
checked_revisions[*i].manifest_mismatch = true;
- if (checked_rosters[roster_id].missing_files > 0)
+ if (checked_rosters[ros_id].missing_files > 0)
checked_revisions[*i].incomplete_roster = true;
}
}
@@ -537,13 +537,13 @@
}
static void
-report_rosters(std::map, checked_roster> const & checked_rosters,
+report_rosters(std::map const & checked_rosters,
size_t & unreferenced_rosters,
size_t & incomplete_rosters,
size_t & non_parseable_rosters,
size_t & non_normalized_rosters)
{
- for (std::map, checked_roster>::const_iterator
+ for (std::map::const_iterator
i = checked_rosters.begin(); i != checked_rosters.end(); ++i)
{
checked_roster roster = i->second;
@@ -788,7 +788,7 @@
{
std::map checked_files;
std::set found_manifests;
- std::map, checked_roster> checked_rosters;
+ std::map checked_rosters;
std::map checked_revisions;
std::map checked_keys;
============================================================
--- transforms.cc 079c3479e99dda5711ca148a67c93f756641b0d1
+++ transforms.cc 3ccf0649c918465fe7169c823a2fc9e912488b9a
@@ -235,14 +235,24 @@
ident = tmp;
}
-void calculate_ident(revision_data const & dat,
- revision_id & ident)
+void
+calculate_ident(revision_data const & dat,
+ revision_id & ident)
{
hexenc tmp;
calculate_ident(dat.inner(), tmp);
ident = tmp;
}
+void
+calculate_ident(data const & dat,
+ roster_id & ident)
+{
+ hexenc tmp;
+ calculate_ident(dat, tmp);
+ ident = tmp;
+}
+
string
canonical_base64(string const & s)
{
============================================================
--- transforms.hh 72398b1a08314a36352c7216fff9f6e2c00f74b3
+++ transforms.hh 231599114d9ce5980f63ef0acb0605d836f4c0e6
@@ -119,6 +119,9 @@
void calculate_ident(revision_data const & dat,
revision_id & ident);
+void calculate_ident(data const & dat,
+ roster_id & ident);
+
// canonicalize base64 encoding
std::string canonical_base64(std::string const & s);
============================================================
--- vocab.cc b7870ee35e2b5b4054a732e344d9cb9fbbaa22c2
+++ vocab.cc ec4c04c67d063fa7beb7b7821411f56099588d9a
@@ -208,6 +208,9 @@
void dump(revision_id const & r, std::string &);
template
+void dump(roster_id const & r, std::string &);
+
+template
void dump(manifest_id const & r, std::string &);
template
============================================================
--- vocab.hh 9a7c6c4699b65e563bc0fb7d8e557139283bbb5b
+++ vocab.hh 9bc5a9930e2e19e73317788cd7f5142d99adb60f
@@ -74,6 +74,7 @@
// about the stuff in vocab_terms.hh
typedef revision< hexenc > revision_id;
+typedef roster< hexenc > roster_id;
typedef manifest< hexenc > manifest_id;
typedef file< hexenc > file_id;
typedef key< hexenc > key_id;
============================================================
--- vocab_terms.hh 346786c6c93907481a5c0691b3d60811827df9a3
+++ vocab_terms.hh fa88ad4f49972bed8d1e5f02bdeb23f5031f3de0
@@ -43,6 +43,7 @@
ATOMIC_NOVERIFY(attr_value);
DECORATE(revision); // thing associated with a revision
+DECORATE(roster); // thing associated with a roster
DECORATE(manifest); // thing associated with a manifest
DECORATE(file); // thing associated with a file
DECORATE(key); // thing associated with a key
@@ -60,6 +61,7 @@
EXTERN template class hexenc;
EXTERN template class revision< hexenc >;
+EXTERN template class roster< hexenc >;
EXTERN template class manifest< hexenc >;
EXTERN template class file< hexenc >;
EXTERN template class key< hexenc >;
@@ -103,6 +105,7 @@
EXTERN template std::ostream & operator<< <>(std::ostream &, hexenc const &);
EXTERN template std::ostream & operator<< <>(std::ostream &, revision< hexenc > const &);
+EXTERN template std::ostream & operator<< <>(std::ostream &, roster< hexenc > const &);
EXTERN template std::ostream & operator<< <>(std::ostream &, manifest< hexenc > const &);
EXTERN template std::ostream & operator<< <>(std::ostream &, file< hexenc > const &);
EXTERN template std::ostream & operator<< <>(std::ostream &, epoch< hexenc > const &);