chiark / gitweb /
Unwanted dep removal search - difficulties
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 8 Feb 2012 18:01:24 +0000 (18:01 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 8 Feb 2012 18:01:24 +0000 (18:01 +0000)
DESIGN

diff --git a/DESIGN b/DESIGN
index 1569517..97f0681 100644 (file)
--- a/DESIGN
+++ b/DESIGN
@@ -280,41 +280,64 @@ rm..  rm..
 
 
 
-                                       proposed                       (elsewhere)
-                              /          \                        |   |
-                            /            \                |   |
-                            /              |                      |   |
-                  REMOVAL rm              |               |   |
-                          |               |               |   |
-                        inc               |               |   |
-                                / |               |               |   |
-                       /  inc             |               |   |
-                      |   | `------------ | ----<-------- | -.|
-                             inc  inc             |               |   *2
-                      |`- | ------------- | ----<--------.|   |
-                      `---inc             |              1*  /
-                          |               |               | /
-               RE-INCLUDE inc             rm REMOVAL      |'
-               \          |              /                |
-                * REMOVAL rm            /                 |
-                                  |           inc                 |
-                          inc         /                   |
-                          |          /                    |
-                          inc       /                     |
-                          |        /`--------<-----------.|
-                          inc     /                       |
-                          |      /                        |
-               RE-INCLUDE inc   /                         |
-                       \          |    /                          |
-                * REMOVAL rm  /                           |
-                           |  /                                   |
-                           inc                                    |
-                             \                            |
-                              `------------<-------------.|
-                                                          |
-                                                          |
-                                                         IT
+          OUR BASE              SOURCE                OUR IT TIP
+               |                  |                       |
+               |                  |                       |
+   ADD DEP WH/ inc                rm                      |
+    NEEDS IT   /|                 /\                      |
+             / |                rm  \                     |
+            /  | ______________'/    \                    |
+         inc   |'              /      \                   |     IT tip
+           /   inc     REMOVAL rm       \                         |    elsewhere
+          /     |             /          \                        |   |   |
+        /      |           inc           \                |   |   |
+     some IT    |           /              |                      |   |   |
+                |         inc              |                      |   |   |
+               /           |               |                      |   |   |
+              /          inc               |                      |   |   |
+             |           / |               |                      |   |   |
+           /           /  inc             |               |   |   |
+          /           |   | `------------ | ----<-------- | -.|   |
+                 /           inc  inc             |               |   *2  |
+         |            |`- | ------------- | ----<--------.|   |   |
+         |            `---inc             |              1*  /    |
+         |                |               |               | /     |
+         |     RE-INCLUDE inc             rm REMOVAL      |'      |
+        inc     \          |               |                      |       |
+         |      * REMOVAL rm              |               |       |
+                 |                |              /                |       |
+                 |`-------------- | ----------. /                 |       |
+                 |                |           inc ANC2            |       |
+        inc               inc         /                   |       |
+         |`.____________  |          /                    |       |
+         |              `inc ANC1   /                     |       |
+         |                |        /`--------<----------- | ---.  |
+       without            inc     /                       |     \/
+         |                |      /                        |     /
+          \    RE-INCLUDE inc   /                         |    /
+                   \   \          |    /                          |   /
+            \   * REMOVAL rm  /                           |  /
+              \            |  /                                   | /
+               \           inc FIRST ADD DEP                      |/
+               \          |  \                            *3
+                \         |   `------------<-------------.|
+                         \        |                               |
+                  \       without                         |
+                   \_____ |                               |
+                         `without                         |
+                          |                               |
+                                                         IT
 
 
   Merge 1* and 2*, diff against some relevant base branch commit
-  or something, and apply to proposed.
+  or something, and apply to proposed. ???
+
+
+After we are done:
+  source tip is included in our base
+
+Each time:
+  * pick common ancestor
+  * compute whether merge from common anc would unwantedly remove
+  * if so we arrange that the common anc is a "rm" but our branch
+    actually contains IT