X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=topbloke.git;a=blobdiff_plain;f=DESIGN;h=f68272b1331daefe158f31cd6db36e9c0a639a63;hp=e62456b7bbcbf5cdeceb77b4fa1838442c0029a2;hb=befe127cf99d6cc7006776345c3cb2dc43c3341c;hpb=605f4910113b6c1b200dce384251b44ed99bde3c diff --git a/DESIGN b/DESIGN index e62456b..f68272b 100644 --- a/DESIGN +++ b/DESIGN @@ -100,20 +100,20 @@ 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. @@ -143,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