chiark / gitweb /
DESIGN: unwanted dependency removal - algorithm fix
[topbloke.git] / DESIGN
diff --git a/DESIGN b/DESIGN
index 0d5215ff78431c0cc0a1b9b69000e6785ece8396..09cea32e66551b45d24848671b94e2251662db94 100644 (file)
--- a/DESIGN
+++ b/DESIGN
@@ -40,6 +40,9 @@ Basic update algorithm:
             stops us looking into the hitory of non-topbloke-controlled
             branches).  This can be done with git-rev-list
             --remove-empty.
+         * It also stops at any point where we meet a commit which
+           does have the dep in the actual included deps.  We have
+           to do this by hand.
           * The the relevant unwanted removal commit for that dep is
             the most recent unwanted removal commit, as defined.
        Select the unwantedly removed dep whose relevant unwanted
@@ -242,3 +245,35 @@ Strategies for each metadata file merge:
  +included     BT      list merge        rm from non-tb src    list merge
  +*-           ??      textual merge     rm from non-tb src    textual merge
  *[^-]         ??      die, aborting all ops, if found in any tb src or branch
+
+
+
+
+
+Unwanted removal search subgraphs:
+
+  rm           relevant removal
+  inc
+
+   rm          impossible to undo removal, arrgh, terminates search
+inc  inc..
+/  ???   \
+
+   rm          
+inc..  rm..    merge of a removal, search down the rm path
+/  [inc]  \
+
+  inc          ??? call it an inclusion, terminate the search
+  rm
+
+  inc          merge of an inclusion, terminates search
+inc..  rm..
+/  [rm]  \
+
+  inc          ??? call it an inclusion, terminate search
+rm..  rm..
+/  ???    \
+  
+
+  rm   inc       inc          rm       irrelevant
+  rm   inc     inc inc..    rm rm..