chiark / gitweb /
metadata merging plan
[topbloke.git] / DESIGN
diff --git a/DESIGN b/DESIGN
index 036cbec757ab4ee966798c1fd2ffb9cc36b001fc..a3e5c978d6f3be441bdb38b92bbe104b36bcbb2d 100644 (file)
--- a/DESIGN
+++ b/DESIGN
@@ -220,3 +220,18 @@ OK so here is a plan:
   Commit, adjusting the parents of the new commit to the original
   parents if we made the merge with special massaged parents.
   We may still need to have custom merge drivers for metadata.
+
+
+Strategies for each metadata file merge:
+
+       in base/tip     same patch's tip        dep -> base     base -> tip
+
+ msg            T      textual merge           rm from src     not in src
+ deps           T      list merge              rm from src     not in src
+ deleted        T      std existence merge     rm from src     not in src
+ patch-                BT      must be same            rm from src     must be same
+ topgit-        T      must be same            rm from src     not in src
+ [^+]*-                ??      textual merge           rm from src     rm from src
+ +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