chiark / gitweb /
FORMAT: put deps etc. in base branch where we need them
[topbloke.git] / FORMAT
diff --git a/FORMAT b/FORMAT
index 1b823f05a1c9f8fe95e9ca412d666163f0e09969..593fede09b3d1822268c4b71970189e3c9002f8c 100644 (file)
--- a/FORMAT
+++ b/FORMAT
@@ -11,36 +11,51 @@ In-tree, there are metadata files in .topbloke
     or changes from bases or dependencies:
 
        msg             patch "commit message"
     or changes from bases or dependencies:
 
        msg             patch "commit message"
-                       ("# not applicable" in bases)
+                       exist only in tip branch
 
        deps            direct dependencies, one per line
                        as either:
                                <topbloke patch name>
 
        deps            direct dependencies, one per line
                        as either:
                                <topbloke patch name>
-                               .f <ref name including refs/heads/>
-                               .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
-                               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.
+                               - <ref name including refs/heads/>
+                       exist only in base branch
+
+       deleted         exists (but empty) if branch is deleted
+                       exist only in tip branch
+
+       patch-          name of this topbloke patch (plus a newline)
+                       exists in base and tip, identical value
+
+       topgit-         name of the topgit branch that this was
+                       imported from and which we should merge from
+                       (plus a newline)
+                       exist only in base branch
+
+       [^+]*-          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,
+                           and perhaps ask user to fix up conflicts
+                           after warning if they feel expert
+                         - throw away this file when merging from
+                           from dep into base or base into tip
+
+    Files which inherit contents and changes from dependencies
+    have names starting with "+":
+
+       +included       actual included deps, one per line
+                       format as for deps
+                       exists in tip and base branches
+
+       +*-             another property that is inherited; it is also
+                       safe to:
+                        - merge this file as text when merging
+                          from tb dep into base, base into tip
+                          or tip into tip
+
+    Any unknown metadata files not ending in "-" are fatal: tb
+    will refuse to operate on patches either of whose branches
+    have such files.
 
 
 <full-name> has the format:
 
 
 <full-name> has the format: