Topbloke branch is: - branch in refs/topbloke-tips/ contains the working version, fast-forwarding - branch in refs/topbloke-bases/ contains the base version, being the pulling merge of all the bases In-tree, there are metadata files in .topbloke Files which are per-branch and do not inherit any contents or changes from bases or dependencies: msg brach "commit message" ("# not applicable" in bases) deps direct dependencies, one per line as either: topbloke branch name /refs/heads/ ("# not applicable" in bases) flags flags that apply to this branch, 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 branch is deleted (valid on branch only) Files which not inherit contents and changes from dependencies: included actual included branches, one per line topbloke branch name pflags flags that apply to this branch and all its dependencies (ie, flags that propagate) Unknown flags starting with [a-z] are ok; otherwise fatal. No currently defined flags has the format: @/--
TZ/ where nickname-path's first component must not start with a digit contain ~ or @ (: is not allowed in refs hence the squashing) eg ijackson@chiark.greenend.org.uk/2012-01-20T225127Z/reorg/sponge NB only exactly that date format is allowed and timezone must be Z. Branches may be specified as [/...] where / is one of []@[/ Only branches matching the specified email local part or domain name match [/] A prefix of the ISO8601 date spec, stopping just after a numeric component (or at the end) [/] Intepreted by date -d after ~s have been replaced by spaces. When we come to select, take the branch nearest that date rather than the most recent may be ./ ../ may be means all branches are candidates So overall, if the current branch is ijackson@chiark.greenend.org.uk/2011-08-20T120320Z/fixes/pudding then all of the following can refer to the same branch ./sponge ../reorg/sponge reorg/sponge 2012/reorg/sponge 2012/reorg/sponge 2012/./sponge jan~/./sponge ijackson@/reorg/sponge ijackson@/2012/reorg/sponge ijackson@chiark.greenend.org.uk/reorg/sponge ijackson@chiark.greenend.org.uk/2012-01-20T225127Z/reorg/sponge Search algorithm: 1. prefer branches with email address (or domain) matching current branch 2. prefer branches with our own email address (or domain) 3. other branches Within this there may be branches with multiple dates; prefer the most recent.