Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add an option to the 'timeline' command to display only items on a specific branch. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | timeline-cmd-by-branch |
Files: | files | file ages | folders |
SHA3-256: |
32b11546c830e3285a0322c7469c550d |
User & Date: | danield 2022-05-11 20:51:29 |
Context
2022-06-17
| ||
09:49 | Merged in trunk. ... (Closed-Leaf check-in: 20c1ba2e user: danield tags: timeline-cmd-by-branch) | |
2022-05-11
| ||
20:51 | Add an option to the 'timeline' command to display only items on a specific branch. ... (check-in: 32b11546 user: danield tags: timeline-cmd-by-branch) | |
15:42 | Fix remote-url overwriting by proxy url bug and use the http_proxy environment variable only when explicitly requested by setting the proxy setting to "system". ... (check-in: a791d5e8 user: mgagnon tags: trunk) | |
Changes
Changes to src/timeline.c.
︙ | ︙ | |||
3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 | ** year-month-day form, it may be truncated, the "T" may be replaced by ** a space, and it may also name a timezone offset from UTC as "-HH:MM" ** (westward) or "+HH:MM" (eastward). Either no timezone suffix or "Z" ** means UTC. ** ** ** Options: ** -F|--format Entry format. Values "oneline", "medium", and "full" ** get mapped to the full options below. Otherwise a ** string which can contain these placeholders: ** %n newline ** %% a raw % ** %H commit hash ** %h abbreviated commit hash ** %a author name ** %d date ** %c comment (NL, TAB replaced by space, LF deleted) ** %b branch ** %t tags ** %p phase: zero or more of *CURRENT*, *MERGE*, ** *FORK*, *UNPUBLISHED*, *LEAF*, *BRANCH* ** --oneline Show only short hash and comment for each entry ** --medium Medium-verbose entry formatting ** --full Extra verbose entry formatting | > > < < | 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 | ** year-month-day form, it may be truncated, the "T" may be replaced by ** a space, and it may also name a timezone offset from UTC as "-HH:MM" ** (westward) or "+HH:MM" (eastward). Either no timezone suffix or "Z" ** means UTC. ** ** ** Options: ** -b|--branch BRANCH Show only items on the branch named BRANCH ** -c|--current-branch Show only items on the current branch ** -F|--format Entry format. Values "oneline", "medium", and "full" ** get mapped to the full options below. Otherwise a ** string which can contain these placeholders: ** %n newline ** %% a raw % ** %H commit hash ** %h abbreviated commit hash ** %a author name ** %d date ** %c comment (NL, TAB replaced by space, LF deleted) ** %b branch ** %t tags ** %p phase: zero or more of *CURRENT*, *MERGE*, ** *FORK*, *UNPUBLISHED*, *LEAF*, *BRANCH* ** --oneline Show only short hash and comment for each entry ** --medium Medium-verbose entry formatting ** --full Extra verbose entry formatting ** -n|--limit N If N is positive, output the first N entries. If ** N is negative, output the first -N lines. If N is ** zero, no limit. Default is -20 meaning 20 lines. ** --offset P skip P changes ** -p|--path PATH Output items affecting PATH only. ** PATH can be a file or a sub directory. ** -R REPO_FILE Specifies the repository db to use. Default is ** the current checkout's repository. ** --sql Show the SQL used to generate the timeline ** -t|--type TYPE Output items from the given types only, such as: ** ci = file commits only ** e = technical notes only ** f = forum posts only ** t = tickets only ** w = wiki commits only |
︙ | ︙ | |||
3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 | int objid = 0; Blob uuid; int mode = TIMELINE_MODE_NONE; int verboseFlag = 0 ; int iOffset; const char *zFilePattern = 0; const char *zFormat = 0; Blob treeName; int showSql = 0; verboseFlag = find_option("verbose","v", 0)!=0; if( !verboseFlag){ verboseFlag = find_option("showfiles","f", 0)!=0; /* deprecated */ } db_find_and_open_repository(0, 0); zLimit = find_option("limit","n",1); zWidth = find_option("width","W",1); zType = find_option("type","t",1); zFilePattern = find_option("path","p",1); zFormat = find_option("format","F",1); if( find_option("oneline",0,0)!= 0 || fossil_strcmp(zFormat,"oneline")==0 ) zFormat = "%h %c"; if( find_option("medium",0,0)!= 0 || fossil_strcmp(zFormat,"medium")==0 ) zFormat = "Commit: %h%nDate: %d%nAuthor: %a%nComment: %c%n"; if( find_option("full",0,0)!= 0 || fossil_strcmp(zFormat,"full")==0 ) zFormat = "Commit: %H%nDate: %d%nAuthor: %a%nComment: %c%n" "Branch: %b%nTags: %t%nPhase: %p%n"; | > > > > > > > > > > > | 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 | int objid = 0; Blob uuid; int mode = TIMELINE_MODE_NONE; int verboseFlag = 0 ; int iOffset; const char *zFilePattern = 0; const char *zFormat = 0; const char *zBr = 0; Blob treeName; int showSql = 0; verboseFlag = find_option("verbose","v", 0)!=0; if( !verboseFlag){ verboseFlag = find_option("showfiles","f", 0)!=0; /* deprecated */ } db_find_and_open_repository(0, 0); zLimit = find_option("limit","n",1); zWidth = find_option("width","W",1); zType = find_option("type","t",1); zFilePattern = find_option("path","p",1); zFormat = find_option("format","F",1); zBr = find_option("branch","b",1); if( find_option("current-branch","c",0)!=0 ){ if( !g.localOpen ){ fossil_fatal("not within an open checkout"); }else{ int vid = db_lget_int("checkout", 0); zBr = db_text(0, "SELECT value FROM tagxref WHERE rid=%d AND tagid=%d", vid, TAG_BRANCH); } } if( find_option("oneline",0,0)!= 0 || fossil_strcmp(zFormat,"oneline")==0 ) zFormat = "%h %c"; if( find_option("medium",0,0)!= 0 || fossil_strcmp(zFormat,"medium")==0 ) zFormat = "Commit: %h%nDate: %d%nAuthor: %a%nComment: %c%n"; if( find_option("full",0,0)!= 0 || fossil_strcmp(zFormat,"full")==0 ) zFormat = "Commit: %H%nDate: %d%nAuthor: %a%nComment: %c%n" "Branch: %b%nTags: %t%nPhase: %p%n"; |
︙ | ︙ | |||
3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 | "(SELECT fnid FROM filename" " WHERE name=%Q COLLATE nocase" " OR lower(name) GLOB lower('%q/*'))", blob_str(&treeName), blob_str(&treeName)); } blob_append(&sql, ")", -1); } blob_append_sql(&sql, "\nORDER BY event.mtime DESC"); if( iOffset>0 ){ /* Don't handle LIMIT here, otherwise print_timeline() * will not determine the end-marker correctly! */ blob_append_sql(&sql, "\n LIMIT -1 OFFSET %d", iOffset); } if( showSql ){ | > > > > > > > > > > > > > > > > > > > > > | 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 | "(SELECT fnid FROM filename" " WHERE name=%Q COLLATE nocase" " OR lower(name) GLOB lower('%q/*'))", blob_str(&treeName), blob_str(&treeName)); } blob_append(&sql, ")", -1); } if( zBr ){ blob_append_sql(&sql, "\n AND blob.rid IN (\n" /* Commits */ " SELECT rid FROM tagxref NATURAL JOIN tag\n" " WHERE tagtype>0 AND tagname='sym-%q'\n" " UNION\n" /* Tags */ " SELECT srcid FROM tagxref WHERE origid IN (\n" " SELECT rid FROM tagxref NATURAL JOIN tag\n" " WHERE tagname='sym-%q')\n" " UNION\n" /* Branch wikis */ " SELECT objid FROM event WHERE comment LIKE '_branch/%q'\n" " UNION\n" /* Checkin wikis */ " SELECT e.objid FROM event e\n" " INNER JOIN blob b ON b.uuid=substr(e.comment, 10)\n" " AND e.comment LIKE '_checkin/%%'\n" " LEFT JOIN tagxref tx ON tx.rid=b.rid AND tx.tagid=%d\n" " WHERE tx.value='%q'\n" ")\n" /* No merge closures */ " AND (tagxref.value IS NULL OR tagxref.value='%q')", zBr, zBr, zBr, TAG_BRANCH, zBr, zBr); } blob_append_sql(&sql, "\nORDER BY event.mtime DESC"); if( iOffset>0 ){ /* Don't handle LIMIT here, otherwise print_timeline() * will not determine the end-marker correctly! */ blob_append_sql(&sql, "\n LIMIT -1 OFFSET %d", iOffset); } if( showSql ){ |
︙ | ︙ |