@@ -625,10 +625,11 @@
625 625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** c=TIMESTAMP "circa" this date.
626 626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** n=COUNT number of events in output
627 627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** p=RID artifact RID and up to COUNT parents and ancestors
628 628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** d=RID artifact RID and up to COUNT descendants
629 629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** t=TAGID show only check-ins with the given tagid
630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** r=TAGID show check-ins related to tagid
630 631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** u=USER only if belonging to this user
631 632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** y=TYPE 'ci', 'w', 't'
632 633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** s=TEXT string search (comment and brief)
633 634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ng Suppress the graph if present
634 635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -651,10 +652,11 @@
651 652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zType = PD("y","all"); /* Type of events. All if NULL */
652 653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zAfter = P("a"); /* Events after this time */
653 654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zBefore = P("b"); /* Events before this time */
654 655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zCirca = P("c"); /* Events near this time */
655 656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zTagName = P("t"); /* Show events with this tag */
657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zBrName = P("r"); /* Show events related to this tag */
656 658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zSearch = P("s"); /* Search string */
657 659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
HQuery url; /* URL for various branch links */
658 660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int tagid; /* Tag ID */
659 661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int tmFlags; /* Timeline flags */
660 662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -662,10 +664,12 @@
662 664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
663 665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
login_check_credentials();
664 666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !g.okRead && !g.okRdTkt && !g.okRdWiki ){ login_needed(); return; }
665 667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zTagName && g.okRead ){
666 668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
tagid = db_int(0, "SELECT tagid FROM tag WHERE tagname='sym-%q'", zTagName);
669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( zBrName && g.okRead ){
670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ tagid = db_int(0, "SELECT tagid FROM tag WHERE tagname='sym-%q'",zBrName);
667 671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
668 672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
tagid = 0;
669 673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
670 674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zType[0]=='a' ){
671 675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
tmFlags = TIMELINE_BRIEF | TIMELINE_GRAPH;
@@ -740,14 +744,32 @@
740 744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zNEntry = mprintf("%d", nEntry);
741 745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
url_initialize(&url, "timeline");
742 746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
url_add_parameter(&url, "n", zNEntry);
743 747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( tagid>0 ){
744 748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zType = "ci";
745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- url_add_parameter(&url, "t", zTagName);
746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(&sql, " AND EXISTS (SELECT 1 FROM tagxref WHERE tagid=%d"
747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- " AND tagtype>0 AND rid=blob.rid)",
748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- tagid);
749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&sql,
750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "AND (EXISTS(SELECT 1 FROM tagxref"
751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " WHERE tagid=%d AND tagtype>0 AND rid=blob.rid)", tagid);
752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zBrName ){
754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* The next two blob_appendf() calls add SQL that causes checkins that
755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** are not part of the branch which are parents or childen of the branch
756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** to be included in the report. This related check-ins are useful
757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** in helping to visualize what has happened on a quiescent branch
758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** that is infrequently merged with a much more activate branch.
759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ url_add_parameter(&url, "r", zBrName);
761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&sql,
762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " OR EXISTS(SELECT 1 FROM plink JOIN tagxref ON rid=cid"
763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " WHERE tagid=%d AND tagtype>0 AND pid=blob.rid)", tagid);
764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&sql,
765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " OR EXISTS(SELECT 1 FROM plink JOIN tagxref ON rid=pid"
766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " WHERE tagid=%d AND tagtype>0 AND cid=blob.rid)", tagid);
767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ url_add_parameter(&url, "t", zTagName);
769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&sql, ")");
749 771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
750 772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (zType[0]=='w' && !g.okRdWiki)
751 773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| (zType[0]=='t' && !g.okRdTkt)
752 774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| (zType[0]=='c' && !g.okRead)
753 775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
@@ -852,13 +874,16 @@
852 874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
853 875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zUser ){
854 876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&desc, " by user %h", zUser);
855 877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
tmFlags |= TIMELINE_DISJOINT;
856 878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( tagid>0 ){
879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zTagName ){
858 880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&desc, " tagged with \"%h\"", zTagName);
859 881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
tmFlags |= TIMELINE_DISJOINT;
882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( zBrName ){
883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&desc, " related to \"%h\"", zBrName);
884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ tmFlags |= TIMELINE_DISJOINT;
860 885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
861 886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zAfter ){
862 887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&desc, " occurring on or after %h.<br>", zAfter);
863 888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( zBefore ){
864 889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&desc, " occurring on or before %h.<br>", zBefore);
865 890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!