# # # patch "NEWS" # from [39a251e80052ecd90aaed83ba3590b6fc85048c0] # to [715dfe86e812d3616003febea70229560b404b47] # # patch "cmd_diff_log.cc" # from [514fdfadc25f734f33896ad77d3fde5e8b902296] # to [ae12eeb3a45e71141ad911525b3ef7762cf34cd0] # ============================================================ --- NEWS 39a251e80052ecd90aaed83ba3590b6fc85048c0 +++ NEWS 715dfe86e812d3616003febea70229560b404b47 @@ -94,6 +94,14 @@ Xxx Xxx 99 99:99:99 UTC 2010 to write out _MTN/options on --dry-run (fixes monotone bug #30225) + - monotone does no longer warn about missing implicit includes + when dealing with restricted file sets + (fixes monotone bug #30291) + + - A regression in 0.48 made a path-restricted `mtn log' show + revisions, in which not the picked path(s), but one of its parents + were changed. This has been fixed. + - `mtn trusted` will no longer accept single bogus revision ids, but instead validates if the given revision really exists in the current database. ============================================================ --- cmd_diff_log.cc 514fdfadc25f734f33896ad77d3fde5e8b902296 +++ cmd_diff_log.cc ae12eeb3a45e71141ad911525b3ef7762cf34cd0 @@ -677,7 +677,13 @@ CMD(log, "log", "", CMD_REF(informative) L(FL("%d selected revisions") % selected_revs.size()); + // the first restriction mask only includes the actual selected nodes + // of the user, so he doesn't get revisions reported in which not the + // selected node, but only one of its parents changed + // the second restriction mask includes the parent nodes implicitely, + // so we can use it to make a restricted roster with it later on node_restriction mask; + node_restriction mask_diff; if (!args.empty() || !app.opts.exclude_patterns.empty()) { @@ -697,6 +703,14 @@ CMD(log, "log", "", CMD_REF(informative) app.opts.depth, parents, new_roster, ignored_file(work), restriction::explicit_includes); + if (app.opts.diffs) + { + mask_diff = node_restriction(args_to_paths(args), + args_to_paths(app.opts.exclude_patterns), + app.opts.depth, parents, new_roster, + ignored_file(work), + restriction::implicit_includes); + } } else { @@ -711,6 +725,15 @@ CMD(log, "log", "", CMD_REF(informative) app.opts.depth, roster, path_always_false(), restriction::explicit_includes); + + if (app.opts.diffs) + { + mask_diff = node_restriction(args_to_paths(args), + args_to_paths(app.opts.exclude_patterns), + app.opts.depth, roster, + path_always_false(), + restriction::explicit_includes); + } } } @@ -900,7 +923,7 @@ CMD(log, "log", "", CMD_REF(informative) // always show forward diffs from the parent roster to // the current roster regardless of the log direction make_restricted_roster(parent_roster, current_roster, - restricted_roster, mask); + restricted_roster, mask_diff); dump_diffs(app.lua, db, parent_roster, restricted_roster, out, app.opts.diff_format,