I (Julian Foad) wrote: > I think merge_reintegrate_tests.py 19 demonstrates it better than 1000 words > so > I'll leave it at that for today.
For people who'd like to follow along without having to apply and run the patch, that test does: Rev A A_COPY | 02 |--cp-->X # every X is a commit 3~6 X | 07 | X 08 | |->X # side-branch 'BRANCH_DEV1' 09 | | X 10 | X<-| 11 X | 12 |->X | # side-branch 'TRUNK_DEV1' 13 | X | 14 X<-| | | | 15 |--mrg->X # 'merge ^/A A_COPY' | | 16 | X 17 | |->X # side-branch 'BRANCH_DEV2' 18 | | X 19 | X<-| 20 X | 21 |->X | # side-branch 'TRUNK_DEV2' 22 | X | 23 X<-| | | | 24 X<-mrg--| # 'merge --reintegrate ^/A_COPY A' | | # no keep-alive dance here 25 | X 26 | |->X # side-branch 'BRANCH_DEV3' 27 | | X 28 | X<-| 29 X | 30 |->X | 31 | X | 32 X<-| | # side-branch 'TRUNK_DEV3' | | WC |--mrg->X # 'merge ^/A A_COPY' and the tail output for the last merge is: DBG: merge.c:8464: r23:24 mi added: DBG: /A_COPY:2-23 DBG: merge.c:8633: Skipping reflective revision r24 --- Merging r15 through r23 into 'A_COPY': A A_COPY/TrunkFix2 A A_COPY/NewViaTRUNK_DEV2 G A_COPY --- Merging r25 through r32 into 'A_COPY': A A_COPY/TrunkFix3 A A_COPY/NewViaTRUNK_DEV3 G A_COPY --- Recording mergeinfo for merge of r15 through r32 into 'A_COPY': G A_COPY mergeinfo on 'A': /A_COPY:2-23 /BRANCH_DEV1:8-9 /BRANCH_DEV2:17-18 /TRUNK_DEV1:12-13 /TRUNK_DEV2:21-22 /TRUNK_DEV3:30-31 mergeinfo on 'A_COPY@BASE': /A:2-14 /BRANCH_DEV1:8-9 /BRANCH_DEV2:17-18 /BRANCH_DEV3:26-27 /TRUNK_DEV1:12-13 mergeinfo on 'A_COPY' (working version): /A:2-32 /BRANCH_DEV1:8-9 /BRANCH_DEV2:17-18 /BRANCH_DEV3:26-27 /TRUNK_DEV1:12-13 /TRUNK_DEV2:21-22 /TRUNK_DEV3:30-31 - Julian