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 also would like some kind of --ff-only update ?