Fossil SCM

Experimentally added branched-from info to the leaves output, as discussed in [forum:/forumpost/5e52d31d2e].

stephan 2021-02-15 16:27 trunk
Commit 0b41f332f4f3c8e2ad9abbe096dea917a03273e5c5d1949e391f1c1dba4728e1
1 file changed +12 -2
--- src/descendants.c
+++ src/descendants.c
@@ -491,11 +491,13 @@
491491
while( db_step(&q)==SQLITE_ROW ){
492492
const char *zId = db_column_text(&q, 1);
493493
const char *zDate = db_column_text(&q, 2);
494494
const char *zCom = db_column_text(&q, 3);
495495
const char *zBr = db_column_text(&q, 7);
496
- char *z;
496
+ char *z = 0;
497
+ int ridOfRoot = 0;
498
+ char * zBranchPoint = 0;
497499
498500
if( byBranch && fossil_strcmp(zBr, zLastBr)!=0 ){
499501
fossil_print("*** %s ***\n", zBr);
500502
fossil_free(zLastBr);
501503
zLastBr = fossil_strdup(zBr);
@@ -502,13 +504,21 @@
502504
if( multipleFlag ) n = 0;
503505
}
504506
n++;
505507
sqlite3_snprintf(sizeof(zLineNo), zLineNo, "(%d)", n);
506508
fossil_print("%6s ", zLineNo);
507
- z = mprintf("%s [%S] %s", zDate, zId, zCom);
509
+ z = mprintf("root:%s", zId);
510
+ ridOfRoot = symbolic_name_to_rid(z, "ci");
511
+ if(ridOfRoot>0){
512
+ zBranchPoint = mprintf(" Branched from [%.*z]", hash_digits(0),
513
+ rid_to_uuid(ridOfRoot));
514
+ }
515
+ z = mprintf("%s [%S] %s%.*s", zDate, zId, zCom,
516
+ zBranchPoint ? zBranchPoint : 0);
508517
comment_print(z, zCom, 7, width, get_comment_format());
509518
fossil_free(z);
519
+ fossil_free(zBranchPoint);
510520
}
511521
fossil_free(zLastBr);
512522
db_finalize(&q);
513523
}
514524
515525
--- src/descendants.c
+++ src/descendants.c
@@ -491,11 +491,13 @@
491 while( db_step(&q)==SQLITE_ROW ){
492 const char *zId = db_column_text(&q, 1);
493 const char *zDate = db_column_text(&q, 2);
494 const char *zCom = db_column_text(&q, 3);
495 const char *zBr = db_column_text(&q, 7);
496 char *z;
 
 
497
498 if( byBranch && fossil_strcmp(zBr, zLastBr)!=0 ){
499 fossil_print("*** %s ***\n", zBr);
500 fossil_free(zLastBr);
501 zLastBr = fossil_strdup(zBr);
@@ -502,13 +504,21 @@
502 if( multipleFlag ) n = 0;
503 }
504 n++;
505 sqlite3_snprintf(sizeof(zLineNo), zLineNo, "(%d)", n);
506 fossil_print("%6s ", zLineNo);
507 z = mprintf("%s [%S] %s", zDate, zId, zCom);
 
 
 
 
 
 
 
508 comment_print(z, zCom, 7, width, get_comment_format());
509 fossil_free(z);
 
510 }
511 fossil_free(zLastBr);
512 db_finalize(&q);
513 }
514
515
--- src/descendants.c
+++ src/descendants.c
@@ -491,11 +491,13 @@
491 while( db_step(&q)==SQLITE_ROW ){
492 const char *zId = db_column_text(&q, 1);
493 const char *zDate = db_column_text(&q, 2);
494 const char *zCom = db_column_text(&q, 3);
495 const char *zBr = db_column_text(&q, 7);
496 char *z = 0;
497 int ridOfRoot = 0;
498 char * zBranchPoint = 0;
499
500 if( byBranch && fossil_strcmp(zBr, zLastBr)!=0 ){
501 fossil_print("*** %s ***\n", zBr);
502 fossil_free(zLastBr);
503 zLastBr = fossil_strdup(zBr);
@@ -502,13 +504,21 @@
504 if( multipleFlag ) n = 0;
505 }
506 n++;
507 sqlite3_snprintf(sizeof(zLineNo), zLineNo, "(%d)", n);
508 fossil_print("%6s ", zLineNo);
509 z = mprintf("root:%s", zId);
510 ridOfRoot = symbolic_name_to_rid(z, "ci");
511 if(ridOfRoot>0){
512 zBranchPoint = mprintf(" Branched from [%.*z]", hash_digits(0),
513 rid_to_uuid(ridOfRoot));
514 }
515 z = mprintf("%s [%S] %s%.*s", zDate, zId, zCom,
516 zBranchPoint ? zBranchPoint : 0);
517 comment_print(z, zCom, 7, width, get_comment_format());
518 fossil_free(z);
519 fossil_free(zBranchPoint);
520 }
521 fossil_free(zLastBr);
522 db_finalize(&q);
523 }
524
525

Keyboard Shortcuts

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