chiark / gitweb /
wip thoughts about props reorg
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 28 Jan 2012 18:24:38 +0000 (18:24 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 28 Jan 2012 18:24:38 +0000 (18:24 +0000)
DESIGN
FORMAT

diff --git a/DESIGN b/DESIGN
index fd3abb473e7f595c25500e650f39c127716d33fa..b9af16cef0a46d512d7b6d3a998058aa4461a538 100644 (file)
--- a/DESIGN
+++ b/DESIGN
@@ -186,3 +186,9 @@ Unnecessary - instead, deal with leaf patches
 Operations like "go up the stack", goes towards leaf.  Hopefully unique.
 "Down" the stack, uses a "conventional" linearisation
 Stack reordering op ?  auto adjust deps
 Operations like "go up the stack", goes towards leaf.  Hopefully unique.
 "Down" the stack, uses a "conventional" linearisation
 Stack reordering op ?  auto adjust deps
+
+
+When merging, we need to DTRT with our metadata.
+So we do this by running write-tree/read-tree etc. ourselves.
+For a source we're merging from, we make a version where the
+metadata we shouldn't be merging is removed.
diff --git a/FORMAT b/FORMAT
index 1b823f05a1c9f8fe95e9ca412d666163f0e09969..473946e32f37daec824e4176f2fd924d6a4c029f 100644 (file)
--- a/FORMAT
+++ b/FORMAT
@@ -20,27 +20,34 @@ In-tree, there are metadata files in .topbloke
                                .tg <ref name not including refs/heads/>
                        (empty in base branches)
 
                                .tg <ref name not including refs/heads/>
                        (empty in base branches)
 
-       props           properties that apply to this patch, one per line
-                        in the format "<name>[ <value>]" (exactly one
-                        space) where value can contain spaces and
-                        a missing value is distinct from a missing property
-                        but value if present must be nonempty
-                       base has its own, perhaps different, set of props;
-                        Unknown props starting with [a-z] are ok;
-                        otherwise fatal.  Currently defined props:
-               patch <name>    topbloke patch name (in tip and base)
-               topgit <name>   this is a topgit import (in tip and base)
-               Deleted         patch is deleted (in tip only, no value)
-
-    Files which not inherit contents and changes from dependencies:
-
-       included        actual included deps, one per line
+       deleted         exists (but empty) if branch is deleted
+                       exist in tip only branch
+
+       patch-          name of this topbloke patch (plus a newline)
+                       exists in base and tip
+
+       topgit-         name of the topgit branch that this was
+                       imported from and which we should merge from
+                       (plus a newline); exists in tip only
+
+       [^+]*-          another property that applies to this patch;
+                       if not known to this version of topbloke then it
+                       is safe to:
+                         - merge this file as text when merging
+                           from base into base or tip into tip
+                         - throw away this file when merging from
+                           base into tip or from dep into base
+
+    Files which inherit contents and changes from dependencies
+    have names starting with "+":
+
+       +included       actual included deps, one per line
                                format as for deps
 
                                format as for deps
 
-       pprops          properties that apply to this patch and all its
-                       dependencies (ie, properties that propagate)
-                        Unknown props starting with [a-z] are ok;
-                        otherwise fatal.  No currently defined props.
+       +*-             another property that is inherited; it is also
+                       safe to:
+                        - merge this file as text when merging
+                          from tb deps into bases or bases into tips
 
 
 <full-name> has the format:
 
 
 <full-name> has the format: