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 0225abf6da51bd3ed9dca04dd50e11cbc391dbd3..ec692dd0425ff92e6ea9e110bb09f57c43bdad1e 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:
 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
        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
                 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
 
        "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 e4066e4a8143a5320557e5b2a3941e82af0c4ef0..66252ceafed5073102f9118622b726f7f838af0d 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
        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
  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
  [^+]*-                ??      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
  +*-           ??      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