- topbloke patch name
- /refs/heads/<something>
- ("# not applicable" in bases)
-
- flags flags that apply to this patch, one per line
- base has its own, perhaps different, set of flags;
- Unknown flags starting with [a-z] are ok;
- otherwise fatal. Currently defined flags:
- Deleted patch is deleted
- (valid on tip only)
-
- Files which not inherit contents and changes from dependencies:
-
- included actual included deps, one per line
- format as for deps
-
- pflags flags that apply to this patch and all its
- dependencies (ie, flags that propagate)
- Unknown flags starting with [a-z] are ok;
- otherwise fatal. No currently defined flags
+ <topbloke patch name>
+ .f <ref name including refs/heads/>
+ .tg <ref name not including refs/heads/>
+ exist only in tip 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 tip 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.