+merge alg needs to check for cyclic dependencies
+
+when creating needs to remove metadata, make a separate commit with no
+metadata to allow us to spot what's happening. should only do this
+with option to permit it! Also need to do this when merging.
+
+wibblings:
+ what about strangeness in ancient history wrt merge alg
+ topgit import
+ topbloke {base,tip} is ff desc of topgit {base,tip}
+ with metadata adjusted
+ topbloke branch has all the deps of the topgit
+ branch (topgit branches mapped into topbloke
+ branches) plus the topgit branch itself named in
+ flags
+ reject topbloke imports of topgit branches which
+ also contain topbloke metadata
+ need patch name in metadata
+ patch dep metadata syntax unsatisfactory: too twiddly
+ flags metadata unsatisfactory: wants to be valued properties
+
+ "checkout" shouldn't do any updates but also want
+ "goto" or "push" or "pop" or something which does do updates
+ (at least, the relevant ones)
+
+ topbloke series file under .git records current leaf
+
+ create creates leaf and thus series ?
+ insert patch operation to create new patch under this one
+ append patch operation to create new patch above this one
+ which is inserted into all clients' deps
+
+what about ops which update multiple refs - atomicity ?
+ think about this later but for now abstract away commit and
+ other ref update