#
#
# patch "ChangeLog"
# from [df1ae231ae8e6ecdb49adbd4bb67ae28746d931b]
# to [81e3045140bcbf832f6fe43481c287b7343f50a8]
#
# patch "automate.cc"
# from [f3dbb30624320cf769d823040cf8732940b7cb71]
# to [8aa16555b3ed2bbd87bbdb395a2d23a790803f19]
#
# patch "cmd_merging.cc"
# from [89dc71c64b5a9ece8bb5f98faa43c0c83745b07b]
# to [8cb9a727c46da071534f510458de386f45b2c092]
#
# patch "database.cc"
# from [8a18b697ea6dfa42979560ef2023429615fec9d6]
# to [e185a4b7db7def9d9c5ddb0b1bc9f883d623220b]
#
# patch "database.hh"
# from [da379322125c5ca6f8b1ab7e95e9b39d10bdf896]
# to [66618c65676ce4af4ca52ade55cd6f2af8ea11e8]
#
# patch "database_check.cc"
# from [cc6c8ece1194a534ba856ef17bc56ebb31b8458a]
# to [91784581512b6a22dba4959fd46076f8ac2d18b6]
#
# patch "roster.cc"
# from [7fcb961614cdf6ae31327fd80ac9f25648fee6bd]
# to [5955f1339c8276c1ad2964abf5051b7d9cb13890]
#
# patch "roster.hh"
# from [48f810e272158afce673d31d45766bfaf42bea6e]
# to [03aeb703100a85fcf944af1e9f6b2a2ff64e44eb]
#
# patch "transforms.cc"
# from [3ccf0649c918465fe7169c823a2fc9e912488b9a]
# to [37f28648e9933556c9262e822c3a4e40e0425467]
#
# patch "transforms.hh"
# from [231599114d9ce5980f63ef0acb0605d836f4c0e6]
# to [1bbcd45fc8139263719006c25e13eeb76046f95d]
#
# patch "vocab.cc"
# from [ec4c04c67d063fa7beb7b7821411f56099588d9a]
# to [734ef82435e130f3ba3674573a142a8a980de91c]
#
# patch "vocab.hh"
# from [9bc5a9930e2e19e73317788cd7f5142d99adb60f]
# to [ddda58d45f872418855170d5d7e47872ffb239ce]
#
# patch "vocab_terms.hh"
# from [fa88ad4f49972bed8d1e5f02bdeb23f5031f3de0]
# to [5442a9adf37051de74795ca8d6f5b25ed92ab301]
#
============================================================
--- ChangeLog df1ae231ae8e6ecdb49adbd4bb67ae28746d931b
+++ ChangeLog 81e3045140bcbf832f6fe43481c287b7343f50a8
@@ -1,3 +1,23 @@
+2006-05-26 Derek Scherger
+
+ * automate.cc (automate_get_manifest_of, automate_get_file):
+ * cmd_merging.cc (get_roster): use roster_data instead of generic
+ data
+ * database.{cc,hh} (get_roster): rename to ...
+ (get_roster_version): ... this and move to a better spot
+ (put_roster): use roster_data
+ * database_check.cc (check_rosters_manifest,
+ check_rosters_marking): use roster_data
+ * roster.{cc,hh} (read_roster_and_marking,
+ write_roster_and_marking, write_manifest_of_roster,
+ calculate_ident, do_testing_on_one_roster, tests_on_two_rosters,
+ write_roster_test):
+ * transforms.{cc,hh} (calculate_ident): use roster_data
+ * vocab.cc: add dump template for roster_data
+ * vocab.hh: add roster_data typedef
+ * vocab_terms.hh: instantiate roster_data template, add
+ roster_data operator<<
+
2006-05-25 Matthew Gregan
* cmd_merging.cc (CMD(update)): Report branch switch after
============================================================
--- automate.cc f3dbb30624320cf769d823040cf8732940b7cb71
+++ automate.cc 8aa16555b3ed2bbd87bbdb395a2d23a790803f19
@@ -1118,7 +1118,7 @@
if (args.size() > 1)
throw usage(help_name);
- data dat;
+ roster_data dat;
manifest_id mid;
roster_t old_roster, new_roster;
temp_node_id_source nis;
@@ -1142,7 +1142,7 @@
calculate_ident(new_roster, mid);
write_manifest_of_roster(new_roster, dat);
L(FL("dumping manifest %s\n") % mid);
- output.write(dat().data(), dat().size());
+ output.write(dat.inner()().data(), dat.inner()().size());
}
============================================================
--- cmd_merging.cc 89dc71c64b5a9ece8bb5f98faa43c0c83745b07b
+++ cmd_merging.cc 8cb9a727c46da071534f510458de386f45b2c092
@@ -606,7 +606,7 @@
marking_map mm;
app.db.get_roster(rid, roster, mm);
- data dat;
+ roster_data dat;
write_roster_and_marking(roster, mm, dat);
cout << dat;
}
============================================================
--- database.cc 8a18b697ea6dfa42979560ef2023429615fec9d6
+++ database.cc e185a4b7db7def9d9c5ddb0b1bc9f883d623220b
@@ -1468,6 +1468,15 @@
}
void
+database::get_roster_version(roster_id const & id,
+ roster_data & dat)
+{
+ data tmp;
+ get_version(id.inner(), tmp, "rosters", "roster_deltas");
+ dat = tmp;
+}
+
+void
database::put_file(file_id const & id,
file_data const & dat)
{
@@ -2747,17 +2756,6 @@
get_roster(rev_id, roster, mm);
}
-void
-database::get_roster(roster_id const & ros_id,
- data & dat)
-{
- string data_table = "rosters";
- string delta_table = "roster_deltas";
-
- get_version(ros_id.inner(), dat, data_table, delta_table);
-}
-
-
static LRUCache > >
rcache(constants::db_roster_cache_sz);
@@ -2782,11 +2780,11 @@
return;
}
- data dat;
+ roster_data dat;
roster_id ident;
get_roster_id_for_revision(rev_id, ident);
- get_roster(ident, dat);
+ get_roster_version(ident, dat);
read_roster_and_marking(dat, roster, marks);
sp = boost::shared_ptr >
(new pair(roster, marks));
@@ -2800,7 +2798,7 @@
marking_map & marks)
{
MM(rev_id);
- data old_data, new_data;
+ roster_data old_data, new_data;
delta reverse_delta;
roster_id old_id, new_id;
@@ -2837,7 +2835,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.inner(), new_data);
+ schedule_write(data_table, new_id.inner(), new_data.inner());
std::set parents;
get_revision_parents(rev_id, parents);
@@ -2853,8 +2851,8 @@
get_roster_id_for_revision(old_rev, old_id);
if (exists(new_id.inner(), data_table))
{
- get_version(old_id.inner(), old_data, data_table, delta_table);
- diff(new_data, old_data, reverse_delta);
+ get_roster_version(old_id, old_data);
+ diff(new_data.inner(), old_data.inner(), reverse_delta);
if (have_pending_write(data_table, old_id.inner()))
cancel_pending_write(data_table, old_id.inner());
else
============================================================
--- database.hh da379322125c5ca6f8b1ab7e95e9b39d10bdf896
+++ database.hh 66618c65676ce4af4ca52ade55cd6f2af8ea11e8
@@ -405,8 +405,8 @@
roster_t & roster,
marking_map & marks);
- void get_roster(roster_id const & ros_id,
- data & dat);
+ void get_roster_version(roster_id const & ros_id,
+ roster_data & dat);
void get_uncommon_ancestors(revision_id const & a,
revision_id const & b,
============================================================
--- database_check.cc cc6c8ece1194a534ba856ef17bc56ebb31b8458a
+++ database_check.cc 91784581512b6a22dba4959fd46076f8ac2d18b6
@@ -170,8 +170,8 @@
{
L(FL("checking roster %s\n") % *i);
- data dat;
- app.db.get_roster(*i, dat);
+ roster_data dat;
+ app.db.get_roster_version(*i, dat);
checked_rosters[*i].found = true;
roster_t ros;
@@ -191,7 +191,7 @@
// normalisation check
{
roster_id norm_ident;
- data norm_data;
+ roster_data norm_data;
write_roster_and_marking(ros, mm, norm_data);
calculate_ident(norm_data, norm_ident);
if (norm_ident == *i)
@@ -240,8 +240,8 @@
if (!i->second.parseable)
continue;
- data dat;
- app.db.get_roster(ros_id, dat);
+ roster_data dat;
+ app.db.get_roster_version(ros_id, dat);
roster_t ros;
marking_map mm;
============================================================
--- roster.cc 7fcb961614cdf6ae31327fd80ac9f25648fee6bd
+++ roster.cc 5955f1339c8276c1ad2964abf5051b7d9cb13890
@@ -2553,11 +2553,11 @@
void
-read_roster_and_marking(data const & dat,
+read_roster_and_marking(roster_data const & dat,
roster_t & ros,
marking_map & mm)
{
- basic_io::input_source src(dat(), "roster");
+ basic_io::input_source src(dat.inner()(), "roster");
basic_io::tokenizer tok(src);
basic_io::parser pars(tok);
ros.parse_from(pars, mm);
@@ -2569,7 +2569,7 @@
static void
write_roster_and_marking(roster_t const & ros,
marking_map const & mm,
- data & dat,
+ roster_data & dat,
bool print_local_parts)
{
if (print_local_parts)
@@ -2578,14 +2578,14 @@
ros.check_sane(true);
basic_io::printer pr;
ros.print_to(pr, mm, print_local_parts);
- dat = data(pr.buf);
+ dat = roster_data(pr.buf);
}
void
write_roster_and_marking(roster_t const & ros,
marking_map const & mm,
- data & dat)
+ roster_data & dat)
{
write_roster_and_marking(ros, mm, dat, true);
}
@@ -2593,7 +2593,7 @@
void
write_manifest_of_roster(roster_t const & ros,
- data & dat)
+ roster_data & dat)
{
marking_map mm;
write_roster_and_marking(ros, mm, dat, false);
@@ -2602,17 +2602,16 @@
void calculate_ident(roster_t const & ros,
manifest_id & ident)
{
- data tmp;
- hexenc tid;
+ roster_data tmp;
+ roster_id tid;
if (!ros.all_nodes().empty())
{
write_manifest_of_roster(ros, tmp);
calculate_ident(tmp, tid);
}
- ident = tid;
+ ident = tid.inner();
}
-
////////////////////////////////////////////////////////////////////
// testing
////////////////////////////////////////////////////////////////////
@@ -2667,7 +2666,7 @@
I(n == dfs_counted);
// do a read/write spin
- data r_dat; MM(r_dat);
+ roster_data r_dat; MM(r_dat);
marking_map fm;
make_fake_marking_for(r, fm);
write_roster_and_marking(r, fm, r_dat);
@@ -2676,7 +2675,7 @@
read_roster_and_marking(r_dat, r2, fm2);
I(r == r2);
I(fm == fm2);
- data r2_dat; MM(r2_dat);
+ roster_data r2_dat; MM(r2_dat);
write_roster_and_marking(r2, fm2, r2_dat);
I(r_dat == r2_dat);
}
@@ -2774,10 +2773,10 @@
// will have new ids assigned.
// But they _will_ have the same manifests, assuming things are working
// correctly.
- data a_dat; MM(a_dat);
- data a2_dat; MM(a2_dat);
- data b_dat; MM(b_dat);
- data b2_dat; MM(b2_dat);
+ roster_data a_dat; MM(a_dat);
+ roster_data a2_dat; MM(a2_dat);
+ roster_data b_dat; MM(b_dat);
+ roster_data b2_dat; MM(b2_dat);
if (a.has_root())
write_manifest_of_roster(a, a_dat);
if (a2.has_root())
@@ -4364,28 +4363,29 @@
{
// manifest first
- data mdat; MM(mdat);
+ roster_data mdat; MM(mdat);
write_manifest_of_roster(r, mdat);
- data expected("format_version \"1\"\n"
- "\n"
- "dir \"\"\n"
- "\n"
- "dir \"fo\"\n"
- "\n"
- "dir \"foo\"\n"
- "\n"
- "dir \"foo/ang\"\n"
- "\n"
- " file \"foo/bar\"\n"
- "content [1111111111111111111111111111111111111111]\n"
- " attr \"fascist\" \"tidiness\"\n"
- "\n"
- "dir \"foo/zoo\"\n"
- "\n"
- " dir \"xx\"\n"
- "attr \"say\" \"hello\"\n"
- );
+ roster_data
+ expected(string("format_version \"1\"\n"
+ "\n"
+ "dir \"\"\n"
+ "\n"
+ "dir \"fo\"\n"
+ "\n"
+ "dir \"foo\"\n"
+ "\n"
+ "dir \"foo/ang\"\n"
+ "\n"
+ " file \"foo/bar\"\n"
+ "content [1111111111111111111111111111111111111111]\n"
+ " attr \"fascist\" \"tidiness\"\n"
+ "\n"
+ "dir \"foo/zoo\"\n"
+ "\n"
+ " dir \"xx\"\n"
+ "attr \"say\" \"hello\"\n"
+ ));
MM(expected);
BOOST_CHECK_NOT_THROW( I(expected == mdat), std::logic_error);
@@ -4393,56 +4393,57 @@
{
// full roster with local parts
- data rdat; MM(rdat);
+ roster_data rdat; MM(rdat);
write_roster_and_marking(r, mm, rdat);
// node_id order is a hassle.
// root 1, foo 2, xx 3, fo 4, foo_bar 5, foo_ang 6, foo_zoo 7
- data expected("format_version \"1\"\n"
- "\n"
- " dir \"\"\n"
- " ident \"1\"\n"
- " birth [1234123412341234123412341234123412341234]\n"
- "path_mark [1234123412341234123412341234123412341234]\n"
- "\n"
- " dir \"fo\"\n"
- " ident \"4\"\n"
- " birth [1234123412341234123412341234123412341234]\n"
- "path_mark [1234123412341234123412341234123412341234]\n"
- "\n"
- " dir \"foo\"\n"
- " ident \"2\"\n"
- " birth [1234123412341234123412341234123412341234]\n"
- "path_mark [1234123412341234123412341234123412341234]\n"
- "\n"
- " dir \"foo/ang\"\n"
- " ident \"6\"\n"
- " birth [1234123412341234123412341234123412341234]\n"
- "path_mark [1234123412341234123412341234123412341234]\n"
- "\n"
- " file \"foo/bar\"\n"
- " content [1111111111111111111111111111111111111111]\n"
- " ident \"5\"\n"
- " attr \"fascist\" \"tidiness\"\n"
- " birth [1234123412341234123412341234123412341234]\n"
- " path_mark [1234123412341234123412341234123412341234]\n"
- "content_mark [1234123412341234123412341234123412341234]\n"
- " attr_mark \"fascist\" [1234123412341234123412341234123412341234]\n"
- "\n"
- " dir \"foo/zoo\"\n"
- " ident \"7\"\n"
- "dormant_attr \"regime\"\n"
- " birth [1234123412341234123412341234123412341234]\n"
- " path_mark [1234123412341234123412341234123412341234]\n"
- " attr_mark \"regime\" [1234123412341234123412341234123412341234]\n"
- "\n"
- " dir \"xx\"\n"
- " ident \"3\"\n"
- " attr \"say\" \"hello\"\n"
- " birth [1234123412341234123412341234123412341234]\n"
- "path_mark [1234123412341234123412341234123412341234]\n"
- "attr_mark \"say\" [1234123412341234123412341234123412341234]\n"
- );
+ roster_data
+ expected(string("format_version \"1\"\n"
+ "\n"
+ " dir \"\"\n"
+ " ident \"1\"\n"
+ " birth [1234123412341234123412341234123412341234]\n"
+ "path_mark [1234123412341234123412341234123412341234]\n"
+ "\n"
+ " dir \"fo\"\n"
+ " ident \"4\"\n"
+ " birth [1234123412341234123412341234123412341234]\n"
+ "path_mark [1234123412341234123412341234123412341234]\n"
+ "\n"
+ " dir \"foo\"\n"
+ " ident \"2\"\n"
+ " birth [1234123412341234123412341234123412341234]\n"
+ "path_mark [1234123412341234123412341234123412341234]\n"
+ "\n"
+ " dir \"foo/ang\"\n"
+ " ident \"6\"\n"
+ " birth [1234123412341234123412341234123412341234]\n"
+ "path_mark [1234123412341234123412341234123412341234]\n"
+ "\n"
+ " file \"foo/bar\"\n"
+ " content [1111111111111111111111111111111111111111]\n"
+ " ident \"5\"\n"
+ " attr \"fascist\" \"tidiness\"\n"
+ " birth [1234123412341234123412341234123412341234]\n"
+ " path_mark [1234123412341234123412341234123412341234]\n"
+ "content_mark [1234123412341234123412341234123412341234]\n"
+ " attr_mark \"fascist\" [1234123412341234123412341234123412341234]\n"
+ "\n"
+ " dir \"foo/zoo\"\n"
+ " ident \"7\"\n"
+ "dormant_attr \"regime\"\n"
+ " birth [1234123412341234123412341234123412341234]\n"
+ " path_mark [1234123412341234123412341234123412341234]\n"
+ " attr_mark \"regime\" [1234123412341234123412341234123412341234]\n"
+ "\n"
+ " dir \"xx\"\n"
+ " ident \"3\"\n"
+ " attr \"say\" \"hello\"\n"
+ " birth [1234123412341234123412341234123412341234]\n"
+ "path_mark [1234123412341234123412341234123412341234]\n"
+ "attr_mark \"say\" [1234123412341234123412341234123412341234]\n"
+ ));
MM(expected);
BOOST_CHECK_NOT_THROW( I(expected == rdat), std::logic_error);
============================================================
--- roster.hh 48f810e272158afce673d31d45766bfaf42bea6e
+++ roster.hh 03aeb703100a85fcf944af1e9f6b2a2ff64e44eb
@@ -387,19 +387,20 @@
app_state & app);
void
-read_roster_and_marking(data const & dat,
+read_roster_and_marking(roster_data const & dat,
roster_t & ros,
marking_map & mm);
void
write_roster_and_marking(roster_t const & ros,
marking_map const & mm,
- data & dat);
+ roster_data & dat);
void
write_manifest_of_roster(roster_t const & ros,
- data & dat);
+ roster_data & dat);
+
void calculate_ident(roster_t const & ros,
manifest_id & ident);
============================================================
--- transforms.cc 3ccf0649c918465fe7169c823a2fc9e912488b9a
+++ transforms.cc 37f28648e9933556c9262e822c3a4e40e0425467
@@ -245,11 +245,11 @@
}
void
-calculate_ident(data const & dat,
+calculate_ident(roster_data const & dat,
roster_id & ident)
{
hexenc tmp;
- calculate_ident(dat, tmp);
+ calculate_ident(dat.inner(), tmp);
ident = tmp;
}
============================================================
--- transforms.hh 231599114d9ce5980f63ef0acb0605d836f4c0e6
+++ transforms.hh 1bbcd45fc8139263719006c25e13eeb76046f95d
@@ -119,7 +119,7 @@
void calculate_ident(revision_data const & dat,
revision_id & ident);
-void calculate_ident(data const & dat,
+void calculate_ident(roster_data const & dat,
roster_id & ident);
// canonicalize base64 encoding
============================================================
--- vocab.cc ec4c04c67d063fa7beb7b7821411f56099588d9a
+++ vocab.cc 734ef82435e130f3ba3674573a142a8a980de91c
@@ -219,6 +219,9 @@
template
void dump(hexenc const & r, std::string &);
+template
+void dump(roster_data const & d, std::string &);
+
// the rest is unit tests
#ifdef BUILD_UNIT_TESTS
============================================================
--- vocab.hh 9bc5a9930e2e19e73317788cd7f5142d99adb60f
+++ vocab.hh ddda58d45f872418855170d5d7e47872ffb239ce
@@ -82,6 +82,7 @@
typedef epoch< hexenc > epoch_data;
typedef revision< data > revision_data;
+typedef roster< data > roster_data;
typedef manifest< data > manifest_data;
typedef file< data > file_data;
============================================================
--- vocab_terms.hh fa88ad4f49972bed8d1e5f02bdeb23f5031f3de0
+++ vocab_terms.hh 5442a9adf37051de74795ca8d6f5b25ed92ab301
@@ -76,6 +76,7 @@
EXTERN template class base64< gzip >;
EXTERN template class revision< data >;
+EXTERN template class roster< data >;
EXTERN template class manifest< data >;
EXTERN template class file< data >;
@@ -110,9 +111,11 @@
EXTERN template std::ostream & operator<< <>(std::ostream &, file< hexenc > const &);
EXTERN template std::ostream & operator<< <>(std::ostream &, epoch< hexenc > const &);
-EXTERN template std::ostream & operator<< <>(std::ostream &, hexenc const &);
+EXTERN template std::ostream & operator<< <>(std::ostream &, hexenc const &);
-EXTERN template std::ostream & operator<< <>(std::ostream &, hexenc const &);
+EXTERN template std::ostream & operator<< <>(std::ostream &, roster const &);
+
+EXTERN template std::ostream & operator<< <>(std::ostream &, hexenc const &);
EXTERN template std::ostream & operator<< <>(std::ostream &, epoch< hexenc > const &);
EXTERN template std::ostream & operator<< <>(std::ostream &, gzip const &);