+
+
+Strategies for each metadata file merge:
+
+ in base/tip same patch & branch dep -> base base -> tip
+
+ msg T textual merge rm from src not in src
+ deps B list merge rm from src rm from src
+ deleted T std existence merge rm from src not in src
+ patch- BT must be same rm from src must be same
+ topgit- B std exist/text merge rm from src rm from src
+ [^+]*- ?? textual merge rm from src rm from src
+ +included BT list merge rm from non-tb src list merge
+ +*- ?? textual merge rm from non-tb src textual merge
+ *[^-] ?? die, aborting all ops, if found in any tb src or branch
+
+
+
+
+
+Unwanted removal search subgraphs:
+
+ rm relevant removal
+ inc
+
+ rm impossible to undo removal, arrgh, terminates search
+inc inc..
+/ ??? \
+
+ rm
+inc.. rm.. merge of a removal, search down the rm path
+/ [inc] \
+
+ inc ??? call it an inclusion, terminate the search
+ rm
+
+ inc merge of an inclusion, terminates search
+inc.. rm..
+/ [rm] \
+
+ inc ??? call it an inclusion, terminate search
+rm.. rm..
+/ ??? \
+
+
+ rm inc inc rm irrelevant
+ rm inc inc inc.. rm rm..
+
+
+
+ proposed (elsewhere)
+ / \ | |
+ / \ | |
+ / | | |
+ REMOVAL rm | | |
+ | | | |
+ inc | | |
+ / | | | |
+ / inc | | |
+ | | `------------ | ----<-------- | -.|
+ inc inc | | *2
+ |`- | ------------- | ----<--------.| |
+ `---inc | 1* /
+ | | | /
+ RE-INCLUDE inc rm REMOVAL |'
+ \ | / |
+ * REMOVAL rm / |
+ | inc |
+ inc / |
+ | / |
+ inc / |
+ | /`--------<-----------.|
+ inc / |
+ | / |
+ RE-INCLUDE inc / |
+ \ | / |
+ * REMOVAL rm / |
+ | / |
+ inc |
+ \ |
+ `------------<-------------.|
+ |
+ |
+ IT
+
+
+ Merge 1* and 2*, diff against some relevant base branch commit
+ or something, and apply to proposed.