Fossil SCM
Add option -W|--width to "[/help?cmd=stash|fossil stash ls]" and "[/help?cmd=leaves|fossil leaves]" commands.
Commit
fa6ece72b6e55feeaee7ec31d4f4fd798d8b8389
Parent
3f487aca8a2ff5a…
6 files changed
+17
-6
+1
-1
+1
-1
+13
-3
+1
-1
+2
+17
-6
| --- src/descendants.c | ||
| +++ src/descendants.c | ||
| @@ -329,14 +329,16 @@ | ||
| 329 | 329 | ** |
| 330 | 330 | ** The --recompute flag causes the content of the "leaf" table in the |
| 331 | 331 | ** repository database to be recomputed. |
| 332 | 332 | ** |
| 333 | 333 | ** Options: |
| 334 | -** -a|--all show ALL leaves | |
| 335 | -** -c|--closed show only closed leaves | |
| 336 | -** --bybranch order output by branch name | |
| 337 | -** --recompute recompute the "leaf" table in the repository DB | |
| 334 | +** -a|--all show ALL leaves | |
| 335 | +** -c|--closed show only closed leaves | |
| 336 | +** --bybranch order output by branch name | |
| 337 | +** --recompute recompute the "leaf" table in the repository DB | |
| 338 | +** -W|--width <num> With of lines (default 79). Must be >39 or 0 | |
| 339 | +** (= no limit, resulting in a single line per entry). | |
| 338 | 340 | ** |
| 339 | 341 | ** See also: descendants, finfo, info, branch |
| 340 | 342 | */ |
| 341 | 343 | void leaves_cmd(void){ |
| 342 | 344 | Stmt q; |
| @@ -343,14 +345,23 @@ | ||
| 343 | 345 | Blob sql; |
| 344 | 346 | int showAll = find_option("all", "a", 0)!=0; |
| 345 | 347 | int showClosed = find_option("closed", "c", 0)!=0; |
| 346 | 348 | int recomputeFlag = find_option("recompute",0,0)!=0; |
| 347 | 349 | int byBranch = find_option("bybranch",0,0)!=0; |
| 350 | + const char *zWidth = find_option("width","W",1); | |
| 348 | 351 | char *zLastBr = 0; |
| 349 | - int n; | |
| 352 | + int n, width; | |
| 350 | 353 | char zLineNo[10]; |
| 351 | 354 | |
| 355 | + if( zWidth ){ | |
| 356 | + width = atoi(zWidth); | |
| 357 | + if( (width!=0) && (width<=39) ){ | |
| 358 | + fossil_fatal("-W|--width value must be >39 or 0"); | |
| 359 | + } | |
| 360 | + }else{ | |
| 361 | + width = 79; | |
| 362 | + } | |
| 352 | 363 | db_find_and_open_repository(0,0); |
| 353 | 364 | if( recomputeFlag ) leaf_rebuild(); |
| 354 | 365 | blob_zero(&sql); |
| 355 | 366 | blob_append(&sql, timeline_query_for_tty(), -1); |
| 356 | 367 | blob_appendf(&sql, " AND blob.rid IN leaf"); |
| @@ -382,11 +393,11 @@ | ||
| 382 | 393 | } |
| 383 | 394 | n++; |
| 384 | 395 | sqlite3_snprintf(sizeof(zLineNo), zLineNo, "(%d)", n); |
| 385 | 396 | fossil_print("%6s ", zLineNo); |
| 386 | 397 | z = mprintf("%s [%.10s] %s", zDate, zId, zCom); |
| 387 | - comment_print(z, 7, 79); | |
| 398 | + comment_print(z, 7, width); | |
| 388 | 399 | fossil_free(z); |
| 389 | 400 | } |
| 390 | 401 | fossil_free(zLastBr); |
| 391 | 402 | db_finalize(&q); |
| 392 | 403 | } |
| 393 | 404 |
| --- src/descendants.c | |
| +++ src/descendants.c | |
| @@ -329,14 +329,16 @@ | |
| 329 | ** |
| 330 | ** The --recompute flag causes the content of the "leaf" table in the |
| 331 | ** repository database to be recomputed. |
| 332 | ** |
| 333 | ** Options: |
| 334 | ** -a|--all show ALL leaves |
| 335 | ** -c|--closed show only closed leaves |
| 336 | ** --bybranch order output by branch name |
| 337 | ** --recompute recompute the "leaf" table in the repository DB |
| 338 | ** |
| 339 | ** See also: descendants, finfo, info, branch |
| 340 | */ |
| 341 | void leaves_cmd(void){ |
| 342 | Stmt q; |
| @@ -343,14 +345,23 @@ | |
| 343 | Blob sql; |
| 344 | int showAll = find_option("all", "a", 0)!=0; |
| 345 | int showClosed = find_option("closed", "c", 0)!=0; |
| 346 | int recomputeFlag = find_option("recompute",0,0)!=0; |
| 347 | int byBranch = find_option("bybranch",0,0)!=0; |
| 348 | char *zLastBr = 0; |
| 349 | int n; |
| 350 | char zLineNo[10]; |
| 351 | |
| 352 | db_find_and_open_repository(0,0); |
| 353 | if( recomputeFlag ) leaf_rebuild(); |
| 354 | blob_zero(&sql); |
| 355 | blob_append(&sql, timeline_query_for_tty(), -1); |
| 356 | blob_appendf(&sql, " AND blob.rid IN leaf"); |
| @@ -382,11 +393,11 @@ | |
| 382 | } |
| 383 | n++; |
| 384 | sqlite3_snprintf(sizeof(zLineNo), zLineNo, "(%d)", n); |
| 385 | fossil_print("%6s ", zLineNo); |
| 386 | z = mprintf("%s [%.10s] %s", zDate, zId, zCom); |
| 387 | comment_print(z, 7, 79); |
| 388 | fossil_free(z); |
| 389 | } |
| 390 | fossil_free(zLastBr); |
| 391 | db_finalize(&q); |
| 392 | } |
| 393 |
| --- src/descendants.c | |
| +++ src/descendants.c | |
| @@ -329,14 +329,16 @@ | |
| 329 | ** |
| 330 | ** The --recompute flag causes the content of the "leaf" table in the |
| 331 | ** repository database to be recomputed. |
| 332 | ** |
| 333 | ** Options: |
| 334 | ** -a|--all show ALL leaves |
| 335 | ** -c|--closed show only closed leaves |
| 336 | ** --bybranch order output by branch name |
| 337 | ** --recompute recompute the "leaf" table in the repository DB |
| 338 | ** -W|--width <num> With of lines (default 79). Must be >39 or 0 |
| 339 | ** (= no limit, resulting in a single line per entry). |
| 340 | ** |
| 341 | ** See also: descendants, finfo, info, branch |
| 342 | */ |
| 343 | void leaves_cmd(void){ |
| 344 | Stmt q; |
| @@ -343,14 +345,23 @@ | |
| 345 | Blob sql; |
| 346 | int showAll = find_option("all", "a", 0)!=0; |
| 347 | int showClosed = find_option("closed", "c", 0)!=0; |
| 348 | int recomputeFlag = find_option("recompute",0,0)!=0; |
| 349 | int byBranch = find_option("bybranch",0,0)!=0; |
| 350 | const char *zWidth = find_option("width","W",1); |
| 351 | char *zLastBr = 0; |
| 352 | int n, width; |
| 353 | char zLineNo[10]; |
| 354 | |
| 355 | if( zWidth ){ |
| 356 | width = atoi(zWidth); |
| 357 | if( (width!=0) && (width<=39) ){ |
| 358 | fossil_fatal("-W|--width value must be >39 or 0"); |
| 359 | } |
| 360 | }else{ |
| 361 | width = 79; |
| 362 | } |
| 363 | db_find_and_open_repository(0,0); |
| 364 | if( recomputeFlag ) leaf_rebuild(); |
| 365 | blob_zero(&sql); |
| 366 | blob_append(&sql, timeline_query_for_tty(), -1); |
| 367 | blob_appendf(&sql, " AND blob.rid IN leaf"); |
| @@ -382,11 +393,11 @@ | |
| 393 | } |
| 394 | n++; |
| 395 | sqlite3_snprintf(sizeof(zLineNo), zLineNo, "(%d)", n); |
| 396 | fossil_print("%6s ", zLineNo); |
| 397 | z = mprintf("%s [%.10s] %s", zDate, zId, zCom); |
| 398 | comment_print(z, 7, width); |
| 399 | fossil_free(z); |
| 400 | } |
| 401 | fossil_free(zLastBr); |
| 402 | db_finalize(&q); |
| 403 | } |
| 404 |
+1
-1
| --- src/finfo.c | ||
| +++ src/finfo.c | ||
| @@ -151,11 +151,11 @@ | ||
| 151 | 151 | iWidth = zWidth ? atoi(zWidth) : 79; |
| 152 | 152 | zOffset = find_option("offset",0,1); |
| 153 | 153 | iOffset = zOffset ? atoi(zOffset) : 0; |
| 154 | 154 | iBrief = (find_option("brief","b",0) == 0); |
| 155 | 155 | if( (iWidth!=0) && (iWidth<=22) ){ |
| 156 | - fossil_fatal("--width|-W value must be >22 or 0"); | |
| 156 | + fossil_fatal("-W|--width value must be >22 or 0"); | |
| 157 | 157 | } |
| 158 | 158 | if( g.argc!=3 ){ |
| 159 | 159 | usage("?-l|--log? ?-b|--brief? FILENAME"); |
| 160 | 160 | } |
| 161 | 161 | file_tree_name(g.argv[2], &fname, 1); |
| 162 | 162 |
| --- src/finfo.c | |
| +++ src/finfo.c | |
| @@ -151,11 +151,11 @@ | |
| 151 | iWidth = zWidth ? atoi(zWidth) : 79; |
| 152 | zOffset = find_option("offset",0,1); |
| 153 | iOffset = zOffset ? atoi(zOffset) : 0; |
| 154 | iBrief = (find_option("brief","b",0) == 0); |
| 155 | if( (iWidth!=0) && (iWidth<=22) ){ |
| 156 | fossil_fatal("--width|-W value must be >22 or 0"); |
| 157 | } |
| 158 | if( g.argc!=3 ){ |
| 159 | usage("?-l|--log? ?-b|--brief? FILENAME"); |
| 160 | } |
| 161 | file_tree_name(g.argv[2], &fname, 1); |
| 162 |
| --- src/finfo.c | |
| +++ src/finfo.c | |
| @@ -151,11 +151,11 @@ | |
| 151 | iWidth = zWidth ? atoi(zWidth) : 79; |
| 152 | zOffset = find_option("offset",0,1); |
| 153 | iOffset = zOffset ? atoi(zOffset) : 0; |
| 154 | iBrief = (find_option("brief","b",0) == 0); |
| 155 | if( (iWidth!=0) && (iWidth<=22) ){ |
| 156 | fossil_fatal("-W|--width value must be >22 or 0"); |
| 157 | } |
| 158 | if( g.argc!=3 ){ |
| 159 | usage("?-l|--log? ?-b|--brief? FILENAME"); |
| 160 | } |
| 161 | file_tree_name(g.argv[2], &fname, 1); |
| 162 |
+1
-1
| --- src/search.c | ||
| +++ src/search.c | ||
| @@ -199,11 +199,11 @@ | ||
| 199 | 199 | lines/entries to list */ |
| 200 | 200 | int width; |
| 201 | 201 | if( zWidth ){ |
| 202 | 202 | width = atoi(zWidth); |
| 203 | 203 | if( (width!=0) && (width<=20) ){ |
| 204 | - fossil_fatal("--width|-W value must be >20 or 0"); | |
| 204 | + fossil_fatal("-W|--width value must be >20 or 0"); | |
| 205 | 205 | } |
| 206 | 206 | }else{ |
| 207 | 207 | width = 79; |
| 208 | 208 | } |
| 209 | 209 | |
| 210 | 210 |
| --- src/search.c | |
| +++ src/search.c | |
| @@ -199,11 +199,11 @@ | |
| 199 | lines/entries to list */ |
| 200 | int width; |
| 201 | if( zWidth ){ |
| 202 | width = atoi(zWidth); |
| 203 | if( (width!=0) && (width<=20) ){ |
| 204 | fossil_fatal("--width|-W value must be >20 or 0"); |
| 205 | } |
| 206 | }else{ |
| 207 | width = 79; |
| 208 | } |
| 209 | |
| 210 |
| --- src/search.c | |
| +++ src/search.c | |
| @@ -199,11 +199,11 @@ | |
| 199 | lines/entries to list */ |
| 200 | int width; |
| 201 | if( zWidth ){ |
| 202 | width = atoi(zWidth); |
| 203 | if( (width!=0) && (width<=20) ){ |
| 204 | fossil_fatal("-W|--width value must be >20 or 0"); |
| 205 | } |
| 206 | }else{ |
| 207 | width = 79; |
| 208 | } |
| 209 | |
| 210 |
+13
-3
| --- src/stash.c | ||
| +++ src/stash.c | ||
| @@ -463,11 +463,11 @@ | ||
| 463 | 463 | ** |
| 464 | 464 | ** SUMMARY: |
| 465 | 465 | ** fossil stash |
| 466 | 466 | ** fossil stash save ?-m|--comment COMMENT? ?FILES...? |
| 467 | 467 | ** fossil stash snapshot ?-m|--comment COMMENT? ?FILES...? |
| 468 | -** fossil stash list|ls ?-v|--verbose? | |
| 468 | +** fossil stash list|ls ?-v|--verbose? ?-W|--width <num>? | |
| 469 | 469 | ** fossil stash show ?STASHID? ?DIFF-OPTIONS? |
| 470 | 470 | ** fossil stash pop |
| 471 | 471 | ** fossil stash apply ?STASHID? |
| 472 | 472 | ** fossil stash goto ?STASHID? |
| 473 | 473 | ** fossil stash rm|drop ?STASHID? ?-a|--all? |
| @@ -516,12 +516,22 @@ | ||
| 516 | 516 | if( memcmp(zCmd, "snapshot", nCmd)==0 ){ |
| 517 | 517 | stash_create(); |
| 518 | 518 | }else |
| 519 | 519 | if( memcmp(zCmd, "list", nCmd)==0 || memcmp(zCmd, "ls", nCmd)==0 ){ |
| 520 | 520 | Stmt q, q2; |
| 521 | - int n = 0; | |
| 521 | + int n = 0, width; | |
| 522 | 522 | int verboseFlag = find_option("verbose","v",0)!=0; |
| 523 | + const char *zWidth = find_option("width","W",1); | |
| 524 | + | |
| 525 | + if( zWidth ){ | |
| 526 | + width = atoi(zWidth); | |
| 527 | + if( (width!=0) && (width<=46) ){ | |
| 528 | + fossil_fatal("-W|--width value must be >46 or 0"); | |
| 529 | + } | |
| 530 | + }else{ | |
| 531 | + width = 79; | |
| 532 | + } | |
| 523 | 533 | if( !verboseFlag ){ |
| 524 | 534 | verboseFlag = find_option("detail","l",0)!=0; /* deprecated */ |
| 525 | 535 | } |
| 526 | 536 | verify_all_options(); |
| 527 | 537 | db_prepare(&q, |
| @@ -543,11 +553,11 @@ | ||
| 543 | 553 | db_column_text(&q, 3) |
| 544 | 554 | ); |
| 545 | 555 | zCom = db_column_text(&q, 2); |
| 546 | 556 | if( zCom && zCom[0] ){ |
| 547 | 557 | fossil_print(" "); |
| 548 | - comment_print(zCom, 7, 79); | |
| 558 | + comment_print(zCom, 7, width); | |
| 549 | 559 | } |
| 550 | 560 | if( verboseFlag ){ |
| 551 | 561 | db_bind_int(&q2, "$id", stashid); |
| 552 | 562 | while( db_step(&q2)==SQLITE_ROW ){ |
| 553 | 563 | int isAdded = db_column_int(&q2, 0); |
| 554 | 564 |
| --- src/stash.c | |
| +++ src/stash.c | |
| @@ -463,11 +463,11 @@ | |
| 463 | ** |
| 464 | ** SUMMARY: |
| 465 | ** fossil stash |
| 466 | ** fossil stash save ?-m|--comment COMMENT? ?FILES...? |
| 467 | ** fossil stash snapshot ?-m|--comment COMMENT? ?FILES...? |
| 468 | ** fossil stash list|ls ?-v|--verbose? |
| 469 | ** fossil stash show ?STASHID? ?DIFF-OPTIONS? |
| 470 | ** fossil stash pop |
| 471 | ** fossil stash apply ?STASHID? |
| 472 | ** fossil stash goto ?STASHID? |
| 473 | ** fossil stash rm|drop ?STASHID? ?-a|--all? |
| @@ -516,12 +516,22 @@ | |
| 516 | if( memcmp(zCmd, "snapshot", nCmd)==0 ){ |
| 517 | stash_create(); |
| 518 | }else |
| 519 | if( memcmp(zCmd, "list", nCmd)==0 || memcmp(zCmd, "ls", nCmd)==0 ){ |
| 520 | Stmt q, q2; |
| 521 | int n = 0; |
| 522 | int verboseFlag = find_option("verbose","v",0)!=0; |
| 523 | if( !verboseFlag ){ |
| 524 | verboseFlag = find_option("detail","l",0)!=0; /* deprecated */ |
| 525 | } |
| 526 | verify_all_options(); |
| 527 | db_prepare(&q, |
| @@ -543,11 +553,11 @@ | |
| 543 | db_column_text(&q, 3) |
| 544 | ); |
| 545 | zCom = db_column_text(&q, 2); |
| 546 | if( zCom && zCom[0] ){ |
| 547 | fossil_print(" "); |
| 548 | comment_print(zCom, 7, 79); |
| 549 | } |
| 550 | if( verboseFlag ){ |
| 551 | db_bind_int(&q2, "$id", stashid); |
| 552 | while( db_step(&q2)==SQLITE_ROW ){ |
| 553 | int isAdded = db_column_int(&q2, 0); |
| 554 |
| --- src/stash.c | |
| +++ src/stash.c | |
| @@ -463,11 +463,11 @@ | |
| 463 | ** |
| 464 | ** SUMMARY: |
| 465 | ** fossil stash |
| 466 | ** fossil stash save ?-m|--comment COMMENT? ?FILES...? |
| 467 | ** fossil stash snapshot ?-m|--comment COMMENT? ?FILES...? |
| 468 | ** fossil stash list|ls ?-v|--verbose? ?-W|--width <num>? |
| 469 | ** fossil stash show ?STASHID? ?DIFF-OPTIONS? |
| 470 | ** fossil stash pop |
| 471 | ** fossil stash apply ?STASHID? |
| 472 | ** fossil stash goto ?STASHID? |
| 473 | ** fossil stash rm|drop ?STASHID? ?-a|--all? |
| @@ -516,12 +516,22 @@ | |
| 516 | if( memcmp(zCmd, "snapshot", nCmd)==0 ){ |
| 517 | stash_create(); |
| 518 | }else |
| 519 | if( memcmp(zCmd, "list", nCmd)==0 || memcmp(zCmd, "ls", nCmd)==0 ){ |
| 520 | Stmt q, q2; |
| 521 | int n = 0, width; |
| 522 | int verboseFlag = find_option("verbose","v",0)!=0; |
| 523 | const char *zWidth = find_option("width","W",1); |
| 524 | |
| 525 | if( zWidth ){ |
| 526 | width = atoi(zWidth); |
| 527 | if( (width!=0) && (width<=46) ){ |
| 528 | fossil_fatal("-W|--width value must be >46 or 0"); |
| 529 | } |
| 530 | }else{ |
| 531 | width = 79; |
| 532 | } |
| 533 | if( !verboseFlag ){ |
| 534 | verboseFlag = find_option("detail","l",0)!=0; /* deprecated */ |
| 535 | } |
| 536 | verify_all_options(); |
| 537 | db_prepare(&q, |
| @@ -543,11 +553,11 @@ | |
| 553 | db_column_text(&q, 3) |
| 554 | ); |
| 555 | zCom = db_column_text(&q, 2); |
| 556 | if( zCom && zCom[0] ){ |
| 557 | fossil_print(" "); |
| 558 | comment_print(zCom, 7, width); |
| 559 | } |
| 560 | if( verboseFlag ){ |
| 561 | db_bind_int(&q2, "$id", stashid); |
| 562 | while( db_step(&q2)==SQLITE_ROW ){ |
| 563 | int isAdded = db_column_int(&q2, 0); |
| 564 |
+1
-1
| --- src/timeline.c | ||
| +++ src/timeline.c | ||
| @@ -1775,11 +1775,11 @@ | ||
| 1775 | 1775 | n = -20; |
| 1776 | 1776 | } |
| 1777 | 1777 | if( zWidth ){ |
| 1778 | 1778 | width = atoi(zWidth); |
| 1779 | 1779 | if( (width!=0) && (width<=20) ){ |
| 1780 | - fossil_fatal("--width|-W value must be >20 or 0"); | |
| 1780 | + fossil_fatal("-W|--width value must be >20 or 0"); | |
| 1781 | 1781 | } |
| 1782 | 1782 | }else{ |
| 1783 | 1783 | width = 79; |
| 1784 | 1784 | } |
| 1785 | 1785 | zOffset = find_option("offset",0,1); |
| 1786 | 1786 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -1775,11 +1775,11 @@ | |
| 1775 | n = -20; |
| 1776 | } |
| 1777 | if( zWidth ){ |
| 1778 | width = atoi(zWidth); |
| 1779 | if( (width!=0) && (width<=20) ){ |
| 1780 | fossil_fatal("--width|-W value must be >20 or 0"); |
| 1781 | } |
| 1782 | }else{ |
| 1783 | width = 79; |
| 1784 | } |
| 1785 | zOffset = find_option("offset",0,1); |
| 1786 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -1775,11 +1775,11 @@ | |
| 1775 | n = -20; |
| 1776 | } |
| 1777 | if( zWidth ){ |
| 1778 | width = atoi(zWidth); |
| 1779 | if( (width!=0) && (width<=20) ){ |
| 1780 | fossil_fatal("-W|--width value must be >20 or 0"); |
| 1781 | } |
| 1782 | }else{ |
| 1783 | width = 79; |
| 1784 | } |
| 1785 | zOffset = find_option("offset",0,1); |
| 1786 |
+2
| --- www/changes.wiki | ||
| +++ www/changes.wiki | ||
| @@ -43,10 +43,12 @@ | ||
| 43 | 43 | * Enhance the [/help?cmd=test-diff|fossil test-diff] command with -y or --tk |
| 44 | 44 | options so that it shows both filenames above their respective columns in |
| 45 | 45 | the side-by-side diff output. |
| 46 | 46 | * Issue a warning if a [/help?cmd=add|fossil add] command tries to add a file |
| 47 | 47 | that matches the ignore-glob. |
| 48 | + * Add option -W|--width to "[/help?cmd=stash|fossil stash ls]" | |
| 49 | + and "[/help?cmd=leaves|fossil leaves]" commands. | |
| 48 | 50 | |
| 49 | 51 | <h2>Changes For Version 1.28 (2014-01-27)</h2> |
| 50 | 52 | * Enhance [/help?cmd=/reports | /reports] to support event type filtering. |
| 51 | 53 | * When cloning a repository, the user name passed via the URL (if any) |
| 52 | 54 | is now used as the default local admin user's name. |
| 53 | 55 |
| --- www/changes.wiki | |
| +++ www/changes.wiki | |
| @@ -43,10 +43,12 @@ | |
| 43 | * Enhance the [/help?cmd=test-diff|fossil test-diff] command with -y or --tk |
| 44 | options so that it shows both filenames above their respective columns in |
| 45 | the side-by-side diff output. |
| 46 | * Issue a warning if a [/help?cmd=add|fossil add] command tries to add a file |
| 47 | that matches the ignore-glob. |
| 48 | |
| 49 | <h2>Changes For Version 1.28 (2014-01-27)</h2> |
| 50 | * Enhance [/help?cmd=/reports | /reports] to support event type filtering. |
| 51 | * When cloning a repository, the user name passed via the URL (if any) |
| 52 | is now used as the default local admin user's name. |
| 53 |
| --- www/changes.wiki | |
| +++ www/changes.wiki | |
| @@ -43,10 +43,12 @@ | |
| 43 | * Enhance the [/help?cmd=test-diff|fossil test-diff] command with -y or --tk |
| 44 | options so that it shows both filenames above their respective columns in |
| 45 | the side-by-side diff output. |
| 46 | * Issue a warning if a [/help?cmd=add|fossil add] command tries to add a file |
| 47 | that matches the ignore-glob. |
| 48 | * Add option -W|--width to "[/help?cmd=stash|fossil stash ls]" |
| 49 | and "[/help?cmd=leaves|fossil leaves]" commands. |
| 50 | |
| 51 | <h2>Changes For Version 1.28 (2014-01-27)</h2> |
| 52 | * Enhance [/help?cmd=/reports | /reports] to support event type filtering. |
| 53 | * When cloning a repository, the user name passed via the URL (if any) |
| 54 | is now used as the default local admin user's name. |
| 55 |