X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=DESIGN;h=f68272b1331daefe158f31cd6db36e9c0a639a63;hb=befe127cf99d6cc7006776345c3cb2dc43c3341c;hp=bac524ca7bbefad5bf8a38b2536209ca4fb55578;hpb=94f53550123b9311a10d0e43ada446d4e3a9f144;p=topbloke.git diff --git a/DESIGN b/DESIGN index bac524c..f68272b 100644 --- a/DESIGN +++ b/DESIGN @@ -100,22 +100,24 @@ merging from local branches first. Actual included branches: - This is tracked explicitly in .topgit/included, one branch per + This is tracked explicitly in .topbloke/included, one branch per line. For compatibility with older versions, every time we think about a base, branch or source above, we check whether - .topgit/included is present. + .topbloke/included is present. If it isn't then we calculate a child commit which has a - .topgit/included. In the case of a remote branch or base, we + .topbloke/included. In the case of a remote branch or base, we substitute this child commit for the relevant remote ref but do not record it in the remote ref; in the case of a local branch or base, we advance the local branch or base accordingly. - When .topgit/included is calculated in this way, it always gets - the list of desired included branches. (Older versions of topgit, - which do not support dependency deletion, always have exactly the + When .topbloke/included is calculated in this way, it always gets + the list of desired included branches. (topgit, + which does not support dependency deletion, always has exactly the desired branches actually included.) + Non-topbloke-controlled branches are never recorded in included. + Branch removal: @@ -141,6 +143,13 @@ Branch removal: undeleting - just unmark the branch as deleted + +Foreign branches: + When merging from a foreign dependency, check that it + does not have .topbloke/included or .topbloke/flags; if it + does, could produce a new commit which has .topbloke removed + and merge from that + Branch naming: needs to be globally unique so put email address in it