Fossil SCM

Fix a problem in which normal merge arrows were often drawn as normal merge arrows.

drh 2018-12-27 20:13 trunk
Commit 8b3e3e007e5f359e02e57cfc6e71c9545f4145a964953ba043024724eedab608
2 files changed +4 +1 -1
--- src/graph.c
+++ src/graph.c
@@ -49,10 +49,11 @@
4949
int idx; /* Row index. First is 1. 0 used for "none" */
5050
int idxTop; /* Direct descendent highest up on the graph */
5151
GraphRow *pChild; /* Child immediately above this node */
5252
u8 isDup; /* True if this is duplicate of a prior entry */
5353
u8 isLeaf; /* True if this is a leaf node */
54
+ u8 hasNormalOutMerge; /* Is parent of at laest 1 non-cherrypick merge */
5455
u8 timeWarp; /* Child is earlier in time */
5556
u8 bDescender; /* True if riser from bottom of graph to here. */
5657
i8 iRail; /* Which rail this check-in appears on. 0-based.*/
5758
i8 mergeOut; /* Merge out to this rail. -1 if no merge-out */
5859
u8 mergeIn[GR_MAX_RAIL]; /* Merge in from non-zero rails */
@@ -321,10 +322,13 @@
321322
pLoop=pLoop->pNext){
322323
pLoop->railInUse |= mask;
323324
}
324325
}
325326
}
327
+ if( !isCherrypick ){
328
+ pParent->hasNormalOutMerge = 1;
329
+ }
326330
pChild->mergeIn[pParent->mergeOut] = isCherrypick ? 2 : 1;
327331
}
328332
329333
/*
330334
** Compute the maximum rail number.
331335
--- src/graph.c
+++ src/graph.c
@@ -49,10 +49,11 @@
49 int idx; /* Row index. First is 1. 0 used for "none" */
50 int idxTop; /* Direct descendent highest up on the graph */
51 GraphRow *pChild; /* Child immediately above this node */
52 u8 isDup; /* True if this is duplicate of a prior entry */
53 u8 isLeaf; /* True if this is a leaf node */
 
54 u8 timeWarp; /* Child is earlier in time */
55 u8 bDescender; /* True if riser from bottom of graph to here. */
56 i8 iRail; /* Which rail this check-in appears on. 0-based.*/
57 i8 mergeOut; /* Merge out to this rail. -1 if no merge-out */
58 u8 mergeIn[GR_MAX_RAIL]; /* Merge in from non-zero rails */
@@ -321,10 +322,13 @@
321 pLoop=pLoop->pNext){
322 pLoop->railInUse |= mask;
323 }
324 }
325 }
 
 
 
326 pChild->mergeIn[pParent->mergeOut] = isCherrypick ? 2 : 1;
327 }
328
329 /*
330 ** Compute the maximum rail number.
331
--- src/graph.c
+++ src/graph.c
@@ -49,10 +49,11 @@
49 int idx; /* Row index. First is 1. 0 used for "none" */
50 int idxTop; /* Direct descendent highest up on the graph */
51 GraphRow *pChild; /* Child immediately above this node */
52 u8 isDup; /* True if this is duplicate of a prior entry */
53 u8 isLeaf; /* True if this is a leaf node */
54 u8 hasNormalOutMerge; /* Is parent of at laest 1 non-cherrypick merge */
55 u8 timeWarp; /* Child is earlier in time */
56 u8 bDescender; /* True if riser from bottom of graph to here. */
57 i8 iRail; /* Which rail this check-in appears on. 0-based.*/
58 i8 mergeOut; /* Merge out to this rail. -1 if no merge-out */
59 u8 mergeIn[GR_MAX_RAIL]; /* Merge in from non-zero rails */
@@ -321,10 +322,13 @@
322 pLoop=pLoop->pNext){
323 pLoop->railInUse |= mask;
324 }
325 }
326 }
327 if( !isCherrypick ){
328 pParent->hasNormalOutMerge = 1;
329 }
330 pChild->mergeIn[pParent->mergeOut] = isCherrypick ? 2 : 1;
331 }
332
333 /*
334 ** Compute the maximum rail number.
335
+1 -1
--- src/timeline.c
+++ src/timeline.c
@@ -906,11 +906,11 @@
906906
cgi_printf("\"mu\":%d,", pRow->mergeUpto);
907907
}
908908
cgi_printf("\"u\":%d,", pRow->aiRiser[pRow->iRail]);
909909
k = 0;
910910
if( pRow->isLeaf ) k |= 1;
911
- if( pRow->nCherrypick>=pRow->nParent-1 ) k |= 2;
911
+ if( !pRow->hasNormalOutMerge ) k |= 2;
912912
cgi_printf("\"f\":%d,",k);
913913
for(i=k=0; i<GR_MAX_RAIL; i++){
914914
if( i==pRow->iRail ) continue;
915915
if( pRow->aiRiser[i]>0 ){
916916
if( k==0 ){
917917
--- src/timeline.c
+++ src/timeline.c
@@ -906,11 +906,11 @@
906 cgi_printf("\"mu\":%d,", pRow->mergeUpto);
907 }
908 cgi_printf("\"u\":%d,", pRow->aiRiser[pRow->iRail]);
909 k = 0;
910 if( pRow->isLeaf ) k |= 1;
911 if( pRow->nCherrypick>=pRow->nParent-1 ) k |= 2;
912 cgi_printf("\"f\":%d,",k);
913 for(i=k=0; i<GR_MAX_RAIL; i++){
914 if( i==pRow->iRail ) continue;
915 if( pRow->aiRiser[i]>0 ){
916 if( k==0 ){
917
--- src/timeline.c
+++ src/timeline.c
@@ -906,11 +906,11 @@
906 cgi_printf("\"mu\":%d,", pRow->mergeUpto);
907 }
908 cgi_printf("\"u\":%d,", pRow->aiRiser[pRow->iRail]);
909 k = 0;
910 if( pRow->isLeaf ) k |= 1;
911 if( !pRow->hasNormalOutMerge ) k |= 2;
912 cgi_printf("\"f\":%d,",k);
913 for(i=k=0; i<GR_MAX_RAIL; i++){
914 if( i==pRow->iRail ) continue;
915 if( pRow->aiRiser[i]>0 ){
916 if( k==0 ){
917

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button