Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Graph layout: Strive harder for merge arrows to come straight up out of the top of leaf nodes. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
a3bfe425e0eb18eab6b3291d5f051a1e |
User & Date: | drh 2022-03-10 12:35:34 |
Context
2022-03-10
| ||
12:50 | Graph layout: Reduce the top-margin requirement for a merge arrow that comes straight up out of the top of a leaf node. ... (check-in: 6b56d890 user: drh tags: trunk) | |
12:35 | Graph layout: Strive harder for merge arrows to come straight up out of the top of leaf nodes. ... (check-in: a3bfe425 user: drh tags: trunk) | |
2022-03-08
| ||
20:47 | On file listing pages, sort files that have numbers as part of their name in numeric order. ... (check-in: 59dfca5e user: drh tags: trunk) | |
Changes
Changes to src/graph.c.
︙ | ︙ | |||
367 368 369 370 371 372 373 374 375 376 377 378 | for(p=pPrior; p && (n--)>0; p=p->pPrev){ pPrior->selfUp++; p->railInUse |= mask; } } } /* ** Create a merge-arrow riser going from pParent up to pChild. */ static void createMergeRiser( GraphContext *p, | > > > > > > > > > > > > > > | | | > > > > > > > > | | 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 | for(p=pPrior; p && (n--)>0; p=p->pPrev){ pPrior->selfUp++; p->railInUse |= mask; } } } /* ** Check to see if rail iRail is clear from pBottom up to and including ** pTop. */ static int railIsClear(GraphRow *pBottom, int iTop, int iRail){ u64 m = BIT(iRail); while( pBottom && pBottom->idx>=iTop ){ if( pBottom->railInUse & m ) return 0; pBottom = pBottom->pPrev; } return 1; } /* ** Create a merge-arrow riser going from pParent up to pChild. */ static void createMergeRiser( GraphContext *p, GraphRow *pParent, /* Lower node from which the merge line begins */ GraphRow *pChild, /* Upper node at which the merge line ends */ int isCherrypick /* True for a cherry-pick merge */ ){ int u; u64 mask; GraphRow *pLoop; if( pParent->mergeOut<0 ){ u = pParent->aiRiser[pParent->iRail]; if( u<0 && railIsClear(pParent->pPrev, pChild->idx-1, pParent->iRail) ){ /* pParent is a leaf and the merge-line can be drawn straight up.*/ pParent->mergeOut = pParent->iRail; mask = BIT(pParent->iRail); for(pLoop=pChild->pNext; pLoop && pLoop->rid!=pParent->rid; pLoop=pLoop->pNext){ pLoop->railInUse |= mask; } }else if( u>0 && u<pChild->idx ){ /* The thick arrow up to the next primary child of pDesc goes ** further up than the thin merge arrow riser, so draw them both ** on the same rail. */ pParent->mergeOut = pParent->iRail; }else if( pParent->idx - pChild->idx < pParent->selfUp ){ pParent->mergeOut = pParent->iRail; }else{ |
︙ | ︙ |