Fossil SCM

branch hide/unhide subcommands now skip over checkins which have resp. don't have the hidden tag.

stephan 2021-07-23 02:44 branch-close-subcommand
Commit 768f30ffb7b22674b02ad020bc12ed38b549b102ffc4429a8206f75f9c5336a4
2 files changed +8 +14
--- src/branch.c
+++ src/branch.c
@@ -480,13 +480,21 @@
480480
verify_all_options();
481481
db_begin_transaction();
482482
for( ; argPos < g.argc; fossil_free(zUuid), ++argPos ){
483483
const char * zName = g.argv[argPos];
484484
const int rid = branch_resolve_name(zName, &zUuid);
485
+ const int isHidden = tag_has(rid, TAG_HIDDEN);
485486
/* Potential TODO: check for existing 'hidden' flag and skip this
486487
** entry if it already has (if fHide) or does not have (if !fHide)
487488
** that tag. FWIW, /ci_edit does not do so. */
489
+ if(fHide && isHidden){
490
+ fossil_warning("Skipping hidden checkin %s: %s.", zName, zUuid);
491
+ continue;
492
+ }else if(!fHide && !isHidden){
493
+ fossil_warning("Skipping non-hidden checkin %s: %s.", zName, zUuid);
494
+ continue;
495
+ }
488496
branch_cmd_tag_add(rid, fHide ? "*hidden" : "-hidden");
489497
if(fVerbose!=0){
490498
fossil_print("%s checkin [%s] %s\n",
491499
fHide ? "Hiding" : "Unhiding",
492500
zName, zUuid);
493501
--- src/branch.c
+++ src/branch.c
@@ -480,13 +480,21 @@
480 verify_all_options();
481 db_begin_transaction();
482 for( ; argPos < g.argc; fossil_free(zUuid), ++argPos ){
483 const char * zName = g.argv[argPos];
484 const int rid = branch_resolve_name(zName, &zUuid);
 
485 /* Potential TODO: check for existing 'hidden' flag and skip this
486 ** entry if it already has (if fHide) or does not have (if !fHide)
487 ** that tag. FWIW, /ci_edit does not do so. */
 
 
 
 
 
 
 
488 branch_cmd_tag_add(rid, fHide ? "*hidden" : "-hidden");
489 if(fVerbose!=0){
490 fossil_print("%s checkin [%s] %s\n",
491 fHide ? "Hiding" : "Unhiding",
492 zName, zUuid);
493
--- src/branch.c
+++ src/branch.c
@@ -480,13 +480,21 @@
480 verify_all_options();
481 db_begin_transaction();
482 for( ; argPos < g.argc; fossil_free(zUuid), ++argPos ){
483 const char * zName = g.argv[argPos];
484 const int rid = branch_resolve_name(zName, &zUuid);
485 const int isHidden = tag_has(rid, TAG_HIDDEN);
486 /* Potential TODO: check for existing 'hidden' flag and skip this
487 ** entry if it already has (if fHide) or does not have (if !fHide)
488 ** that tag. FWIW, /ci_edit does not do so. */
489 if(fHide && isHidden){
490 fossil_warning("Skipping hidden checkin %s: %s.", zName, zUuid);
491 continue;
492 }else if(!fHide && !isHidden){
493 fossil_warning("Skipping non-hidden checkin %s: %s.", zName, zUuid);
494 continue;
495 }
496 branch_cmd_tag_add(rid, fHide ? "*hidden" : "-hidden");
497 if(fVerbose!=0){
498 fossil_print("%s checkin [%s] %s\n",
499 fHide ? "Hiding" : "Unhiding",
500 zName, zUuid);
501
+14
--- src/tag.c
+++ src/tag.c
@@ -889,5 +889,19 @@
889889
www_print_timeline(&q, tmFlags, 0, 0, 0, 0, 0, 0);
890890
db_finalize(&q);
891891
@ <br />
892892
style_finish_page();
893893
}
894
+
895
+/*
896
+** Returns true if the given blob.rid value has the given tag ID
897
+** applied to it, else false.
898
+*/
899
+int tag_has(int rid, int tagId){
900
+ return db_exists(
901
+ "SELECT tag.tagid FROM tagxref, tag"
902
+ " WHERE tagxref.rid=%d AND tagtype>0 "
903
+ " AND tag.tagid=%d"
904
+ " AND tagxref.tagid=tag.tagid",
905
+ rid, tagId
906
+ );
907
+}
894908
--- src/tag.c
+++ src/tag.c
@@ -889,5 +889,19 @@
889 www_print_timeline(&q, tmFlags, 0, 0, 0, 0, 0, 0);
890 db_finalize(&q);
891 @ <br />
892 style_finish_page();
893 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
894
--- src/tag.c
+++ src/tag.c
@@ -889,5 +889,19 @@
889 www_print_timeline(&q, tmFlags, 0, 0, 0, 0, 0, 0);
890 db_finalize(&q);
891 @ <br />
892 style_finish_page();
893 }
894
895 /*
896 ** Returns true if the given blob.rid value has the given tag ID
897 ** applied to it, else false.
898 */
899 int tag_has(int rid, int tagId){
900 return db_exists(
901 "SELECT tag.tagid FROM tagxref, tag"
902 " WHERE tagxref.rid=%d AND tagtype>0 "
903 " AND tag.tagid=%d"
904 " AND tagxref.tagid=tag.tagid",
905 rid, tagId
906 );
907 }
908

Keyboard Shortcuts

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