#
#
# patch "ChangeLog"
# from [003210864a935dfc9f39c045e07ebbfae858b7bc]
# to [0719eadebfa458dc485581a2795d4b03d973df1a]
#
# patch "commands.cc"
# from [64041989e13816d8ab269738b0ab7c4f6b815e6e]
# to [29c43713f565770fd21459ccccfe3144545ff75c]
#
# patch "schema_migration.cc"
# from [e0ca70123a16255c8c258676648fdf7d36161cbb]
# to [a71586b6868e2ce649aa1b09c2a565997035da9c]
#
# patch "tests/t_revert_restrict.at"
# from [65eb2a485e893c21a9043e08e6c62e116cd4571d]
# to [2adc434743c0816d8a34b0b3dd7507da5a37f184]
#
# patch "ui.cc"
# from [f8e554cfd366a72a9d6b1c8b1d9fd1e0c1c29c72]
# to [b88a6344e7fc8bed1ca5b3a7ed0eef9d54015efe]
#
============================================================
--- ChangeLog 003210864a935dfc9f39c045e07ebbfae858b7bc
+++ ChangeLog 0719eadebfa458dc485581a2795d4b03d973df1a
@@ -50,6 +50,27 @@
* HACKING, tests/README: Remove references to use of SEGV for
terminating monotone servers.
+2005-12-13 Timothy Brownawell
+
+ * constants.cc: New netsync is incompatible, bump protocol version.
+ * constants.hh: Change default port to the one IANA assigned us.
+
+2005-12-10 Timothy Brownawell
+
+ * roster.cc (make_roster_for_merge): unshadow the node_id_source
+ argument. Resolve usages to the argument or the local by educated guess.
+
+2005-12-10 Timothy Brownawell
+
+ * paths.{cc,hh}: operator<() for split_path's
+
+2005-12-10 Timothy Brownawell
+
+ * sanity.{cc,hh}: Fix musing dumps so that the header line always gets
+ printed, even if printing the body throws an exception.
+ * database.cc, packet,cc, revision.cc: sprinkle MMs
+ * cset.cc: sanity check print_cset to match parse_cset
+
2005-12-08 Matthew Gregan
* po/pt_BR.po: Add missing newline.
@@ -159,27 +180,6 @@
unit_tests objects, not for libs.
* pch.hh: define __STDC_CONSTANT_MACROS as required for UINT32_C.
-2005-12-13 Timothy Brownawell
-
- * constants.cc: New netsync is incompatible, bump protocol version.
- * constants.hh: Change default port to the one IANA assigned us.
-
-2005-12-10 Timothy Brownawell
-
- * roster.cc (make_roster_for_merge): unshadow the node_id_source
- argument. Resolve usages to the argument or the local by educated guess.
-
-2005-12-10 Timothy Brownawell
-
- * paths.{cc,hh}: operator<() for split_path's
-
-2005-12-10 Timothy Brownawell
-
- * sanity.{cc,hh}: Fix musing dumps so that the header line always gets
- printed, even if printing the body throws an exception.
- * database.cc, packet,cc, revision.cc: sprinkle MMs
- * cset.cc: sanity check print_cset to match parse_cset
-
2005-11-28 Nathaniel Smith
* txt2c.cc (main): Work correctly even on empty files.
============================================================
--- commands.cc 64041989e13816d8ab269738b0ab7c4f6b815e6e
+++ commands.cc 29c43713f565770fd21459ccccfe3144545ff75c
@@ -2538,7 +2538,7 @@
app_state & app,
bool new_is_archived,
diff_type type,
- file_path restrict_file = file_path())
+ set restrict_paths = set())
{
// 60 is somewhat arbitrary, but less than 80
std::string patch_sep = std::string(60, '=');
@@ -2547,6 +2547,10 @@
i = cs.files_added.begin();
i != cs.files_added.end(); ++i)
{
+ if (!restrict_paths.empty()
+ && restrict_paths.find(i->first) == restrict_paths.end())
+ continue;
+
cout << patch_sep << "\n";
data unpacked;
vector lines;
@@ -2595,6 +2599,10 @@
i = cs.deltas_applied.begin();
i != cs.deltas_applied.end(); ++i)
{
+ if (!restrict_paths.empty()
+ && restrict_paths.find(i->first) == restrict_paths.end())
+ continue;
+
file_data f_old;
data data_old, data_new;
vector old_lines, new_lines;
@@ -3241,7 +3249,7 @@
cset work, included_work, excluded_work;
path_set old_paths;
- if (args.size() < 1)
+ if (args.size() < 1 && !app.missing)
throw usage(name);
app.require_working_copy();
@@ -3309,7 +3317,7 @@
continue;
}
- L(F("reverting %s to [%s]\n") % fp % f->content);
+ P(F("reverting %s to [%s]\n") % fp % f->content);
N(app.db.file_version_exists(f->content),
F("no file version %s found in database for %s")
@@ -3626,7 +3634,23 @@
for (edge_map::const_iterator e = rev.edges.begin();
e != rev.edges.end(); ++e)
{
- dump_diffs(edge_changes(e), app, true, unified_diff);
+ // limit to selected nodes
+ set node_names;
+ if (!nodes.empty())
+ {
+ roster_t ros;
+ app.db.get_roster(rid, ros);
+
+ for (set::const_iterator n = nodes.begin();
+ n != nodes.end(); n++)
+ {
+ split_path sp;
+ ros.get_name(*n, sp);
+ node_names.insert(sp);
+ }
+ }
+ dump_diffs(edge_changes(e), app, true, unified_diff,
+ node_names);
}
}
============================================================
--- schema_migration.cc e0ca70123a16255c8c258676648fdf7d36161cbb
+++ schema_migration.cc a71586b6868e2ce649aa1b09c2a565997035da9c
@@ -864,44 +864,44 @@
{
int res;
- res = sqlite3_exec(sql,
- "CREATE TABLE rosters\n"
- "(\n"
- "id primary key, -- strong hash of the roster\n"
- "data not null -- compressed, encoded contents of the roster\n"
- ");",
- NULL, NULL, errmsg);
+ res = logged_sqlite3_exec(sql,
+ "CREATE TABLE rosters\n"
+ "(\n"
+ "id primary key, -- strong hash of the roster\n"
+ "data not null -- compressed, encoded contents of the roster\n"
+ ");",
+ NULL, NULL, errmsg);
if (res != SQLITE_OK)
return false;
- res = sqlite3_exec(sql,
- "CREATE TABLE roster_deltas\n"
- "(\n"
- "id not null, -- strong hash of the roster\n"
- "base not null, -- joins with either rosters.id or roster_deltas.id\n"
- "delta not null, -- rdiff to construct current from base\n"
- "unique(id, base)\n"
- ");",
- NULL, NULL, errmsg);
+ res = logged_sqlite3_exec(sql,
+ "CREATE TABLE roster_deltas\n"
+ "(\n"
+ "id not null, -- strong hash of the roster\n"
+ "base not null, -- joins with either rosters.id or roster_deltas.id\n"
+ "delta not null, -- rdiff to construct current from base\n"
+ "unique(id, base)\n"
+ ");",
+ NULL, NULL, errmsg);
if (res != SQLITE_OK)
return false;
- res = sqlite3_exec(sql,
- "CREATE TABLE revision_roster\n"
- "(\n"
- "rev_id primary key, -- joins with revisions.id\n"
- "roster_id not null -- joins with either rosters.id or roster_deltas.id\n"
- ");",
- NULL, NULL, errmsg);
+ res = logged_sqlite3_exec(sql,
+ "CREATE TABLE revision_roster\n"
+ "(\n"
+ "rev_id primary key, -- joins with revisions.id\n"
+ "roster_id not null -- joins with either rosters.id or roster_deltas.id\n"
+ ");",
+ NULL, NULL, errmsg);
if (res != SQLITE_OK)
return false;
- res = sqlite3_exec(sql,
- "CREATE TABLE next_roster_node_number\n"
- "(\n"
- "node primary key -- only one entry in this table, ever\n"
- ");",
- NULL, NULL, errmsg);
+ res = logged_sqlite3_exec(sql,
+ "CREATE TABLE next_roster_node_number\n"
+ "(\n"
+ "node primary key -- only one entry in this table, ever\n"
+ ");",
+ NULL, NULL, errmsg);
if (res != SQLITE_OK)
return false;
============================================================
--- tests/t_revert_restrict.at 65eb2a485e893c21a9043e08e6c62e116cd4571d
+++ tests/t_revert_restrict.at 2adc434743c0816d8a34b0b3dd7507da5a37f184
@@ -62,7 +62,7 @@
AT_CHECK(cp modified2 file.ignore)
AT_CHECK(rm file2)
-AT_CHECK(MONOTONE --rcfile=ignore_hook.lua revert . --missing --debug, [], [ignore], [ignore])
+AT_CHECK(MONOTONE --rcfile=ignore_hook.lua revert --missing --debug, [], [ignore], [ignore])
AT_CHECK(cmp testfile modified1, [0], [ignore], [ignore])
AT_CHECK(cmp file.ignore modified2, [0], [ignore], [ignore])
@@ -76,7 +76,7 @@
AT_CHECK(cp orig.ignore file.ignore)
AT_CHECK(cp orig2 file2)
-AT_CHECK(MONOTONE --rcfile=ignore_hook.lua revert . --missing --debug, [], [ignore], [ignore])
+AT_CHECK(MONOTONE --rcfile=ignore_hook.lua revert --missing --debug, [], [ignore], [ignore])
AT_CHECK(cmp testfile modified1, [0], [ignore], [ignore])
AT_CHECK(cmp file.ignore orig.ignore, [0], [ignore], [ignore])
============================================================
--- ui.cc f8e554cfd366a72a9d6b1c8b1d9fd1e0c1c29c72
+++ ui.cc b88a6344e7fc8bed1ca5b3a7ed0eef9d54015efe
@@ -172,8 +172,8 @@
write_tickline1 = true;
}
- // Always reissue the counts, with a \r to clear.
- string tickline2 = "\rmonotone: ";
+ // Always reissue the counts.
+ string tickline2 = "monotone: ";
for (size_t i = 0; i < tick_widths.size(); ++i)
{
if (i != 0)