chiark / gitweb /
update some docs for new metadata/theory
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 26 Feb 2012 00:37:33 +0000 (00:37 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 26 Feb 2012 00:37:33 +0000 (00:37 +0000)
BUGS
DESIGN

diff --git a/BUGS b/BUGS
index 0225abf..ec692dd 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -1,11 +1,4 @@
-merge alg needs to check for cyclic dependencies
-
-when creating needs to remove metadata, make a separate commit with no
-metadata to allow us to spot what's happening.  should only do this
-with option to permit it!  Also need to do this when merging.
-
 wibblings:
-       what about strangeness in ancient history wrt merge alg
        topgit import
                topbloke {base,tip} is ff desc of topgit {base,tip}
                 with metadata adjusted
@@ -15,9 +8,6 @@ wibblings:
                 flags
                reject topbloke imports of topgit branches which
                 also contain topbloke metadata
-       need patch name in metadata
-       patch dep metadata syntax unsatisfactory: too twiddly
-       flags metadata unsatisfactory: wants to be valued properties
 
        "checkout" shouldn't do any updates but also want
        "goto" or "push" or "pop" or something which does do updates
diff --git a/DESIGN b/DESIGN
index e4066e4..66252ce 100644 (file)
--- a/DESIGN
+++ b/DESIGN
@@ -96,107 +96,12 @@ Strategies for each metadata file merge:
        in base/tip     same patch & branch     dep -> base     base -> tip
 
  msg            T      textual merge           rm from src     not in src
+ patch         BT      must be same            rm from src     must be same
+ base           T      compute specially       rm from src     not in src
  deps          B       list merge              rm from src     rm from src
  deleted        T      std existence merge     rm from src     not in src
- patch-                BT      must be same            rm from src     must be same
- topgit-       B       std exist/text merge    rm from src     rm from src
  [^+]*-                ??      textual merge           rm from src     rm from src
  +included     BT      list merge        rm from non-tb src    list merge
+ +ends         BT      compute specially       compute specially
  +*-           ??      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..
-
-
-
-          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. ???
-
-
-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