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].

andybradford 2025-09-27 00:47 trunk
Commit 1851b26d2b7894f51b69ea50d8a8facb51105cc67758e87fabefe337f6eac178
+1 -3
--- src/branch.c
+++ src/branch.c
@@ -700,13 +700,11 @@
700700
int rid = branch_is_open(zBrName);
701701
if( rid==0 ){
702702
fossil_print("%s: not an open branch\n", zBrName);
703703
}else{
704704
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);
708706
fossil_print("%s: open as of %s on %.16s\n", zBrName, zDate, zUuid);
709707
}
710708
}
711709
}else if( strncmp(zCmd,"list",n)==0 ||
712710
strncmp(zCmd, "ls", n)==0 ||
713711
--- 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 @@
203203
return zUp;
204204
}
205205
return zDate;
206206
}
207207
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
+}
208216
209217
/*
210218
** Return the RID that is the "root" of the branch that contains
211219
** check-in "rid". Details depending on eType:
212220
**
213221
--- 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 @@
273273
int rid = db_column_int(pQuery, 0);
274274
const char *zUuid = db_column_text(pQuery, 1);
275275
int isLeaf = db_column_int(pQuery, 5);
276276
const char *zBgClr = db_column_text(pQuery, 6);
277277
const char *zDate = db_column_text(pQuery, 2);
278
+ const char *zBrDate = datetime_of_rid(start_of_branch(rid,1));
278279
const char *zType = db_column_text(pQuery, 7);
279280
const char *zUser = db_column_text(pQuery, 4);
280281
const char *zTagList = db_column_text(pQuery, 8);
281282
int tagid = db_column_int(pQuery, 9);
282283
const char *zDispUser = zUser && zUser[0] ? zUser : "anonymous";
@@ -437,11 +438,11 @@
437438
** branch name */
438439
if( tmFlags & (TIMELINE_DELTA|TIMELINE_NOCOLOR) ){
439440
}else if( zBr==0 || strcmp(zBr,"trunk")==0 ){
440441
zBgClr = 0;
441442
}else{
442
- zBgClr = hash_color(zBr);
443
+ zBgClr = hash_color(zBrDate);
443444
}
444445
}
445446
}
446447
if( zType[0]=='c' && pGraph ){
447448
int nParent = 0;
448449
--- 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

Keyboard Shortcuts

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