Fossil SCM
When listing closed branches, only show a branch if every leaf of that branch is closed.
Commit
74c86dd1da61adf1e1a51ce2f795508f4874baaa
Parent
c1506adbf7a46f7…
1 file changed
+22
-8
+22
-8
| --- src/branch.c | ||
| +++ src/branch.c | ||
| @@ -276,18 +276,32 @@ | ||
| 276 | 276 | @ reopened)</li> |
| 277 | 277 | @ </ol> |
| 278 | 278 | style_sidebox_end(); |
| 279 | 279 | |
| 280 | 280 | cnt = 0; |
| 281 | - db_prepare(&q, | |
| 282 | - "SELECT DISTINCT value FROM tagxref" | |
| 283 | - " WHERE tagid=%d AND value NOT NULL" | |
| 284 | - " AND rid IN leaf" | |
| 285 | - " AND %s %z" | |
| 286 | - " ORDER BY value /*sort*/", | |
| 287 | - TAG_BRANCH, showClosed ? "" : "NOT", leaf_is_closed_sql("tagxref.rid") | |
| 288 | - ); | |
| 281 | + if( showClosed ){ | |
| 282 | + db_prepare(&q, | |
| 283 | + "SELECT value FROM tagxref" | |
| 284 | + " WHERE tagid=%d AND value NOT NULL " | |
| 285 | + "EXCEPT " | |
| 286 | + "SELECT value FROM tagxref" | |
| 287 | + " WHERE tagid=%d" | |
| 288 | + " AND rid IN leaf" | |
| 289 | + " AND NOT %z" | |
| 290 | + " ORDER BY value /*sort*/", | |
| 291 | + TAG_BRANCH, TAG_BRANCH, leaf_is_closed_sql("tagxref.rid") | |
| 292 | + ); | |
| 293 | + }else{ | |
| 294 | + db_prepare(&q, | |
| 295 | + "SELECT DISTINCT value FROM tagxref" | |
| 296 | + " WHERE tagid=%d AND value NOT NULL" | |
| 297 | + " AND rid IN leaf" | |
| 298 | + " AND NOT %z" | |
| 299 | + " ORDER BY value /*sort*/", | |
| 300 | + TAG_BRANCH, leaf_is_closed_sql("tagxref.rid") | |
| 301 | + ); | |
| 302 | + } | |
| 289 | 303 | while( db_step(&q)==SQLITE_ROW ){ |
| 290 | 304 | const char *zBr = db_column_text(&q, 0); |
| 291 | 305 | if( cnt==0 ){ |
| 292 | 306 | if( showClosed ){ |
| 293 | 307 | @ <h2>Closed Branches:</h2> |
| 294 | 308 |
| --- src/branch.c | |
| +++ src/branch.c | |
| @@ -276,18 +276,32 @@ | |
| 276 | @ reopened)</li> |
| 277 | @ </ol> |
| 278 | style_sidebox_end(); |
| 279 | |
| 280 | cnt = 0; |
| 281 | db_prepare(&q, |
| 282 | "SELECT DISTINCT value FROM tagxref" |
| 283 | " WHERE tagid=%d AND value NOT NULL" |
| 284 | " AND rid IN leaf" |
| 285 | " AND %s %z" |
| 286 | " ORDER BY value /*sort*/", |
| 287 | TAG_BRANCH, showClosed ? "" : "NOT", leaf_is_closed_sql("tagxref.rid") |
| 288 | ); |
| 289 | while( db_step(&q)==SQLITE_ROW ){ |
| 290 | const char *zBr = db_column_text(&q, 0); |
| 291 | if( cnt==0 ){ |
| 292 | if( showClosed ){ |
| 293 | @ <h2>Closed Branches:</h2> |
| 294 |
| --- src/branch.c | |
| +++ src/branch.c | |
| @@ -276,18 +276,32 @@ | |
| 276 | @ reopened)</li> |
| 277 | @ </ol> |
| 278 | style_sidebox_end(); |
| 279 | |
| 280 | cnt = 0; |
| 281 | if( showClosed ){ |
| 282 | db_prepare(&q, |
| 283 | "SELECT value FROM tagxref" |
| 284 | " WHERE tagid=%d AND value NOT NULL " |
| 285 | "EXCEPT " |
| 286 | "SELECT value FROM tagxref" |
| 287 | " WHERE tagid=%d" |
| 288 | " AND rid IN leaf" |
| 289 | " AND NOT %z" |
| 290 | " ORDER BY value /*sort*/", |
| 291 | TAG_BRANCH, TAG_BRANCH, leaf_is_closed_sql("tagxref.rid") |
| 292 | ); |
| 293 | }else{ |
| 294 | db_prepare(&q, |
| 295 | "SELECT DISTINCT value FROM tagxref" |
| 296 | " WHERE tagid=%d AND value NOT NULL" |
| 297 | " AND rid IN leaf" |
| 298 | " AND NOT %z" |
| 299 | " ORDER BY value /*sort*/", |
| 300 | TAG_BRANCH, leaf_is_closed_sql("tagxref.rid") |
| 301 | ); |
| 302 | } |
| 303 | while( db_step(&q)==SQLITE_ROW ){ |
| 304 | const char *zBr = db_column_text(&q, 0); |
| 305 | if( cnt==0 ){ |
| 306 | if( showClosed ){ |
| 307 | @ <h2>Closed Branches:</h2> |
| 308 |