Fossil SCM
Use the datetime of the start of the branch as the input for the color hash. See suggestion made by Stephan Beal in [forum:/forumpost/a9a92d73c4a172f9|forum post a9a92d73c4a172f9].
Commit
1851b26d2b7894f51b69ea50d8a8facb51105cc67758e87fabefe337f6eac178
Parent
82888a0d35a8094…
3 files changed
+1
-3
+8
+2
-1
+1
-3
| --- src/branch.c | ||
| +++ src/branch.c | ||
| @@ -700,13 +700,11 @@ | ||
| 700 | 700 | int rid = branch_is_open(zBrName); |
| 701 | 701 | if( rid==0 ){ |
| 702 | 702 | fossil_print("%s: not an open branch\n", zBrName); |
| 703 | 703 | }else{ |
| 704 | 704 | const char *zUuid = db_text(0,"SELECT uuid FROM blob WHERE rid=%d",rid); |
| 705 | - const char *zDate = db_text(0, | |
| 706 | - "SELECT datetime(mtime,toLocal()) FROM event" | |
| 707 | - " WHERE objid=%d", rid); | |
| 705 | + const char *zDate = datetime_of_rid(rid); | |
| 708 | 706 | fossil_print("%s: open as of %s on %.16s\n", zBrName, zDate, zUuid); |
| 709 | 707 | } |
| 710 | 708 | } |
| 711 | 709 | }else if( strncmp(zCmd,"list",n)==0 || |
| 712 | 710 | strncmp(zCmd, "ls", n)==0 || |
| 713 | 711 |
| --- src/branch.c | |
| +++ src/branch.c | |
| @@ -700,13 +700,11 @@ | |
| 700 | int rid = branch_is_open(zBrName); |
| 701 | if( rid==0 ){ |
| 702 | fossil_print("%s: not an open branch\n", zBrName); |
| 703 | }else{ |
| 704 | const char *zUuid = db_text(0,"SELECT uuid FROM blob WHERE rid=%d",rid); |
| 705 | const char *zDate = db_text(0, |
| 706 | "SELECT datetime(mtime,toLocal()) FROM event" |
| 707 | " WHERE objid=%d", rid); |
| 708 | fossil_print("%s: open as of %s on %.16s\n", zBrName, zDate, zUuid); |
| 709 | } |
| 710 | } |
| 711 | }else if( strncmp(zCmd,"list",n)==0 || |
| 712 | strncmp(zCmd, "ls", n)==0 || |
| 713 |
| --- src/branch.c | |
| +++ src/branch.c | |
| @@ -700,13 +700,11 @@ | |
| 700 | int rid = branch_is_open(zBrName); |
| 701 | if( rid==0 ){ |
| 702 | fossil_print("%s: not an open branch\n", zBrName); |
| 703 | }else{ |
| 704 | const char *zUuid = db_text(0,"SELECT uuid FROM blob WHERE rid=%d",rid); |
| 705 | const char *zDate = datetime_of_rid(rid); |
| 706 | fossil_print("%s: open as of %s on %.16s\n", zBrName, zDate, zUuid); |
| 707 | } |
| 708 | } |
| 709 | }else if( strncmp(zCmd,"list",n)==0 || |
| 710 | strncmp(zCmd, "ls", n)==0 || |
| 711 |
+8
| --- src/name.c | ||
| +++ src/name.c | ||
| @@ -203,10 +203,18 @@ | ||
| 203 | 203 | return zUp; |
| 204 | 204 | } |
| 205 | 205 | return zDate; |
| 206 | 206 | } |
| 207 | 207 | |
| 208 | +/* | |
| 209 | +** Return the datetime of a given "rid" | |
| 210 | +*/ | |
| 211 | +char *datetime_of_rid(int rid){ | |
| 212 | + return db_text(0, | |
| 213 | + "SELECT datetime(mtime,toLocal()) FROM event" | |
| 214 | + " WHERE objid=%d", rid); | |
| 215 | +} | |
| 208 | 216 | |
| 209 | 217 | /* |
| 210 | 218 | ** Return the RID that is the "root" of the branch that contains |
| 211 | 219 | ** check-in "rid". Details depending on eType: |
| 212 | 220 | ** |
| 213 | 221 |
| --- src/name.c | |
| +++ src/name.c | |
| @@ -203,10 +203,18 @@ | |
| 203 | return zUp; |
| 204 | } |
| 205 | return zDate; |
| 206 | } |
| 207 | |
| 208 | |
| 209 | /* |
| 210 | ** Return the RID that is the "root" of the branch that contains |
| 211 | ** check-in "rid". Details depending on eType: |
| 212 | ** |
| 213 |
| --- src/name.c | |
| +++ src/name.c | |
| @@ -203,10 +203,18 @@ | |
| 203 | return zUp; |
| 204 | } |
| 205 | return zDate; |
| 206 | } |
| 207 | |
| 208 | /* |
| 209 | ** Return the datetime of a given "rid" |
| 210 | */ |
| 211 | char *datetime_of_rid(int rid){ |
| 212 | return db_text(0, |
| 213 | "SELECT datetime(mtime,toLocal()) FROM event" |
| 214 | " WHERE objid=%d", rid); |
| 215 | } |
| 216 | |
| 217 | /* |
| 218 | ** Return the RID that is the "root" of the branch that contains |
| 219 | ** check-in "rid". Details depending on eType: |
| 220 | ** |
| 221 |
+2
-1
| --- src/timeline.c | ||
| +++ src/timeline.c | ||
| @@ -273,10 +273,11 @@ | ||
| 273 | 273 | int rid = db_column_int(pQuery, 0); |
| 274 | 274 | const char *zUuid = db_column_text(pQuery, 1); |
| 275 | 275 | int isLeaf = db_column_int(pQuery, 5); |
| 276 | 276 | const char *zBgClr = db_column_text(pQuery, 6); |
| 277 | 277 | const char *zDate = db_column_text(pQuery, 2); |
| 278 | + const char *zBrDate = datetime_of_rid(start_of_branch(rid,1)); | |
| 278 | 279 | const char *zType = db_column_text(pQuery, 7); |
| 279 | 280 | const char *zUser = db_column_text(pQuery, 4); |
| 280 | 281 | const char *zTagList = db_column_text(pQuery, 8); |
| 281 | 282 | int tagid = db_column_int(pQuery, 9); |
| 282 | 283 | const char *zDispUser = zUser && zUser[0] ? zUser : "anonymous"; |
| @@ -437,11 +438,11 @@ | ||
| 437 | 438 | ** branch name */ |
| 438 | 439 | if( tmFlags & (TIMELINE_DELTA|TIMELINE_NOCOLOR) ){ |
| 439 | 440 | }else if( zBr==0 || strcmp(zBr,"trunk")==0 ){ |
| 440 | 441 | zBgClr = 0; |
| 441 | 442 | }else{ |
| 442 | - zBgClr = hash_color(zBr); | |
| 443 | + zBgClr = hash_color(zBrDate); | |
| 443 | 444 | } |
| 444 | 445 | } |
| 445 | 446 | } |
| 446 | 447 | if( zType[0]=='c' && pGraph ){ |
| 447 | 448 | int nParent = 0; |
| 448 | 449 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -273,10 +273,11 @@ | |
| 273 | int rid = db_column_int(pQuery, 0); |
| 274 | const char *zUuid = db_column_text(pQuery, 1); |
| 275 | int isLeaf = db_column_int(pQuery, 5); |
| 276 | const char *zBgClr = db_column_text(pQuery, 6); |
| 277 | const char *zDate = db_column_text(pQuery, 2); |
| 278 | const char *zType = db_column_text(pQuery, 7); |
| 279 | const char *zUser = db_column_text(pQuery, 4); |
| 280 | const char *zTagList = db_column_text(pQuery, 8); |
| 281 | int tagid = db_column_int(pQuery, 9); |
| 282 | const char *zDispUser = zUser && zUser[0] ? zUser : "anonymous"; |
| @@ -437,11 +438,11 @@ | |
| 437 | ** branch name */ |
| 438 | if( tmFlags & (TIMELINE_DELTA|TIMELINE_NOCOLOR) ){ |
| 439 | }else if( zBr==0 || strcmp(zBr,"trunk")==0 ){ |
| 440 | zBgClr = 0; |
| 441 | }else{ |
| 442 | zBgClr = hash_color(zBr); |
| 443 | } |
| 444 | } |
| 445 | } |
| 446 | if( zType[0]=='c' && pGraph ){ |
| 447 | int nParent = 0; |
| 448 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -273,10 +273,11 @@ | |
| 273 | int rid = db_column_int(pQuery, 0); |
| 274 | const char *zUuid = db_column_text(pQuery, 1); |
| 275 | int isLeaf = db_column_int(pQuery, 5); |
| 276 | const char *zBgClr = db_column_text(pQuery, 6); |
| 277 | const char *zDate = db_column_text(pQuery, 2); |
| 278 | const char *zBrDate = datetime_of_rid(start_of_branch(rid,1)); |
| 279 | const char *zType = db_column_text(pQuery, 7); |
| 280 | const char *zUser = db_column_text(pQuery, 4); |
| 281 | const char *zTagList = db_column_text(pQuery, 8); |
| 282 | int tagid = db_column_int(pQuery, 9); |
| 283 | const char *zDispUser = zUser && zUser[0] ? zUser : "anonymous"; |
| @@ -437,11 +438,11 @@ | |
| 438 | ** branch name */ |
| 439 | if( tmFlags & (TIMELINE_DELTA|TIMELINE_NOCOLOR) ){ |
| 440 | }else if( zBr==0 || strcmp(zBr,"trunk")==0 ){ |
| 441 | zBgClr = 0; |
| 442 | }else{ |
| 443 | zBgClr = hash_color(zBrDate); |
| 444 | } |
| 445 | } |
| 446 | } |
| 447 | if( zType[0]=='c' && pGraph ){ |
| 448 | int nParent = 0; |
| 449 |