Rev 2789: (Vincent Ladeuil) Performance analysis of missing in file:///home/pqm/archives/thelove/bzr/%2Btrunk/ Patch Queue Manager pqm at
Mon Sep 3 12:09:24 BST 2007

At file:///home/pqm/archives/thelove/bzr/%2Btrunk/

revno: 2789
revision-id: pqm at
parent: pqm at
parent: bialix at
committer: Patch Queue Manager <pqm at>
branch nick: +trunk
timestamp: Mon 2007-09-03 12:09:23 +0100
  (Vincent Ladeuil) Performance analysis of missing
  doc/developers/missing.txt     missing.txt-20070718093412-eqjvfwo0oacov5sn-1
  doc/developers/performance-roadmap.txt performanceroadmap.t-20070507174912-mwv3xv517cs4sisd-2
    revno: 2778.5.1
    merged: bialix at
    parent: pqm at
    parent: v.ladeuil+lp at
    committer: Alexander Belchenko <bialix at>
    branch nick: vila
    timestamp: Mon 2007-09-03 12:10:13 +0300
      merge with
    revno: 2625.10.1
    merged: v.ladeuil+lp at
    parent: pqm at
    committer: Vincent Ladeuil <v.ladeuil+lp at>
    branch nick: missing.spec
    timestamp: Wed 2007-07-18 11:43:41 +0200
      Add performance analysis of missing.
=== added file 'doc/developers/missing.txt'
--- a/doc/developers/missing.txt	1970-01-01 00:00:00 +0000
+++ b/doc/developers/missing.txt	2007-07-18 09:43:41 +0000
@@ -0,0 +1,27 @@
+Missing is used to find out the differences between the current branch and
+another branch.
+The performance analysis itself brings no further points than the
+incremental-push-pull one.
+More importantly, the UI have been considered not optimal: missing finds and
+displays the differences between two branches, presenting the revisions that
+are not common to both branches as two sets:
+* the revisions that are present only in the current branch,
+* the revisions that are present only in the other branch.
+A quick and dirty survey indicates that most of the users are interested in
+only one set of revisions at a time.
+From a performance point of view, it may be more appropriate to calculate only
+the set the user is asking for.
+It has been proposed that the missing command be deprecated in favor of a
+--dry-run option for the push, pull, merge commands.
+In the mean time, the missing command stays interesting as it provides an easy
+way to test, measure and optimize graph differences processing.

=== modified file 'doc/developers/performance-roadmap.txt'
--- a/doc/developers/performance-roadmap.txt	2007-07-31 03:38:18 +0000
+++ b/doc/developers/performance-roadmap.txt	2007-09-03 09:10:13 +0000
@@ -54,6 +54,8 @@
 .. include:: uncommit.txt
+.. include:: missing.txt
 Subsystem designs

=== modified file 'doc/developers/'
--- a/doc/developers/	2007-07-17 00:27:16 +0000
+++ b/doc/developers/	2007-07-18 09:43:41 +0000
@@ -10,6 +10,7 @@
   commit_analysis[label="Work required analysis for commit"];
   fetch_analysis[label="Work required analysis for push/pull"];
   gc_analysis[label="Work required analysis for gc"];
+  missing_analysis[label="Work required analysis for missing"];
   revert_analysis[label="Work required analysis for revert"];
   revert_path_analysis[label="Work required analysis for revert of selected paths"];
   status_analysis[label="Work required analysis for status"];
@@ -24,7 +25,6 @@
   log_path_analysis[label="Work required analysis for log of selected paths."];
   diff_path_analysis[label="Work required analysis for diff of selected paths"];
   merge_analysis[label="Work required analysis for merge"];
-  missing_analysis[label="Work required analysis for missing"];
   update_analysis[label="Work required analysis for update"];
   cbranch_analysis[label="Work required analysis for cbranch"];
@@ -54,7 +54,7 @@
   xdelta_imp[label="Xdelta implementation\n1 week"];
   q_splitting[label="Question radix directory splitting\n2 weeks"];
   i_splitting[label="Inventory storage changed to answer what-changed quickly\n6-8 weeks"]
-  per_file_graph[label="Provide an API for per-file graph data rather than physical storage coupled knits api.\n1 days"];
+  per_file_graph[label="Provide an API for per-file\n graph data rather than\n physical storage coupled knits api.\n1 days"];
   deprecate_versionedfile_api[label="Deprecate the public API for access to physical knit storage."];
   anno_cache[label="Annotations become a cache:\n logically separate data\n2 weeks"]
   anno_regen[label="Annotation regeneration\n"];
@@ -118,6 +118,7 @@
   merge_analysis -> merge_api_stack -> iter_merge -> i_splitting;
   merge_api_stack -> memory_copies;
   missing_analysis -> missing_api_stack -> repository_stacking;
+ missing_api_stack -> graph_api;
   new_container -> pack_repository;
   pack_repository -> xdelta_imp;
   pack_repository -> repo_disk_order;

More information about the bazaar-commits mailing list