Fossil SCM
Merge recent trunk enhancements.
Commit
f6d4a2bfe3b4838ba043fd48d27f5d043ac36afa
Parent
71a50a1dd7de3fb…
40 files changed
+4
-4
+6
+6
+1
-1
+12
-6
+1
-1
+1
-1
+1
-1
+8
-2
+1
-1
+1
-1
+8
-3
+8
-3
+2
-2
+4
-4
+1
-1
+7
-2
+1
-1
+20
-1
+1
-1
+3
-3
+1
-1
+3
-3
+2
-2
+2
-2
+32
-12
+3
-3
+8
-2
+10
-2
+10
-2
+2
-2
+9
-4
+6
+12
+12
+1
-1
+5
+17
+2
-1
+2
~
auto.def
~
src/attach.c
~
src/branch.c
~
src/bundle.c
~
src/checkin.c
~
src/clone.c
~
src/content.c
~
src/content.c
~
src/db.c
~
src/delta.c
~
src/descendants.c
~
src/doc.c
~
src/doc.c
~
src/encode.c
~
src/event.c
~
src/file.c
~
src/finfo.c
~
src/foci.c
~
src/info.c
~
src/loadctrl.c
~
src/main.c
~
src/md5.c
~
src/name.c
~
src/purge.c
~
src/rebuild.c
~
src/sqlite3.c
~
src/sqlite3.h
~
src/stat.c
~
src/sync.c
~
src/sync.c
~
src/tag.c
~
src/timeline.c
~
src/wiki.c
~
src/xfer.c
~
src/xfer.c
~
src/zip.c
~
www/changes.wiki
~
www/childprojects.wiki
~
www/mkindex.tcl
~
www/permutedindex.html
M
auto.def
+4
-4
| --- auto.def | ||
| +++ auto.def | ||
| @@ -88,17 +88,17 @@ | ||
| 88 | 88 | # the code below will append -ldl to LIBS. |
| 89 | 89 | # |
| 90 | 90 | foreach extralibs {{} {-ldl}} { |
| 91 | 91 | |
| 92 | 92 | # Locate the system SQLite by searching for sqlite3_open(). Then check |
| 93 | - # if sqlite3_strlike() can be found as well. If we can find open() but | |
| 94 | - # not strlike(), then the system SQLite is too old to link against | |
| 93 | + # if sqlite3_trace_v2() can be found as well. If we can find open() but | |
| 94 | + # not trace_v2(), then the system SQLite is too old to link against | |
| 95 | 95 | # fossil. |
| 96 | 96 | # |
| 97 | 97 | if {[check-function-in-lib sqlite3_open sqlite3 $extralibs]} { |
| 98 | - if {![check-function-in-lib sqlite3_strlike sqlite3 $extralibs]} { | |
| 99 | - user-error "system sqlite3 too old (require >= 3.10.0)" | |
| 98 | + if {![check-function-in-lib sqlite3_trace_v2 sqlite3 $extralibs]} { | |
| 99 | + user-error "system sqlite3 too old (require >= 3.14.0)" | |
| 100 | 100 | } |
| 101 | 101 | |
| 102 | 102 | # Success. Update symbols and return. |
| 103 | 103 | # |
| 104 | 104 | define USE_SYSTEM_SQLITE 1 |
| 105 | 105 |
| --- auto.def | |
| +++ auto.def | |
| @@ -88,17 +88,17 @@ | |
| 88 | # the code below will append -ldl to LIBS. |
| 89 | # |
| 90 | foreach extralibs {{} {-ldl}} { |
| 91 | |
| 92 | # Locate the system SQLite by searching for sqlite3_open(). Then check |
| 93 | # if sqlite3_strlike() can be found as well. If we can find open() but |
| 94 | # not strlike(), then the system SQLite is too old to link against |
| 95 | # fossil. |
| 96 | # |
| 97 | if {[check-function-in-lib sqlite3_open sqlite3 $extralibs]} { |
| 98 | if {![check-function-in-lib sqlite3_strlike sqlite3 $extralibs]} { |
| 99 | user-error "system sqlite3 too old (require >= 3.10.0)" |
| 100 | } |
| 101 | |
| 102 | # Success. Update symbols and return. |
| 103 | # |
| 104 | define USE_SYSTEM_SQLITE 1 |
| 105 |
| --- auto.def | |
| +++ auto.def | |
| @@ -88,17 +88,17 @@ | |
| 88 | # the code below will append -ldl to LIBS. |
| 89 | # |
| 90 | foreach extralibs {{} {-ldl}} { |
| 91 | |
| 92 | # Locate the system SQLite by searching for sqlite3_open(). Then check |
| 93 | # if sqlite3_trace_v2() can be found as well. If we can find open() but |
| 94 | # not trace_v2(), then the system SQLite is too old to link against |
| 95 | # fossil. |
| 96 | # |
| 97 | if {[check-function-in-lib sqlite3_open sqlite3 $extralibs]} { |
| 98 | if {![check-function-in-lib sqlite3_trace_v2 sqlite3 $extralibs]} { |
| 99 | user-error "system sqlite3 too old (require >= 3.14.0)" |
| 100 | } |
| 101 | |
| 102 | # Success. Update symbols and return. |
| 103 | # |
| 104 | define USE_SYSTEM_SQLITE 1 |
| 105 |
+6
| --- src/attach.c | ||
| +++ src/attach.c | ||
| @@ -699,10 +699,16 @@ | ||
| 699 | 699 | ** with the specified timestamp. |
| 700 | 700 | ** -t|--technote TECHNOTE-ID Specifies the technote to be |
| 701 | 701 | ** updated by its technote id. |
| 702 | 702 | ** |
| 703 | 703 | ** One of PAGENAME, DATETIME or TECHNOTE-ID must be specified. |
| 704 | +** | |
| 705 | +** DATETIME may be "now" or "YYYY-MM-DDTHH:MM:SS.SSS". If in | |
| 706 | +** year-month-day form, it may be truncated, the "T" may be replaced by | |
| 707 | +** a space, and it may also name a timezone offset from UTC as "-HH:MM" | |
| 708 | +** (westward) or "+HH:MM" (eastward). Either no timezone suffix or "Z" | |
| 709 | +** means UTC. | |
| 704 | 710 | */ |
| 705 | 711 | void attachment_cmd(void){ |
| 706 | 712 | int n; |
| 707 | 713 | db_find_and_open_repository(0, 0); |
| 708 | 714 | if( g.argc<3 ){ |
| 709 | 715 |
| --- src/attach.c | |
| +++ src/attach.c | |
| @@ -699,10 +699,16 @@ | |
| 699 | ** with the specified timestamp. |
| 700 | ** -t|--technote TECHNOTE-ID Specifies the technote to be |
| 701 | ** updated by its technote id. |
| 702 | ** |
| 703 | ** One of PAGENAME, DATETIME or TECHNOTE-ID must be specified. |
| 704 | */ |
| 705 | void attachment_cmd(void){ |
| 706 | int n; |
| 707 | db_find_and_open_repository(0, 0); |
| 708 | if( g.argc<3 ){ |
| 709 |
| --- src/attach.c | |
| +++ src/attach.c | |
| @@ -699,10 +699,16 @@ | |
| 699 | ** with the specified timestamp. |
| 700 | ** -t|--technote TECHNOTE-ID Specifies the technote to be |
| 701 | ** updated by its technote id. |
| 702 | ** |
| 703 | ** One of PAGENAME, DATETIME or TECHNOTE-ID must be specified. |
| 704 | ** |
| 705 | ** DATETIME may be "now" or "YYYY-MM-DDTHH:MM:SS.SSS". If in |
| 706 | ** year-month-day form, it may be truncated, the "T" may be replaced by |
| 707 | ** a space, and it may also name a timezone offset from UTC as "-HH:MM" |
| 708 | ** (westward) or "+HH:MM" (eastward). Either no timezone suffix or "Z" |
| 709 | ** means UTC. |
| 710 | */ |
| 711 | void attachment_cmd(void){ |
| 712 | int n; |
| 713 | db_find_and_open_repository(0, 0); |
| 714 | if( g.argc<3 ){ |
| 715 |
+6
| --- src/branch.c | ||
| +++ src/branch.c | ||
| @@ -257,10 +257,16 @@ | ||
| 257 | 257 | ** --private branch is private (i.e., remains local) |
| 258 | 258 | ** --bgcolor COLOR use COLOR instead of automatic background |
| 259 | 259 | ** --nosign do not sign contents on this branch |
| 260 | 260 | ** --date-override DATE DATE to use instead of 'now' |
| 261 | 261 | ** --user-override USER USER to use instead of the current default |
| 262 | +** | |
| 263 | +** DATE may be "now" or "YYYY-MM-DDTHH:MM:SS.SSS". If in | |
| 264 | +** year-month-day form, it may be truncated, the "T" may be | |
| 265 | +** replaced by a space, and it may also name a timezone offset | |
| 266 | +** from UTC as "-HH:MM" (westward) or "+HH:MM" (eastward). | |
| 267 | +** Either no timezone suffix or "Z" means UTC. | |
| 262 | 268 | ** |
| 263 | 269 | ** %fossil branch list ?-a|--all|-c|--closed? |
| 264 | 270 | ** %fossil branch ls ?-a|--all|-c|--closed? |
| 265 | 271 | ** |
| 266 | 272 | ** List all branches. Use -a or --all to list all branches and |
| 267 | 273 |
| --- src/branch.c | |
| +++ src/branch.c | |
| @@ -257,10 +257,16 @@ | |
| 257 | ** --private branch is private (i.e., remains local) |
| 258 | ** --bgcolor COLOR use COLOR instead of automatic background |
| 259 | ** --nosign do not sign contents on this branch |
| 260 | ** --date-override DATE DATE to use instead of 'now' |
| 261 | ** --user-override USER USER to use instead of the current default |
| 262 | ** |
| 263 | ** %fossil branch list ?-a|--all|-c|--closed? |
| 264 | ** %fossil branch ls ?-a|--all|-c|--closed? |
| 265 | ** |
| 266 | ** List all branches. Use -a or --all to list all branches and |
| 267 |
| --- src/branch.c | |
| +++ src/branch.c | |
| @@ -257,10 +257,16 @@ | |
| 257 | ** --private branch is private (i.e., remains local) |
| 258 | ** --bgcolor COLOR use COLOR instead of automatic background |
| 259 | ** --nosign do not sign contents on this branch |
| 260 | ** --date-override DATE DATE to use instead of 'now' |
| 261 | ** --user-override USER USER to use instead of the current default |
| 262 | ** |
| 263 | ** DATE may be "now" or "YYYY-MM-DDTHH:MM:SS.SSS". If in |
| 264 | ** year-month-day form, it may be truncated, the "T" may be |
| 265 | ** replaced by a space, and it may also name a timezone offset |
| 266 | ** from UTC as "-HH:MM" (westward) or "+HH:MM" (eastward). |
| 267 | ** Either no timezone suffix or "Z" means UTC. |
| 268 | ** |
| 269 | ** %fossil branch list ?-a|--all|-c|--closed? |
| 270 | ** %fossil branch ls ?-a|--all|-c|--closed? |
| 271 | ** |
| 272 | ** List all branches. Use -a or --all to list all branches and |
| 273 |
+1
-1
| --- src/bundle.c | ||
| +++ src/bundle.c | ||
| @@ -313,11 +313,11 @@ | ||
| 313 | 313 | " VALUES('mtime',datetime('now'));" |
| 314 | 314 | ); |
| 315 | 315 | db_multi_exec( |
| 316 | 316 | "INSERT INTO bconfig(bcname,bcvalue)" |
| 317 | 317 | " SELECT name, value FROM config" |
| 318 | - " WHERE name IN ('project-code');" | |
| 318 | + " WHERE name IN ('project-code','parent-project-code');" | |
| 319 | 319 | ); |
| 320 | 320 | |
| 321 | 321 | /* Directly copy content from the repository into the bundle as long |
| 322 | 322 | ** as the repository content is a delta from some other artifact that |
| 323 | 323 | ** is also in the bundle. |
| 324 | 324 |
| --- src/bundle.c | |
| +++ src/bundle.c | |
| @@ -313,11 +313,11 @@ | |
| 313 | " VALUES('mtime',datetime('now'));" |
| 314 | ); |
| 315 | db_multi_exec( |
| 316 | "INSERT INTO bconfig(bcname,bcvalue)" |
| 317 | " SELECT name, value FROM config" |
| 318 | " WHERE name IN ('project-code');" |
| 319 | ); |
| 320 | |
| 321 | /* Directly copy content from the repository into the bundle as long |
| 322 | ** as the repository content is a delta from some other artifact that |
| 323 | ** is also in the bundle. |
| 324 |
| --- src/bundle.c | |
| +++ src/bundle.c | |
| @@ -313,11 +313,11 @@ | |
| 313 | " VALUES('mtime',datetime('now'));" |
| 314 | ); |
| 315 | db_multi_exec( |
| 316 | "INSERT INTO bconfig(bcname,bcvalue)" |
| 317 | " SELECT name, value FROM config" |
| 318 | " WHERE name IN ('project-code','parent-project-code');" |
| 319 | ); |
| 320 | |
| 321 | /* Directly copy content from the repository into the bundle as long |
| 322 | ** as the repository content is a delta from some other artifact that |
| 323 | ** is also in the bundle. |
| 324 |
+12
-6
| --- src/checkin.c | ||
| +++ src/checkin.c | ||
| @@ -546,11 +546,11 @@ | ||
| 546 | 546 | } |
| 547 | 547 | } |
| 548 | 548 | |
| 549 | 549 | /* |
| 550 | 550 | ** COMMAND: extras |
| 551 | -** | |
| 551 | +** | |
| 552 | 552 | ** Usage: %fossil extras ?OPTIONS? ?PATH1 ...? |
| 553 | 553 | ** |
| 554 | 554 | ** Print a list of all files in the source tree that are not part of the |
| 555 | 555 | ** current checkout. See also the "clean" command. If paths are specified, |
| 556 | 556 | ** only files in the given directories will be listed. |
| @@ -632,11 +632,11 @@ | ||
| 632 | 632 | db_finalize(&q); |
| 633 | 633 | } |
| 634 | 634 | |
| 635 | 635 | /* |
| 636 | 636 | ** COMMAND: clean |
| 637 | -** | |
| 637 | +** | |
| 638 | 638 | ** Usage: %fossil clean ?OPTIONS? ?PATH ...? |
| 639 | 639 | ** |
| 640 | 640 | ** Delete all "extra" files in the source tree. "Extra" files are files |
| 641 | 641 | ** that are not officially part of the checkout. If one or more PATH |
| 642 | 642 | ** arguments appear, then only the files named, or files contained with |
| @@ -645,21 +645,21 @@ | ||
| 645 | 645 | ** If the --prompt option is used, prompts are issued to confirm the |
| 646 | 646 | ** permanent removal of each file. Otherwise, files are backed up to the |
| 647 | 647 | ** undo buffer prior to removal, and prompts are issued only for files |
| 648 | 648 | ** whose removal cannot be undone due to their large size or due to |
| 649 | 649 | ** --disable-undo being used. |
| 650 | -** | |
| 650 | +** | |
| 651 | 651 | ** The --force option treats all prompts as having been answered yes, |
| 652 | 652 | ** whereas --no-prompt treats them as having been answered no. |
| 653 | -** | |
| 653 | +** | |
| 654 | 654 | ** Files matching any glob pattern specified by the --clean option are |
| 655 | 655 | ** deleted without prompting, and the removal cannot be undone. |
| 656 | 656 | ** |
| 657 | 657 | ** No file that matches glob patterns specified by --ignore or --keep will |
| 658 | 658 | ** ever be deleted. Files and subdirectories whose names begin with "." |
| 659 | 659 | ** are automatically ignored unless the --dotfiles option is used. |
| 660 | -** | |
| 660 | +** | |
| 661 | 661 | ** The default values for --clean, --ignore, and --keep are determined by |
| 662 | 662 | ** the (versionable) clean-glob, ignore-glob, and keep-glob settings. |
| 663 | 663 | ** |
| 664 | 664 | ** The --verily option ignores the keep-glob and ignore-glob settings and |
| 665 | 665 | ** turns on --force, --emptydirs, --dotfiles, and --disable-undo. Use the |
| @@ -1689,12 +1689,18 @@ | ||
| 1689 | 1689 | ** --nosign do not attempt to sign this commit with gpg |
| 1690 | 1690 | ** --private do not sync changes and their descendants |
| 1691 | 1691 | ** --sha1sum verify file status using SHA1 hashing rather |
| 1692 | 1692 | ** than relying on file mtimes |
| 1693 | 1693 | ** --tag TAG-NAME assign given tag TAG-NAME to the check-in |
| 1694 | -** --date-override DATE DATE to use instead of 'now' | |
| 1694 | +** --date-override DATETIME DATE to use instead of 'now' | |
| 1695 | 1695 | ** --user-override USER USER to use instead of the current default |
| 1696 | +** | |
| 1697 | +** DATETIME may be "now" or "YYYY-MM-DDTHH:MM:SS.SSS". If in | |
| 1698 | +** year-month-day form, it may be truncated, the "T" may be replaced by | |
| 1699 | +** a space, and it may also name a timezone offset from UTC as "-HH:MM" | |
| 1700 | +** (westward) or "+HH:MM" (eastward). Either no timezone suffix or "Z" | |
| 1701 | +** means UTC. | |
| 1696 | 1702 | ** |
| 1697 | 1703 | ** See also: branch, changes, checkout, extras, sync |
| 1698 | 1704 | */ |
| 1699 | 1705 | void commit_cmd(void){ |
| 1700 | 1706 | int hasChanges; /* True if unsaved changes exist */ |
| 1701 | 1707 |
| --- src/checkin.c | |
| +++ src/checkin.c | |
| @@ -546,11 +546,11 @@ | |
| 546 | } |
| 547 | } |
| 548 | |
| 549 | /* |
| 550 | ** COMMAND: extras |
| 551 | ** |
| 552 | ** Usage: %fossil extras ?OPTIONS? ?PATH1 ...? |
| 553 | ** |
| 554 | ** Print a list of all files in the source tree that are not part of the |
| 555 | ** current checkout. See also the "clean" command. If paths are specified, |
| 556 | ** only files in the given directories will be listed. |
| @@ -632,11 +632,11 @@ | |
| 632 | db_finalize(&q); |
| 633 | } |
| 634 | |
| 635 | /* |
| 636 | ** COMMAND: clean |
| 637 | ** |
| 638 | ** Usage: %fossil clean ?OPTIONS? ?PATH ...? |
| 639 | ** |
| 640 | ** Delete all "extra" files in the source tree. "Extra" files are files |
| 641 | ** that are not officially part of the checkout. If one or more PATH |
| 642 | ** arguments appear, then only the files named, or files contained with |
| @@ -645,21 +645,21 @@ | |
| 645 | ** If the --prompt option is used, prompts are issued to confirm the |
| 646 | ** permanent removal of each file. Otherwise, files are backed up to the |
| 647 | ** undo buffer prior to removal, and prompts are issued only for files |
| 648 | ** whose removal cannot be undone due to their large size or due to |
| 649 | ** --disable-undo being used. |
| 650 | ** |
| 651 | ** The --force option treats all prompts as having been answered yes, |
| 652 | ** whereas --no-prompt treats them as having been answered no. |
| 653 | ** |
| 654 | ** Files matching any glob pattern specified by the --clean option are |
| 655 | ** deleted without prompting, and the removal cannot be undone. |
| 656 | ** |
| 657 | ** No file that matches glob patterns specified by --ignore or --keep will |
| 658 | ** ever be deleted. Files and subdirectories whose names begin with "." |
| 659 | ** are automatically ignored unless the --dotfiles option is used. |
| 660 | ** |
| 661 | ** The default values for --clean, --ignore, and --keep are determined by |
| 662 | ** the (versionable) clean-glob, ignore-glob, and keep-glob settings. |
| 663 | ** |
| 664 | ** The --verily option ignores the keep-glob and ignore-glob settings and |
| 665 | ** turns on --force, --emptydirs, --dotfiles, and --disable-undo. Use the |
| @@ -1689,12 +1689,18 @@ | |
| 1689 | ** --nosign do not attempt to sign this commit with gpg |
| 1690 | ** --private do not sync changes and their descendants |
| 1691 | ** --sha1sum verify file status using SHA1 hashing rather |
| 1692 | ** than relying on file mtimes |
| 1693 | ** --tag TAG-NAME assign given tag TAG-NAME to the check-in |
| 1694 | ** --date-override DATE DATE to use instead of 'now' |
| 1695 | ** --user-override USER USER to use instead of the current default |
| 1696 | ** |
| 1697 | ** See also: branch, changes, checkout, extras, sync |
| 1698 | */ |
| 1699 | void commit_cmd(void){ |
| 1700 | int hasChanges; /* True if unsaved changes exist */ |
| 1701 |
| --- src/checkin.c | |
| +++ src/checkin.c | |
| @@ -546,11 +546,11 @@ | |
| 546 | } |
| 547 | } |
| 548 | |
| 549 | /* |
| 550 | ** COMMAND: extras |
| 551 | ** |
| 552 | ** Usage: %fossil extras ?OPTIONS? ?PATH1 ...? |
| 553 | ** |
| 554 | ** Print a list of all files in the source tree that are not part of the |
| 555 | ** current checkout. See also the "clean" command. If paths are specified, |
| 556 | ** only files in the given directories will be listed. |
| @@ -632,11 +632,11 @@ | |
| 632 | db_finalize(&q); |
| 633 | } |
| 634 | |
| 635 | /* |
| 636 | ** COMMAND: clean |
| 637 | ** |
| 638 | ** Usage: %fossil clean ?OPTIONS? ?PATH ...? |
| 639 | ** |
| 640 | ** Delete all "extra" files in the source tree. "Extra" files are files |
| 641 | ** that are not officially part of the checkout. If one or more PATH |
| 642 | ** arguments appear, then only the files named, or files contained with |
| @@ -645,21 +645,21 @@ | |
| 645 | ** If the --prompt option is used, prompts are issued to confirm the |
| 646 | ** permanent removal of each file. Otherwise, files are backed up to the |
| 647 | ** undo buffer prior to removal, and prompts are issued only for files |
| 648 | ** whose removal cannot be undone due to their large size or due to |
| 649 | ** --disable-undo being used. |
| 650 | ** |
| 651 | ** The --force option treats all prompts as having been answered yes, |
| 652 | ** whereas --no-prompt treats them as having been answered no. |
| 653 | ** |
| 654 | ** Files matching any glob pattern specified by the --clean option are |
| 655 | ** deleted without prompting, and the removal cannot be undone. |
| 656 | ** |
| 657 | ** No file that matches glob patterns specified by --ignore or --keep will |
| 658 | ** ever be deleted. Files and subdirectories whose names begin with "." |
| 659 | ** are automatically ignored unless the --dotfiles option is used. |
| 660 | ** |
| 661 | ** The default values for --clean, --ignore, and --keep are determined by |
| 662 | ** the (versionable) clean-glob, ignore-glob, and keep-glob settings. |
| 663 | ** |
| 664 | ** The --verily option ignores the keep-glob and ignore-glob settings and |
| 665 | ** turns on --force, --emptydirs, --dotfiles, and --disable-undo. Use the |
| @@ -1689,12 +1689,18 @@ | |
| 1689 | ** --nosign do not attempt to sign this commit with gpg |
| 1690 | ** --private do not sync changes and their descendants |
| 1691 | ** --sha1sum verify file status using SHA1 hashing rather |
| 1692 | ** than relying on file mtimes |
| 1693 | ** --tag TAG-NAME assign given tag TAG-NAME to the check-in |
| 1694 | ** --date-override DATETIME DATE to use instead of 'now' |
| 1695 | ** --user-override USER USER to use instead of the current default |
| 1696 | ** |
| 1697 | ** DATETIME may be "now" or "YYYY-MM-DDTHH:MM:SS.SSS". If in |
| 1698 | ** year-month-day form, it may be truncated, the "T" may be replaced by |
| 1699 | ** a space, and it may also name a timezone offset from UTC as "-HH:MM" |
| 1700 | ** (westward) or "+HH:MM" (eastward). Either no timezone suffix or "Z" |
| 1701 | ** means UTC. |
| 1702 | ** |
| 1703 | ** See also: branch, changes, checkout, extras, sync |
| 1704 | */ |
| 1705 | void commit_cmd(void){ |
| 1706 | int hasChanges; /* True if unsaved changes exist */ |
| 1707 |
+1
-1
| --- src/clone.c | ||
| +++ src/clone.c | ||
| @@ -99,11 +99,11 @@ | ||
| 99 | 99 | ** [file://]path/to/repo.fossil |
| 100 | 100 | ** |
| 101 | 101 | ** Note 1: For ssh and filesystem, path must have an extra leading |
| 102 | 102 | ** '/' to use an absolute path. |
| 103 | 103 | ** |
| 104 | -** Note 2: Use %HH escapes for special characters in the userid and | |
| 104 | +** Note 2: Use %HH escapes for special characters in the userid and | |
| 105 | 105 | ** password. For example "%40" in place of "@", "%2f" in place |
| 106 | 106 | ** of "/", and "%3a" in place of ":". |
| 107 | 107 | ** |
| 108 | 108 | ** By default, your current login name is used to create the default |
| 109 | 109 | ** admin user. This can be overridden using the -A|--admin-user |
| 110 | 110 |
| --- src/clone.c | |
| +++ src/clone.c | |
| @@ -99,11 +99,11 @@ | |
| 99 | ** [file://]path/to/repo.fossil |
| 100 | ** |
| 101 | ** Note 1: For ssh and filesystem, path must have an extra leading |
| 102 | ** '/' to use an absolute path. |
| 103 | ** |
| 104 | ** Note 2: Use %HH escapes for special characters in the userid and |
| 105 | ** password. For example "%40" in place of "@", "%2f" in place |
| 106 | ** of "/", and "%3a" in place of ":". |
| 107 | ** |
| 108 | ** By default, your current login name is used to create the default |
| 109 | ** admin user. This can be overridden using the -A|--admin-user |
| 110 |
| --- src/clone.c | |
| +++ src/clone.c | |
| @@ -99,11 +99,11 @@ | |
| 99 | ** [file://]path/to/repo.fossil |
| 100 | ** |
| 101 | ** Note 1: For ssh and filesystem, path must have an extra leading |
| 102 | ** '/' to use an absolute path. |
| 103 | ** |
| 104 | ** Note 2: Use %HH escapes for special characters in the userid and |
| 105 | ** password. For example "%40" in place of "@", "%2f" in place |
| 106 | ** of "/", and "%3a" in place of ":". |
| 107 | ** |
| 108 | ** By default, your current login name is used to create the default |
| 109 | ** admin user. This can be overridden using the -A|--admin-user |
| 110 |
+1
-1
| --- src/content.c | ||
| +++ src/content.c | ||
| @@ -1170,11 +1170,11 @@ | ||
| 1170 | 1170 | db_find_and_open_repository(OPEN_ANY_SCHEMA, 0); |
| 1171 | 1171 | db_begin_transaction(); |
| 1172 | 1172 | db_prepare(&q, "SELECT rid FROM delta WHERE srcid=:rid"); |
| 1173 | 1173 | for(i=2; i<g.argc; i++){ |
| 1174 | 1174 | int rid = atoi(g.argv[i]); |
| 1175 | - fossil_print("Erasing artifact %d (%s)\n", | |
| 1175 | + fossil_print("Erasing artifact %d (%s)\n", | |
| 1176 | 1176 | rid, db_text("", "SELECT uuid FROM blob WHERE rid=%d", rid)); |
| 1177 | 1177 | db_bind_int(&q, ":rid", rid); |
| 1178 | 1178 | while( db_step(&q)==SQLITE_ROW ){ |
| 1179 | 1179 | content_undelta(db_column_int(&q,0)); |
| 1180 | 1180 | } |
| 1181 | 1181 |
| --- src/content.c | |
| +++ src/content.c | |
| @@ -1170,11 +1170,11 @@ | |
| 1170 | db_find_and_open_repository(OPEN_ANY_SCHEMA, 0); |
| 1171 | db_begin_transaction(); |
| 1172 | db_prepare(&q, "SELECT rid FROM delta WHERE srcid=:rid"); |
| 1173 | for(i=2; i<g.argc; i++){ |
| 1174 | int rid = atoi(g.argv[i]); |
| 1175 | fossil_print("Erasing artifact %d (%s)\n", |
| 1176 | rid, db_text("", "SELECT uuid FROM blob WHERE rid=%d", rid)); |
| 1177 | db_bind_int(&q, ":rid", rid); |
| 1178 | while( db_step(&q)==SQLITE_ROW ){ |
| 1179 | content_undelta(db_column_int(&q,0)); |
| 1180 | } |
| 1181 |
| --- src/content.c | |
| +++ src/content.c | |
| @@ -1170,11 +1170,11 @@ | |
| 1170 | db_find_and_open_repository(OPEN_ANY_SCHEMA, 0); |
| 1171 | db_begin_transaction(); |
| 1172 | db_prepare(&q, "SELECT rid FROM delta WHERE srcid=:rid"); |
| 1173 | for(i=2; i<g.argc; i++){ |
| 1174 | int rid = atoi(g.argv[i]); |
| 1175 | fossil_print("Erasing artifact %d (%s)\n", |
| 1176 | rid, db_text("", "SELECT uuid FROM blob WHERE rid=%d", rid)); |
| 1177 | db_bind_int(&q, ":rid", rid); |
| 1178 | while( db_step(&q)==SQLITE_ROW ){ |
| 1179 | content_undelta(db_column_int(&q,0)); |
| 1180 | } |
| 1181 |
+1
-1
| --- src/content.c | ||
| +++ src/content.c | ||
| @@ -1170,11 +1170,11 @@ | ||
| 1170 | 1170 | db_find_and_open_repository(OPEN_ANY_SCHEMA, 0); |
| 1171 | 1171 | db_begin_transaction(); |
| 1172 | 1172 | db_prepare(&q, "SELECT rid FROM delta WHERE srcid=:rid"); |
| 1173 | 1173 | for(i=2; i<g.argc; i++){ |
| 1174 | 1174 | int rid = atoi(g.argv[i]); |
| 1175 | - fossil_print("Erasing artifact %d (%s)\n", | |
| 1175 | + fossil_print("Erasing artifact %d (%s)\n", | |
| 1176 | 1176 | rid, db_text("", "SELECT uuid FROM blob WHERE rid=%d", rid)); |
| 1177 | 1177 | db_bind_int(&q, ":rid", rid); |
| 1178 | 1178 | while( db_step(&q)==SQLITE_ROW ){ |
| 1179 | 1179 | content_undelta(db_column_int(&q,0)); |
| 1180 | 1180 | } |
| 1181 | 1181 |
| --- src/content.c | |
| +++ src/content.c | |
| @@ -1170,11 +1170,11 @@ | |
| 1170 | db_find_and_open_repository(OPEN_ANY_SCHEMA, 0); |
| 1171 | db_begin_transaction(); |
| 1172 | db_prepare(&q, "SELECT rid FROM delta WHERE srcid=:rid"); |
| 1173 | for(i=2; i<g.argc; i++){ |
| 1174 | int rid = atoi(g.argv[i]); |
| 1175 | fossil_print("Erasing artifact %d (%s)\n", |
| 1176 | rid, db_text("", "SELECT uuid FROM blob WHERE rid=%d", rid)); |
| 1177 | db_bind_int(&q, ":rid", rid); |
| 1178 | while( db_step(&q)==SQLITE_ROW ){ |
| 1179 | content_undelta(db_column_int(&q,0)); |
| 1180 | } |
| 1181 |
| --- src/content.c | |
| +++ src/content.c | |
| @@ -1170,11 +1170,11 @@ | |
| 1170 | db_find_and_open_repository(OPEN_ANY_SCHEMA, 0); |
| 1171 | db_begin_transaction(); |
| 1172 | db_prepare(&q, "SELECT rid FROM delta WHERE srcid=:rid"); |
| 1173 | for(i=2; i<g.argc; i++){ |
| 1174 | int rid = atoi(g.argv[i]); |
| 1175 | fossil_print("Erasing artifact %d (%s)\n", |
| 1176 | rid, db_text("", "SELECT uuid FROM blob WHERE rid=%d", rid)); |
| 1177 | db_bind_int(&q, ":rid", rid); |
| 1178 | while( db_step(&q)==SQLITE_ROW ){ |
| 1179 | content_undelta(db_column_int(&q,0)); |
| 1180 | } |
| 1181 |
M
src/db.c
+8
-2
| --- src/db.c | ||
| +++ src/db.c | ||
| @@ -1750,10 +1750,16 @@ | ||
| 1750 | 1750 | ** |
| 1751 | 1751 | ** Options: |
| 1752 | 1752 | ** --template FILE copy settings from repository file |
| 1753 | 1753 | ** --admin-user|-A USERNAME select given USERNAME as admin user |
| 1754 | 1754 | ** --date-override DATETIME use DATETIME as time of the initial check-in |
| 1755 | +** | |
| 1756 | +** DATETIME may be "now" or "YYYY-MM-DDTHH:MM:SS.SSS". If in | |
| 1757 | +** year-month-day form, it may be truncated, the "T" may be replaced by | |
| 1758 | +** a space, and it may also name a timezone offset from UTC as "-HH:MM" | |
| 1759 | +** (westward) or "+HH:MM" (eastward). Either no timezone suffix or "Z" | |
| 1760 | +** means UTC. | |
| 1755 | 1761 | ** |
| 1756 | 1762 | ** See also: clone |
| 1757 | 1763 | */ |
| 1758 | 1764 | void create_repository_cmd(void){ |
| 1759 | 1765 | char *zPassword; |
| @@ -2977,11 +2983,11 @@ | ||
| 2977 | 2983 | return sqlite3_mprintf("%.1f years", rSpan); |
| 2978 | 2984 | } |
| 2979 | 2985 | |
| 2980 | 2986 | /* |
| 2981 | 2987 | ** COMMAND: test-timespan |
| 2982 | -** | |
| 2988 | +** | |
| 2983 | 2989 | ** Usage: %fossil test-timespan TIMESTAMP |
| 2984 | 2990 | ** |
| 2985 | 2991 | ** Print the approximate span of time from now to TIMESTAMP. |
| 2986 | 2992 | */ |
| 2987 | 2993 | void test_timespan_cmd(void){ |
| @@ -2994,11 +3000,11 @@ | ||
| 2994 | 3000 | g.db = 0; |
| 2995 | 3001 | } |
| 2996 | 3002 | |
| 2997 | 3003 | /* |
| 2998 | 3004 | ** COMMAND: test-without-rowid |
| 2999 | -** | |
| 3005 | +** | |
| 3000 | 3006 | ** Usage: %fossil test-without-rowid FILENAME... |
| 3001 | 3007 | ** |
| 3002 | 3008 | ** Change the Fossil repository FILENAME to make use of the WITHOUT ROWID |
| 3003 | 3009 | ** optimization. FILENAME can also be the ~/.fossil file or a local |
| 3004 | 3010 | ** .fslckout or _FOSSIL_ file. |
| 3005 | 3011 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -1750,10 +1750,16 @@ | |
| 1750 | ** |
| 1751 | ** Options: |
| 1752 | ** --template FILE copy settings from repository file |
| 1753 | ** --admin-user|-A USERNAME select given USERNAME as admin user |
| 1754 | ** --date-override DATETIME use DATETIME as time of the initial check-in |
| 1755 | ** |
| 1756 | ** See also: clone |
| 1757 | */ |
| 1758 | void create_repository_cmd(void){ |
| 1759 | char *zPassword; |
| @@ -2977,11 +2983,11 @@ | |
| 2977 | return sqlite3_mprintf("%.1f years", rSpan); |
| 2978 | } |
| 2979 | |
| 2980 | /* |
| 2981 | ** COMMAND: test-timespan |
| 2982 | ** |
| 2983 | ** Usage: %fossil test-timespan TIMESTAMP |
| 2984 | ** |
| 2985 | ** Print the approximate span of time from now to TIMESTAMP. |
| 2986 | */ |
| 2987 | void test_timespan_cmd(void){ |
| @@ -2994,11 +3000,11 @@ | |
| 2994 | g.db = 0; |
| 2995 | } |
| 2996 | |
| 2997 | /* |
| 2998 | ** COMMAND: test-without-rowid |
| 2999 | ** |
| 3000 | ** Usage: %fossil test-without-rowid FILENAME... |
| 3001 | ** |
| 3002 | ** Change the Fossil repository FILENAME to make use of the WITHOUT ROWID |
| 3003 | ** optimization. FILENAME can also be the ~/.fossil file or a local |
| 3004 | ** .fslckout or _FOSSIL_ file. |
| 3005 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -1750,10 +1750,16 @@ | |
| 1750 | ** |
| 1751 | ** Options: |
| 1752 | ** --template FILE copy settings from repository file |
| 1753 | ** --admin-user|-A USERNAME select given USERNAME as admin user |
| 1754 | ** --date-override DATETIME use DATETIME as time of the initial check-in |
| 1755 | ** |
| 1756 | ** DATETIME may be "now" or "YYYY-MM-DDTHH:MM:SS.SSS". If in |
| 1757 | ** year-month-day form, it may be truncated, the "T" may be replaced by |
| 1758 | ** a space, and it may also name a timezone offset from UTC as "-HH:MM" |
| 1759 | ** (westward) or "+HH:MM" (eastward). Either no timezone suffix or "Z" |
| 1760 | ** means UTC. |
| 1761 | ** |
| 1762 | ** See also: clone |
| 1763 | */ |
| 1764 | void create_repository_cmd(void){ |
| 1765 | char *zPassword; |
| @@ -2977,11 +2983,11 @@ | |
| 2983 | return sqlite3_mprintf("%.1f years", rSpan); |
| 2984 | } |
| 2985 | |
| 2986 | /* |
| 2987 | ** COMMAND: test-timespan |
| 2988 | ** |
| 2989 | ** Usage: %fossil test-timespan TIMESTAMP |
| 2990 | ** |
| 2991 | ** Print the approximate span of time from now to TIMESTAMP. |
| 2992 | */ |
| 2993 | void test_timespan_cmd(void){ |
| @@ -2994,11 +3000,11 @@ | |
| 3000 | g.db = 0; |
| 3001 | } |
| 3002 | |
| 3003 | /* |
| 3004 | ** COMMAND: test-without-rowid |
| 3005 | ** |
| 3006 | ** Usage: %fossil test-without-rowid FILENAME... |
| 3007 | ** |
| 3008 | ** Change the Fossil repository FILENAME to make use of the WITHOUT ROWID |
| 3009 | ** optimization. FILENAME can also be the ~/.fossil file or a local |
| 3010 | ** .fslckout or _FOSSIL_ file. |
| 3011 |
+1
-1
| --- src/delta.c | ||
| +++ src/delta.c | ||
| @@ -245,11 +245,11 @@ | ||
| 245 | 245 | #elif defined(_MSC_VER) && _MSC_VER>=1300 |
| 246 | 246 | while( z<zEnd ){ |
| 247 | 247 | sum += _byteswap_ulong(*(unsigned*)z); |
| 248 | 248 | z += 4; |
| 249 | 249 | } |
| 250 | -#else | |
| 250 | +#else | |
| 251 | 251 | unsigned sum0 = 0; |
| 252 | 252 | unsigned sum1 = 0; |
| 253 | 253 | unsigned sum2 = 0; |
| 254 | 254 | while(N >= 16){ |
| 255 | 255 | sum0 += ((unsigned)z[0] + z[4] + z[8] + z[12]); |
| 256 | 256 |
| --- src/delta.c | |
| +++ src/delta.c | |
| @@ -245,11 +245,11 @@ | |
| 245 | #elif defined(_MSC_VER) && _MSC_VER>=1300 |
| 246 | while( z<zEnd ){ |
| 247 | sum += _byteswap_ulong(*(unsigned*)z); |
| 248 | z += 4; |
| 249 | } |
| 250 | #else |
| 251 | unsigned sum0 = 0; |
| 252 | unsigned sum1 = 0; |
| 253 | unsigned sum2 = 0; |
| 254 | while(N >= 16){ |
| 255 | sum0 += ((unsigned)z[0] + z[4] + z[8] + z[12]); |
| 256 |
| --- src/delta.c | |
| +++ src/delta.c | |
| @@ -245,11 +245,11 @@ | |
| 245 | #elif defined(_MSC_VER) && _MSC_VER>=1300 |
| 246 | while( z<zEnd ){ |
| 247 | sum += _byteswap_ulong(*(unsigned*)z); |
| 248 | z += 4; |
| 249 | } |
| 250 | #else |
| 251 | unsigned sum0 = 0; |
| 252 | unsigned sum1 = 0; |
| 253 | unsigned sum2 = 0; |
| 254 | while(N >= 16){ |
| 255 | sum0 += ((unsigned)z[0] + z[4] + z[8] + z[12]); |
| 256 |
+1
-1
| --- src/descendants.c | ||
| +++ src/descendants.c | ||
| @@ -196,11 +196,11 @@ | ||
| 196 | 196 | "WITH RECURSIVE g(x,i) AS (" |
| 197 | 197 | " VALUES(%d,1)" |
| 198 | 198 | " UNION ALL" |
| 199 | 199 | " SELECT plink.pid, g.i+1 FROM plink, g" |
| 200 | 200 | " WHERE plink.cid=g.x AND plink.isprim)" |
| 201 | - "INSERT INTO ancestor(rid,generation) SELECT x,i FROM g;", | |
| 201 | + "INSERT INTO ancestor(rid,generation) SELECT x,i FROM g;", | |
| 202 | 202 | rid |
| 203 | 203 | ); |
| 204 | 204 | } |
| 205 | 205 | |
| 206 | 206 | /* |
| 207 | 207 |
| --- src/descendants.c | |
| +++ src/descendants.c | |
| @@ -196,11 +196,11 @@ | |
| 196 | "WITH RECURSIVE g(x,i) AS (" |
| 197 | " VALUES(%d,1)" |
| 198 | " UNION ALL" |
| 199 | " SELECT plink.pid, g.i+1 FROM plink, g" |
| 200 | " WHERE plink.cid=g.x AND plink.isprim)" |
| 201 | "INSERT INTO ancestor(rid,generation) SELECT x,i FROM g;", |
| 202 | rid |
| 203 | ); |
| 204 | } |
| 205 | |
| 206 | /* |
| 207 |
| --- src/descendants.c | |
| +++ src/descendants.c | |
| @@ -196,11 +196,11 @@ | |
| 196 | "WITH RECURSIVE g(x,i) AS (" |
| 197 | " VALUES(%d,1)" |
| 198 | " UNION ALL" |
| 199 | " SELECT plink.pid, g.i+1 FROM plink, g" |
| 200 | " WHERE plink.cid=g.x AND plink.isprim)" |
| 201 | "INSERT INTO ancestor(rid,generation) SELECT x,i FROM g;", |
| 202 | rid |
| 203 | ); |
| 204 | } |
| 205 | |
| 206 | /* |
| 207 |
+8
-3
| --- src/doc.c | ||
| +++ src/doc.c | ||
| @@ -506,11 +506,11 @@ | ||
| 506 | 506 | static void convert_href_and_output(Blob *pIn){ |
| 507 | 507 | int i, base; |
| 508 | 508 | int n = blob_size(pIn); |
| 509 | 509 | char *z = blob_buffer(pIn); |
| 510 | 510 | for(base=0, i=7; i<n; i++){ |
| 511 | - if( z[i]=='$' | |
| 511 | + if( z[i]=='$' | |
| 512 | 512 | && strncmp(&z[i],"$ROOT/", 6)==0 |
| 513 | 513 | && (z[i-1]=='\'' || z[i-1]=='"') |
| 514 | 514 | && i-base>=9 |
| 515 | 515 | && (fossil_strnicmp(&z[i-7]," href=", 6)==0 || |
| 516 | 516 | fossil_strnicmp(&z[i-9]," action=", 8)==0) |
| @@ -705,13 +705,18 @@ | ||
| 705 | 705 | convert_href_and_output(&filebody); |
| 706 | 706 | style_footer(); |
| 707 | 707 | #ifdef FOSSIL_ENABLE_TH1_DOCS |
| 708 | 708 | }else if( Th_AreDocsEnabled() && |
| 709 | 709 | fossil_strcmp(zMime, "application/x-th1")==0 ){ |
| 710 | - style_header("%h", zName); | |
| 710 | + int raw = P("raw")!=0; | |
| 711 | + if( !raw ){ | |
| 712 | + style_header("%h", zName); | |
| 713 | + } | |
| 711 | 714 | Th_Render(blob_str(&filebody)); |
| 712 | - style_footer(); | |
| 715 | + if( !raw ){ | |
| 716 | + style_footer(); | |
| 717 | + } | |
| 713 | 718 | #endif |
| 714 | 719 | }else{ |
| 715 | 720 | cgi_set_content_type(zMime); |
| 716 | 721 | cgi_set_content(&filebody); |
| 717 | 722 | } |
| 718 | 723 |
| --- src/doc.c | |
| +++ src/doc.c | |
| @@ -506,11 +506,11 @@ | |
| 506 | static void convert_href_and_output(Blob *pIn){ |
| 507 | int i, base; |
| 508 | int n = blob_size(pIn); |
| 509 | char *z = blob_buffer(pIn); |
| 510 | for(base=0, i=7; i<n; i++){ |
| 511 | if( z[i]=='$' |
| 512 | && strncmp(&z[i],"$ROOT/", 6)==0 |
| 513 | && (z[i-1]=='\'' || z[i-1]=='"') |
| 514 | && i-base>=9 |
| 515 | && (fossil_strnicmp(&z[i-7]," href=", 6)==0 || |
| 516 | fossil_strnicmp(&z[i-9]," action=", 8)==0) |
| @@ -705,13 +705,18 @@ | |
| 705 | convert_href_and_output(&filebody); |
| 706 | style_footer(); |
| 707 | #ifdef FOSSIL_ENABLE_TH1_DOCS |
| 708 | }else if( Th_AreDocsEnabled() && |
| 709 | fossil_strcmp(zMime, "application/x-th1")==0 ){ |
| 710 | style_header("%h", zName); |
| 711 | Th_Render(blob_str(&filebody)); |
| 712 | style_footer(); |
| 713 | #endif |
| 714 | }else{ |
| 715 | cgi_set_content_type(zMime); |
| 716 | cgi_set_content(&filebody); |
| 717 | } |
| 718 |
| --- src/doc.c | |
| +++ src/doc.c | |
| @@ -506,11 +506,11 @@ | |
| 506 | static void convert_href_and_output(Blob *pIn){ |
| 507 | int i, base; |
| 508 | int n = blob_size(pIn); |
| 509 | char *z = blob_buffer(pIn); |
| 510 | for(base=0, i=7; i<n; i++){ |
| 511 | if( z[i]=='$' |
| 512 | && strncmp(&z[i],"$ROOT/", 6)==0 |
| 513 | && (z[i-1]=='\'' || z[i-1]=='"') |
| 514 | && i-base>=9 |
| 515 | && (fossil_strnicmp(&z[i-7]," href=", 6)==0 || |
| 516 | fossil_strnicmp(&z[i-9]," action=", 8)==0) |
| @@ -705,13 +705,18 @@ | |
| 705 | convert_href_and_output(&filebody); |
| 706 | style_footer(); |
| 707 | #ifdef FOSSIL_ENABLE_TH1_DOCS |
| 708 | }else if( Th_AreDocsEnabled() && |
| 709 | fossil_strcmp(zMime, "application/x-th1")==0 ){ |
| 710 | int raw = P("raw")!=0; |
| 711 | if( !raw ){ |
| 712 | style_header("%h", zName); |
| 713 | } |
| 714 | Th_Render(blob_str(&filebody)); |
| 715 | if( !raw ){ |
| 716 | style_footer(); |
| 717 | } |
| 718 | #endif |
| 719 | }else{ |
| 720 | cgi_set_content_type(zMime); |
| 721 | cgi_set_content(&filebody); |
| 722 | } |
| 723 |
+8
-3
| --- src/doc.c | ||
| +++ src/doc.c | ||
| @@ -506,11 +506,11 @@ | ||
| 506 | 506 | static void convert_href_and_output(Blob *pIn){ |
| 507 | 507 | int i, base; |
| 508 | 508 | int n = blob_size(pIn); |
| 509 | 509 | char *z = blob_buffer(pIn); |
| 510 | 510 | for(base=0, i=7; i<n; i++){ |
| 511 | - if( z[i]=='$' | |
| 511 | + if( z[i]=='$' | |
| 512 | 512 | && strncmp(&z[i],"$ROOT/", 6)==0 |
| 513 | 513 | && (z[i-1]=='\'' || z[i-1]=='"') |
| 514 | 514 | && i-base>=9 |
| 515 | 515 | && (fossil_strnicmp(&z[i-7]," href=", 6)==0 || |
| 516 | 516 | fossil_strnicmp(&z[i-9]," action=", 8)==0) |
| @@ -705,13 +705,18 @@ | ||
| 705 | 705 | convert_href_and_output(&filebody); |
| 706 | 706 | style_footer(); |
| 707 | 707 | #ifdef FOSSIL_ENABLE_TH1_DOCS |
| 708 | 708 | }else if( Th_AreDocsEnabled() && |
| 709 | 709 | fossil_strcmp(zMime, "application/x-th1")==0 ){ |
| 710 | - style_header("%h", zName); | |
| 710 | + int raw = P("raw")!=0; | |
| 711 | + if( !raw ){ | |
| 712 | + style_header("%h", zName); | |
| 713 | + } | |
| 711 | 714 | Th_Render(blob_str(&filebody)); |
| 712 | - style_footer(); | |
| 715 | + if( !raw ){ | |
| 716 | + style_footer(); | |
| 717 | + } | |
| 713 | 718 | #endif |
| 714 | 719 | }else{ |
| 715 | 720 | cgi_set_content_type(zMime); |
| 716 | 721 | cgi_set_content(&filebody); |
| 717 | 722 | } |
| 718 | 723 |
| --- src/doc.c | |
| +++ src/doc.c | |
| @@ -506,11 +506,11 @@ | |
| 506 | static void convert_href_and_output(Blob *pIn){ |
| 507 | int i, base; |
| 508 | int n = blob_size(pIn); |
| 509 | char *z = blob_buffer(pIn); |
| 510 | for(base=0, i=7; i<n; i++){ |
| 511 | if( z[i]=='$' |
| 512 | && strncmp(&z[i],"$ROOT/", 6)==0 |
| 513 | && (z[i-1]=='\'' || z[i-1]=='"') |
| 514 | && i-base>=9 |
| 515 | && (fossil_strnicmp(&z[i-7]," href=", 6)==0 || |
| 516 | fossil_strnicmp(&z[i-9]," action=", 8)==0) |
| @@ -705,13 +705,18 @@ | |
| 705 | convert_href_and_output(&filebody); |
| 706 | style_footer(); |
| 707 | #ifdef FOSSIL_ENABLE_TH1_DOCS |
| 708 | }else if( Th_AreDocsEnabled() && |
| 709 | fossil_strcmp(zMime, "application/x-th1")==0 ){ |
| 710 | style_header("%h", zName); |
| 711 | Th_Render(blob_str(&filebody)); |
| 712 | style_footer(); |
| 713 | #endif |
| 714 | }else{ |
| 715 | cgi_set_content_type(zMime); |
| 716 | cgi_set_content(&filebody); |
| 717 | } |
| 718 |
| --- src/doc.c | |
| +++ src/doc.c | |
| @@ -506,11 +506,11 @@ | |
| 506 | static void convert_href_and_output(Blob *pIn){ |
| 507 | int i, base; |
| 508 | int n = blob_size(pIn); |
| 509 | char *z = blob_buffer(pIn); |
| 510 | for(base=0, i=7; i<n; i++){ |
| 511 | if( z[i]=='$' |
| 512 | && strncmp(&z[i],"$ROOT/", 6)==0 |
| 513 | && (z[i-1]=='\'' || z[i-1]=='"') |
| 514 | && i-base>=9 |
| 515 | && (fossil_strnicmp(&z[i-7]," href=", 6)==0 || |
| 516 | fossil_strnicmp(&z[i-9]," action=", 8)==0) |
| @@ -705,13 +705,18 @@ | |
| 705 | convert_href_and_output(&filebody); |
| 706 | style_footer(); |
| 707 | #ifdef FOSSIL_ENABLE_TH1_DOCS |
| 708 | }else if( Th_AreDocsEnabled() && |
| 709 | fossil_strcmp(zMime, "application/x-th1")==0 ){ |
| 710 | int raw = P("raw")!=0; |
| 711 | if( !raw ){ |
| 712 | style_header("%h", zName); |
| 713 | } |
| 714 | Th_Render(blob_str(&filebody)); |
| 715 | if( !raw ){ |
| 716 | style_footer(); |
| 717 | } |
| 718 | #endif |
| 719 | }else{ |
| 720 | cgi_set_content_type(zMime); |
| 721 | cgi_set_content(&filebody); |
| 722 | } |
| 723 |
+2
-2
| --- src/encode.c | ||
| +++ src/encode.c | ||
| @@ -367,11 +367,11 @@ | ||
| 367 | 367 | return z64; |
| 368 | 368 | } |
| 369 | 369 | |
| 370 | 370 | /* |
| 371 | 371 | ** COMMAND: test-encode64 |
| 372 | -** | |
| 372 | +** | |
| 373 | 373 | ** Usage: %fossil test-encode64 STRING |
| 374 | 374 | */ |
| 375 | 375 | void test_encode64_cmd(void){ |
| 376 | 376 | char *z; |
| 377 | 377 | int i; |
| @@ -433,11 +433,11 @@ | ||
| 433 | 433 | return zData; |
| 434 | 434 | } |
| 435 | 435 | |
| 436 | 436 | /* |
| 437 | 437 | ** COMMAND: test-decode64 |
| 438 | -** | |
| 438 | +** | |
| 439 | 439 | ** Usage: %fossil test-decode64 STRING |
| 440 | 440 | */ |
| 441 | 441 | void test_decode64_cmd(void){ |
| 442 | 442 | char *z; |
| 443 | 443 | int i, n; |
| 444 | 444 |
| --- src/encode.c | |
| +++ src/encode.c | |
| @@ -367,11 +367,11 @@ | |
| 367 | return z64; |
| 368 | } |
| 369 | |
| 370 | /* |
| 371 | ** COMMAND: test-encode64 |
| 372 | ** |
| 373 | ** Usage: %fossil test-encode64 STRING |
| 374 | */ |
| 375 | void test_encode64_cmd(void){ |
| 376 | char *z; |
| 377 | int i; |
| @@ -433,11 +433,11 @@ | |
| 433 | return zData; |
| 434 | } |
| 435 | |
| 436 | /* |
| 437 | ** COMMAND: test-decode64 |
| 438 | ** |
| 439 | ** Usage: %fossil test-decode64 STRING |
| 440 | */ |
| 441 | void test_decode64_cmd(void){ |
| 442 | char *z; |
| 443 | int i, n; |
| 444 |
| --- src/encode.c | |
| +++ src/encode.c | |
| @@ -367,11 +367,11 @@ | |
| 367 | return z64; |
| 368 | } |
| 369 | |
| 370 | /* |
| 371 | ** COMMAND: test-encode64 |
| 372 | ** |
| 373 | ** Usage: %fossil test-encode64 STRING |
| 374 | */ |
| 375 | void test_encode64_cmd(void){ |
| 376 | char *z; |
| 377 | int i; |
| @@ -433,11 +433,11 @@ | |
| 433 | return zData; |
| 434 | } |
| 435 | |
| 436 | /* |
| 437 | ** COMMAND: test-decode64 |
| 438 | ** |
| 439 | ** Usage: %fossil test-decode64 STRING |
| 440 | */ |
| 441 | void test_decode64_cmd(void){ |
| 442 | char *z; |
| 443 | int i, n; |
| 444 |
+4
-4
| --- src/event.c | ||
| +++ src/event.c | ||
| @@ -59,11 +59,11 @@ | ||
| 59 | 59 | ** complete. |
| 60 | 60 | ** aid=ARTIFACTID Which specific version of the tech-note. Optional. |
| 61 | 61 | ** v=BOOLEAN Show details if TRUE. Default is FALSE. Optional. |
| 62 | 62 | ** |
| 63 | 63 | ** Display an existing tech-note identified by its ID, optionally at a |
| 64 | -** specific version, and optionally with additional details. | |
| 64 | +** specific version, and optionally with additional details. | |
| 65 | 65 | */ |
| 66 | 66 | void event_page(void){ |
| 67 | 67 | int rid = 0; /* rid of the event artifact */ |
| 68 | 68 | char *zUuid; /* UUID corresponding to rid */ |
| 69 | 69 | const char *zId; /* Event identifier */ |
| @@ -155,11 +155,11 @@ | ||
| 155 | 155 | style_header("%s", blob_str(&title)); |
| 156 | 156 | if( g.perm.WrWiki && g.perm.Write && nextRid==0 ){ |
| 157 | 157 | style_submenu_element("Edit", 0, "%R/technoteedit?name=%!S", zId); |
| 158 | 158 | if( g.perm.Attach ){ |
| 159 | 159 | style_submenu_element("Attach", "Add an attachment", |
| 160 | - "%R/attachadd?technote=%!S&from=%R/technote/%!S", | |
| 160 | + "%R/attachadd?technote=%!S&from=%R/technote/%!S", | |
| 161 | 161 | zId, zId); |
| 162 | 162 | } |
| 163 | 163 | } |
| 164 | 164 | zETime = db_text(0, "SELECT datetime(%.17g)", pTNote->rEventDate); |
| 165 | 165 | style_submenu_element("Context", 0, "%R/timeline?c=%.20s", zId); |
| @@ -235,11 +235,11 @@ | ||
| 235 | 235 | manifest_destroy(pTNote); |
| 236 | 236 | } |
| 237 | 237 | |
| 238 | 238 | /* |
| 239 | 239 | ** Add or update a new tech note to the repository. rid is id of |
| 240 | -** the prior version of this technote, if any. | |
| 240 | +** the prior version of this technote, if any. | |
| 241 | 241 | ** |
| 242 | 242 | ** returns 1 if the tech note was added or updated, 0 if the |
| 243 | 243 | ** update failed making an invalid artifact |
| 244 | 244 | */ |
| 245 | 245 | int event_commit_common( |
| @@ -266,11 +266,11 @@ | ||
| 266 | 266 | blob_appendf(&event, "C %#F\n", n, zComment); |
| 267 | 267 | } |
| 268 | 268 | zDate = date_in_standard_format("now"); |
| 269 | 269 | blob_appendf(&event, "D %s\n", zDate); |
| 270 | 270 | free(zDate); |
| 271 | - | |
| 271 | + | |
| 272 | 272 | zETime[10] = 'T'; |
| 273 | 273 | blob_appendf(&event, "E %s %s\n", zETime, zId); |
| 274 | 274 | zETime[10] = ' '; |
| 275 | 275 | if( rid ){ |
| 276 | 276 | char *zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid); |
| 277 | 277 |
| --- src/event.c | |
| +++ src/event.c | |
| @@ -59,11 +59,11 @@ | |
| 59 | ** complete. |
| 60 | ** aid=ARTIFACTID Which specific version of the tech-note. Optional. |
| 61 | ** v=BOOLEAN Show details if TRUE. Default is FALSE. Optional. |
| 62 | ** |
| 63 | ** Display an existing tech-note identified by its ID, optionally at a |
| 64 | ** specific version, and optionally with additional details. |
| 65 | */ |
| 66 | void event_page(void){ |
| 67 | int rid = 0; /* rid of the event artifact */ |
| 68 | char *zUuid; /* UUID corresponding to rid */ |
| 69 | const char *zId; /* Event identifier */ |
| @@ -155,11 +155,11 @@ | |
| 155 | style_header("%s", blob_str(&title)); |
| 156 | if( g.perm.WrWiki && g.perm.Write && nextRid==0 ){ |
| 157 | style_submenu_element("Edit", 0, "%R/technoteedit?name=%!S", zId); |
| 158 | if( g.perm.Attach ){ |
| 159 | style_submenu_element("Attach", "Add an attachment", |
| 160 | "%R/attachadd?technote=%!S&from=%R/technote/%!S", |
| 161 | zId, zId); |
| 162 | } |
| 163 | } |
| 164 | zETime = db_text(0, "SELECT datetime(%.17g)", pTNote->rEventDate); |
| 165 | style_submenu_element("Context", 0, "%R/timeline?c=%.20s", zId); |
| @@ -235,11 +235,11 @@ | |
| 235 | manifest_destroy(pTNote); |
| 236 | } |
| 237 | |
| 238 | /* |
| 239 | ** Add or update a new tech note to the repository. rid is id of |
| 240 | ** the prior version of this technote, if any. |
| 241 | ** |
| 242 | ** returns 1 if the tech note was added or updated, 0 if the |
| 243 | ** update failed making an invalid artifact |
| 244 | */ |
| 245 | int event_commit_common( |
| @@ -266,11 +266,11 @@ | |
| 266 | blob_appendf(&event, "C %#F\n", n, zComment); |
| 267 | } |
| 268 | zDate = date_in_standard_format("now"); |
| 269 | blob_appendf(&event, "D %s\n", zDate); |
| 270 | free(zDate); |
| 271 | |
| 272 | zETime[10] = 'T'; |
| 273 | blob_appendf(&event, "E %s %s\n", zETime, zId); |
| 274 | zETime[10] = ' '; |
| 275 | if( rid ){ |
| 276 | char *zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid); |
| 277 |
| --- src/event.c | |
| +++ src/event.c | |
| @@ -59,11 +59,11 @@ | |
| 59 | ** complete. |
| 60 | ** aid=ARTIFACTID Which specific version of the tech-note. Optional. |
| 61 | ** v=BOOLEAN Show details if TRUE. Default is FALSE. Optional. |
| 62 | ** |
| 63 | ** Display an existing tech-note identified by its ID, optionally at a |
| 64 | ** specific version, and optionally with additional details. |
| 65 | */ |
| 66 | void event_page(void){ |
| 67 | int rid = 0; /* rid of the event artifact */ |
| 68 | char *zUuid; /* UUID corresponding to rid */ |
| 69 | const char *zId; /* Event identifier */ |
| @@ -155,11 +155,11 @@ | |
| 155 | style_header("%s", blob_str(&title)); |
| 156 | if( g.perm.WrWiki && g.perm.Write && nextRid==0 ){ |
| 157 | style_submenu_element("Edit", 0, "%R/technoteedit?name=%!S", zId); |
| 158 | if( g.perm.Attach ){ |
| 159 | style_submenu_element("Attach", "Add an attachment", |
| 160 | "%R/attachadd?technote=%!S&from=%R/technote/%!S", |
| 161 | zId, zId); |
| 162 | } |
| 163 | } |
| 164 | zETime = db_text(0, "SELECT datetime(%.17g)", pTNote->rEventDate); |
| 165 | style_submenu_element("Context", 0, "%R/timeline?c=%.20s", zId); |
| @@ -235,11 +235,11 @@ | |
| 235 | manifest_destroy(pTNote); |
| 236 | } |
| 237 | |
| 238 | /* |
| 239 | ** Add or update a new tech note to the repository. rid is id of |
| 240 | ** the prior version of this technote, if any. |
| 241 | ** |
| 242 | ** returns 1 if the tech note was added or updated, 0 if the |
| 243 | ** update failed making an invalid artifact |
| 244 | */ |
| 245 | int event_commit_common( |
| @@ -266,11 +266,11 @@ | |
| 266 | blob_appendf(&event, "C %#F\n", n, zComment); |
| 267 | } |
| 268 | zDate = date_in_standard_format("now"); |
| 269 | blob_appendf(&event, "D %s\n", zDate); |
| 270 | free(zDate); |
| 271 | |
| 272 | zETime[10] = 'T'; |
| 273 | blob_appendf(&event, "E %s %s\n", zETime, zId); |
| 274 | zETime[10] = ' '; |
| 275 | if( rid ){ |
| 276 | char *zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid); |
| 277 |
+1
-1
| --- src/file.c | ||
| +++ src/file.c | ||
| @@ -923,11 +923,11 @@ | ||
| 923 | 923 | blob_size(pOut), slash)); |
| 924 | 924 | } |
| 925 | 925 | |
| 926 | 926 | /* |
| 927 | 927 | ** COMMAND: test-canonical-name |
| 928 | -** | |
| 928 | +** | |
| 929 | 929 | ** Usage: %fossil test-canonical-name FILENAME... |
| 930 | 930 | ** |
| 931 | 931 | ** Test the operation of the canonical name generator. |
| 932 | 932 | ** Also test Fossil's ability to measure attributes of a file. |
| 933 | 933 | */ |
| 934 | 934 |
| --- src/file.c | |
| +++ src/file.c | |
| @@ -923,11 +923,11 @@ | |
| 923 | blob_size(pOut), slash)); |
| 924 | } |
| 925 | |
| 926 | /* |
| 927 | ** COMMAND: test-canonical-name |
| 928 | ** |
| 929 | ** Usage: %fossil test-canonical-name FILENAME... |
| 930 | ** |
| 931 | ** Test the operation of the canonical name generator. |
| 932 | ** Also test Fossil's ability to measure attributes of a file. |
| 933 | */ |
| 934 |
| --- src/file.c | |
| +++ src/file.c | |
| @@ -923,11 +923,11 @@ | |
| 923 | blob_size(pOut), slash)); |
| 924 | } |
| 925 | |
| 926 | /* |
| 927 | ** COMMAND: test-canonical-name |
| 928 | ** |
| 929 | ** Usage: %fossil test-canonical-name FILENAME... |
| 930 | ** |
| 931 | ** Test the operation of the canonical name generator. |
| 932 | ** Also test Fossil's ability to measure attributes of a file. |
| 933 | */ |
| 934 |
+7
-2
| --- src/finfo.c | ||
| +++ src/finfo.c | ||
| @@ -282,17 +282,22 @@ | ||
| 282 | 282 | ** |
| 283 | 283 | ** Show the change history for a single file. |
| 284 | 284 | ** |
| 285 | 285 | ** Additional query parameters: |
| 286 | 286 | ** |
| 287 | -** a=DATE Only show changes after DATE | |
| 288 | -** b=DATE Only show changes before DATE | |
| 287 | +** a=DATETIME Only show changes after DATETIME | |
| 288 | +** b=DATETIME Only show changes before DATETIME | |
| 289 | 289 | ** n=NUM Show the first NUM changes only |
| 290 | 290 | ** brbg Background color by branch name |
| 291 | 291 | ** ubg Background color by user name |
| 292 | 292 | ** ci=UUID Ancestors of a particular check-in |
| 293 | 293 | ** showid Show RID values for debugging |
| 294 | +** | |
| 295 | +** DATETIME may be "now" or "YYYY-MM-DDTHH:MM:SS.SSS". If in | |
| 296 | +** year-month-day form, it may be truncated, and it may also name a | |
| 297 | +** timezone offset from UTC as "-HH:MM" (westward) or "+HH:MM" | |
| 298 | +** (eastward). Either no timezone suffix or "Z" means UTC. | |
| 294 | 299 | */ |
| 295 | 300 | void finfo_page(void){ |
| 296 | 301 | Stmt q; |
| 297 | 302 | const char *zFilename; |
| 298 | 303 | char zPrevDate[20]; |
| 299 | 304 |
| --- src/finfo.c | |
| +++ src/finfo.c | |
| @@ -282,17 +282,22 @@ | |
| 282 | ** |
| 283 | ** Show the change history for a single file. |
| 284 | ** |
| 285 | ** Additional query parameters: |
| 286 | ** |
| 287 | ** a=DATE Only show changes after DATE |
| 288 | ** b=DATE Only show changes before DATE |
| 289 | ** n=NUM Show the first NUM changes only |
| 290 | ** brbg Background color by branch name |
| 291 | ** ubg Background color by user name |
| 292 | ** ci=UUID Ancestors of a particular check-in |
| 293 | ** showid Show RID values for debugging |
| 294 | */ |
| 295 | void finfo_page(void){ |
| 296 | Stmt q; |
| 297 | const char *zFilename; |
| 298 | char zPrevDate[20]; |
| 299 |
| --- src/finfo.c | |
| +++ src/finfo.c | |
| @@ -282,17 +282,22 @@ | |
| 282 | ** |
| 283 | ** Show the change history for a single file. |
| 284 | ** |
| 285 | ** Additional query parameters: |
| 286 | ** |
| 287 | ** a=DATETIME Only show changes after DATETIME |
| 288 | ** b=DATETIME Only show changes before DATETIME |
| 289 | ** n=NUM Show the first NUM changes only |
| 290 | ** brbg Background color by branch name |
| 291 | ** ubg Background color by user name |
| 292 | ** ci=UUID Ancestors of a particular check-in |
| 293 | ** showid Show RID values for debugging |
| 294 | ** |
| 295 | ** DATETIME may be "now" or "YYYY-MM-DDTHH:MM:SS.SSS". If in |
| 296 | ** year-month-day form, it may be truncated, and it may also name a |
| 297 | ** timezone offset from UTC as "-HH:MM" (westward) or "+HH:MM" |
| 298 | ** (eastward). Either no timezone suffix or "Z" means UTC. |
| 299 | */ |
| 300 | void finfo_page(void){ |
| 301 | Stmt q; |
| 302 | const char *zFilename; |
| 303 | char zPrevDate[20]; |
| 304 |
+1
-1
| --- src/foci.c | ||
| +++ src/foci.c | ||
| @@ -34,11 +34,11 @@ | ||
| 34 | 34 | ** previousName TEXT, -- Name of the file in previous check-in |
| 35 | 35 | ** perm TEXT, -- Permissions on the file |
| 36 | 36 | ** symname TEXT HIDDEN -- Symbolic name of the check-in. |
| 37 | 37 | ** ); |
| 38 | 38 | ** |
| 39 | -** The hidden symname column is (optionally) used as a query parameter to | |
| 39 | +** The hidden symname column is (optionally) used as a query parameter to | |
| 40 | 40 | ** identify the particular check-in to parse. The checkinID parameter |
| 41 | 41 | ** (such is a unique numeric RID rather than symbolic name) can also be used |
| 42 | 42 | ** to identify the check-in. Example: |
| 43 | 43 | ** |
| 44 | 44 | ** SELECT * FROM files_of_checkin |
| 45 | 45 |
| --- src/foci.c | |
| +++ src/foci.c | |
| @@ -34,11 +34,11 @@ | |
| 34 | ** previousName TEXT, -- Name of the file in previous check-in |
| 35 | ** perm TEXT, -- Permissions on the file |
| 36 | ** symname TEXT HIDDEN -- Symbolic name of the check-in. |
| 37 | ** ); |
| 38 | ** |
| 39 | ** The hidden symname column is (optionally) used as a query parameter to |
| 40 | ** identify the particular check-in to parse. The checkinID parameter |
| 41 | ** (such is a unique numeric RID rather than symbolic name) can also be used |
| 42 | ** to identify the check-in. Example: |
| 43 | ** |
| 44 | ** SELECT * FROM files_of_checkin |
| 45 |
| --- src/foci.c | |
| +++ src/foci.c | |
| @@ -34,11 +34,11 @@ | |
| 34 | ** previousName TEXT, -- Name of the file in previous check-in |
| 35 | ** perm TEXT, -- Permissions on the file |
| 36 | ** symname TEXT HIDDEN -- Symbolic name of the check-in. |
| 37 | ** ); |
| 38 | ** |
| 39 | ** The hidden symname column is (optionally) used as a query parameter to |
| 40 | ** identify the particular check-in to parse. The checkinID parameter |
| 41 | ** (such is a unique numeric RID rather than symbolic name) can also be used |
| 42 | ** to identify the check-in. Example: |
| 43 | ** |
| 44 | ** SELECT * FROM files_of_checkin |
| 45 |
+20
-1
| --- src/info.c | ||
| +++ src/info.c | ||
| @@ -154,10 +154,21 @@ | ||
| 154 | 154 | db_column_text(&s, 1)); |
| 155 | 155 | } |
| 156 | 156 | db_finalize(&s); |
| 157 | 157 | } |
| 158 | 158 | |
| 159 | +/* | |
| 160 | +** Show the parent project, if any | |
| 161 | +*/ | |
| 162 | +static void showParentProject(void){ | |
| 163 | + const char *zParentCode; | |
| 164 | + zParentCode = db_get("parent-project-code",0); | |
| 165 | + if( zParentCode ){ | |
| 166 | + fossil_print("derived-from: %s %s\n", zParentCode, db_get("parent-project-name","")); | |
| 167 | + } | |
| 168 | +} | |
| 169 | + | |
| 159 | 170 | |
| 160 | 171 | /* |
| 161 | 172 | ** COMMAND: info |
| 162 | 173 | ** |
| 163 | 174 | ** Usage: %fossil info ?VERSION | REPOSITORY_FILENAME? ?OPTIONS? |
| @@ -189,10 +200,11 @@ | ||
| 189 | 200 | db_open_config(0, 0); |
| 190 | 201 | db_open_repository(g.argv[2]); |
| 191 | 202 | db_record_repository_filename(g.argv[2]); |
| 192 | 203 | fossil_print("project-name: %s\n", db_get("project-name", "<unnamed>")); |
| 193 | 204 | fossil_print("project-code: %s\n", db_get("project-code", "<none>")); |
| 205 | + showParentProject(); | |
| 194 | 206 | extraRepoInfo(); |
| 195 | 207 | return; |
| 196 | 208 | } |
| 197 | 209 | db_find_and_open_repository(0,0); |
| 198 | 210 | verify_all_options(); |
| @@ -208,10 +220,11 @@ | ||
| 208 | 220 | if( verboseFlag ) extraRepoInfo(); |
| 209 | 221 | if( g.zConfigDbName ){ |
| 210 | 222 | fossil_print("config-db: %s\n", g.zConfigDbName); |
| 211 | 223 | } |
| 212 | 224 | fossil_print("project-code: %s\n", db_get("project-code", "")); |
| 225 | + showParentProject(); | |
| 213 | 226 | vid = g.localOpen ? db_lget_int("checkout", 0) : 0; |
| 214 | 227 | if( vid ){ |
| 215 | 228 | show_common_info(vid, "checkout:", 1, 1); |
| 216 | 229 | } |
| 217 | 230 | fossil_print("check-ins: %d\n", |
| @@ -2825,18 +2838,24 @@ | ||
| 2825 | 2838 | ** |
| 2826 | 2839 | ** --author USER Make USER the author for check-in |
| 2827 | 2840 | ** -m|--comment COMMENT Make COMMENT the check-in comment |
| 2828 | 2841 | ** -M|--message-file FILE Read the amended comment from FILE |
| 2829 | 2842 | ** -e|--edit-comment Launch editor to revise comment |
| 2830 | -** --date DATE Make DATE the check-in time | |
| 2843 | +** --date DATETIME Make DATETIME the check-in time | |
| 2831 | 2844 | ** --bgcolor COLOR Apply COLOR to this check-in |
| 2832 | 2845 | ** --branchcolor COLOR Apply and propagate COLOR to the branch |
| 2833 | 2846 | ** --tag TAG Add new TAG to this check-in |
| 2834 | 2847 | ** --cancel TAG Cancel TAG from this check-in |
| 2835 | 2848 | ** --branch NAME Make this check-in the start of branch NAME |
| 2836 | 2849 | ** --hide Hide branch starting from this check-in |
| 2837 | 2850 | ** --close Mark this "leaf" as closed |
| 2851 | +** | |
| 2852 | +** DATETIME may be "now" or "YYYY-MM-DDTHH:MM:SS.SSS". If in | |
| 2853 | +** year-month-day form, it may be truncated, the "T" may be replaced by | |
| 2854 | +** a space, and it may also name a timezone offset from UTC as "-HH:MM" | |
| 2855 | +** (westward) or "+HH:MM" (eastward). Either no timezone suffix or "Z" | |
| 2856 | +** means UTC. | |
| 2838 | 2857 | */ |
| 2839 | 2858 | void ci_amend_cmd(void){ |
| 2840 | 2859 | int rid; |
| 2841 | 2860 | const char *zComment; /* Current comment on the check-in */ |
| 2842 | 2861 | const char *zNewComment; /* Revised check-in comment */ |
| 2843 | 2862 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -154,10 +154,21 @@ | |
| 154 | db_column_text(&s, 1)); |
| 155 | } |
| 156 | db_finalize(&s); |
| 157 | } |
| 158 | |
| 159 | |
| 160 | /* |
| 161 | ** COMMAND: info |
| 162 | ** |
| 163 | ** Usage: %fossil info ?VERSION | REPOSITORY_FILENAME? ?OPTIONS? |
| @@ -189,10 +200,11 @@ | |
| 189 | db_open_config(0, 0); |
| 190 | db_open_repository(g.argv[2]); |
| 191 | db_record_repository_filename(g.argv[2]); |
| 192 | fossil_print("project-name: %s\n", db_get("project-name", "<unnamed>")); |
| 193 | fossil_print("project-code: %s\n", db_get("project-code", "<none>")); |
| 194 | extraRepoInfo(); |
| 195 | return; |
| 196 | } |
| 197 | db_find_and_open_repository(0,0); |
| 198 | verify_all_options(); |
| @@ -208,10 +220,11 @@ | |
| 208 | if( verboseFlag ) extraRepoInfo(); |
| 209 | if( g.zConfigDbName ){ |
| 210 | fossil_print("config-db: %s\n", g.zConfigDbName); |
| 211 | } |
| 212 | fossil_print("project-code: %s\n", db_get("project-code", "")); |
| 213 | vid = g.localOpen ? db_lget_int("checkout", 0) : 0; |
| 214 | if( vid ){ |
| 215 | show_common_info(vid, "checkout:", 1, 1); |
| 216 | } |
| 217 | fossil_print("check-ins: %d\n", |
| @@ -2825,18 +2838,24 @@ | |
| 2825 | ** |
| 2826 | ** --author USER Make USER the author for check-in |
| 2827 | ** -m|--comment COMMENT Make COMMENT the check-in comment |
| 2828 | ** -M|--message-file FILE Read the amended comment from FILE |
| 2829 | ** -e|--edit-comment Launch editor to revise comment |
| 2830 | ** --date DATE Make DATE the check-in time |
| 2831 | ** --bgcolor COLOR Apply COLOR to this check-in |
| 2832 | ** --branchcolor COLOR Apply and propagate COLOR to the branch |
| 2833 | ** --tag TAG Add new TAG to this check-in |
| 2834 | ** --cancel TAG Cancel TAG from this check-in |
| 2835 | ** --branch NAME Make this check-in the start of branch NAME |
| 2836 | ** --hide Hide branch starting from this check-in |
| 2837 | ** --close Mark this "leaf" as closed |
| 2838 | */ |
| 2839 | void ci_amend_cmd(void){ |
| 2840 | int rid; |
| 2841 | const char *zComment; /* Current comment on the check-in */ |
| 2842 | const char *zNewComment; /* Revised check-in comment */ |
| 2843 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -154,10 +154,21 @@ | |
| 154 | db_column_text(&s, 1)); |
| 155 | } |
| 156 | db_finalize(&s); |
| 157 | } |
| 158 | |
| 159 | /* |
| 160 | ** Show the parent project, if any |
| 161 | */ |
| 162 | static void showParentProject(void){ |
| 163 | const char *zParentCode; |
| 164 | zParentCode = db_get("parent-project-code",0); |
| 165 | if( zParentCode ){ |
| 166 | fossil_print("derived-from: %s %s\n", zParentCode, db_get("parent-project-name","")); |
| 167 | } |
| 168 | } |
| 169 | |
| 170 | |
| 171 | /* |
| 172 | ** COMMAND: info |
| 173 | ** |
| 174 | ** Usage: %fossil info ?VERSION | REPOSITORY_FILENAME? ?OPTIONS? |
| @@ -189,10 +200,11 @@ | |
| 200 | db_open_config(0, 0); |
| 201 | db_open_repository(g.argv[2]); |
| 202 | db_record_repository_filename(g.argv[2]); |
| 203 | fossil_print("project-name: %s\n", db_get("project-name", "<unnamed>")); |
| 204 | fossil_print("project-code: %s\n", db_get("project-code", "<none>")); |
| 205 | showParentProject(); |
| 206 | extraRepoInfo(); |
| 207 | return; |
| 208 | } |
| 209 | db_find_and_open_repository(0,0); |
| 210 | verify_all_options(); |
| @@ -208,10 +220,11 @@ | |
| 220 | if( verboseFlag ) extraRepoInfo(); |
| 221 | if( g.zConfigDbName ){ |
| 222 | fossil_print("config-db: %s\n", g.zConfigDbName); |
| 223 | } |
| 224 | fossil_print("project-code: %s\n", db_get("project-code", "")); |
| 225 | showParentProject(); |
| 226 | vid = g.localOpen ? db_lget_int("checkout", 0) : 0; |
| 227 | if( vid ){ |
| 228 | show_common_info(vid, "checkout:", 1, 1); |
| 229 | } |
| 230 | fossil_print("check-ins: %d\n", |
| @@ -2825,18 +2838,24 @@ | |
| 2838 | ** |
| 2839 | ** --author USER Make USER the author for check-in |
| 2840 | ** -m|--comment COMMENT Make COMMENT the check-in comment |
| 2841 | ** -M|--message-file FILE Read the amended comment from FILE |
| 2842 | ** -e|--edit-comment Launch editor to revise comment |
| 2843 | ** --date DATETIME Make DATETIME the check-in time |
| 2844 | ** --bgcolor COLOR Apply COLOR to this check-in |
| 2845 | ** --branchcolor COLOR Apply and propagate COLOR to the branch |
| 2846 | ** --tag TAG Add new TAG to this check-in |
| 2847 | ** --cancel TAG Cancel TAG from this check-in |
| 2848 | ** --branch NAME Make this check-in the start of branch NAME |
| 2849 | ** --hide Hide branch starting from this check-in |
| 2850 | ** --close Mark this "leaf" as closed |
| 2851 | ** |
| 2852 | ** DATETIME may be "now" or "YYYY-MM-DDTHH:MM:SS.SSS". If in |
| 2853 | ** year-month-day form, it may be truncated, the "T" may be replaced by |
| 2854 | ** a space, and it may also name a timezone offset from UTC as "-HH:MM" |
| 2855 | ** (westward) or "+HH:MM" (eastward). Either no timezone suffix or "Z" |
| 2856 | ** means UTC. |
| 2857 | */ |
| 2858 | void ci_amend_cmd(void){ |
| 2859 | int rid; |
| 2860 | const char *zComment; /* Current comment on the check-in */ |
| 2861 | const char *zNewComment; /* Revised check-in comment */ |
| 2862 |
+1
-1
| --- src/loadctrl.c | ||
| +++ src/loadctrl.c | ||
| @@ -35,11 +35,11 @@ | ||
| 35 | 35 | return 0.0; |
| 36 | 36 | } |
| 37 | 37 | |
| 38 | 38 | /* |
| 39 | 39 | ** COMMAND: test-loadavg |
| 40 | -** | |
| 40 | +** | |
| 41 | 41 | ** %fossil test-loadavg |
| 42 | 42 | ** |
| 43 | 43 | ** Print the load average on the host machine. |
| 44 | 44 | */ |
| 45 | 45 | void loadavg_test_cmd(void){ |
| 46 | 46 |
| --- src/loadctrl.c | |
| +++ src/loadctrl.c | |
| @@ -35,11 +35,11 @@ | |
| 35 | return 0.0; |
| 36 | } |
| 37 | |
| 38 | /* |
| 39 | ** COMMAND: test-loadavg |
| 40 | ** |
| 41 | ** %fossil test-loadavg |
| 42 | ** |
| 43 | ** Print the load average on the host machine. |
| 44 | */ |
| 45 | void loadavg_test_cmd(void){ |
| 46 |
| --- src/loadctrl.c | |
| +++ src/loadctrl.c | |
| @@ -35,11 +35,11 @@ | |
| 35 | return 0.0; |
| 36 | } |
| 37 | |
| 38 | /* |
| 39 | ** COMMAND: test-loadavg |
| 40 | ** |
| 41 | ** %fossil test-loadavg |
| 42 | ** |
| 43 | ** Print the load average on the host machine. |
| 44 | */ |
| 45 | void loadavg_test_cmd(void){ |
| 46 |
+3
-3
| --- src/main.c | ||
| +++ src/main.c | ||
| @@ -592,12 +592,12 @@ | ||
| 592 | 592 | #endif |
| 593 | 593 | { |
| 594 | 594 | const char *zCmdName = "unknown"; |
| 595 | 595 | int idx; |
| 596 | 596 | int rc; |
| 597 | - if( sqlite3_libversion_number()<3010000 ){ | |
| 598 | - fossil_fatal("Unsuitable SQLite version %s, must be at least 3.10.0", | |
| 597 | + if( sqlite3_libversion_number()<3014000 ){ | |
| 598 | + fossil_fatal("Unsuitable SQLite version %s, must be at least 3.14.0", | |
| 599 | 599 | sqlite3_libversion()); |
| 600 | 600 | } |
| 601 | 601 | sqlite3_config(SQLITE_CONFIG_MULTITHREAD); |
| 602 | 602 | sqlite3_config(SQLITE_CONFIG_LOG, fossil_sqlite_log, 0); |
| 603 | 603 | memset(&g, 0, sizeof(g)); |
| @@ -1228,11 +1228,11 @@ | ||
| 1228 | 1228 | putchar('\n'); |
| 1229 | 1229 | } |
| 1230 | 1230 | |
| 1231 | 1231 | /* |
| 1232 | 1232 | ** COMMAND: test-all-help |
| 1233 | -** | |
| 1233 | +** | |
| 1234 | 1234 | ** Usage: %fossil test-all-help ?OPTIONS? |
| 1235 | 1235 | ** |
| 1236 | 1236 | ** Show help text for commands and pages. Useful for proof-reading. |
| 1237 | 1237 | ** Defaults to just the CLI commands. Specify --www to see only the |
| 1238 | 1238 | ** web pages, or --everything to see both commands and pages. |
| 1239 | 1239 |
| --- src/main.c | |
| +++ src/main.c | |
| @@ -592,12 +592,12 @@ | |
| 592 | #endif |
| 593 | { |
| 594 | const char *zCmdName = "unknown"; |
| 595 | int idx; |
| 596 | int rc; |
| 597 | if( sqlite3_libversion_number()<3010000 ){ |
| 598 | fossil_fatal("Unsuitable SQLite version %s, must be at least 3.10.0", |
| 599 | sqlite3_libversion()); |
| 600 | } |
| 601 | sqlite3_config(SQLITE_CONFIG_MULTITHREAD); |
| 602 | sqlite3_config(SQLITE_CONFIG_LOG, fossil_sqlite_log, 0); |
| 603 | memset(&g, 0, sizeof(g)); |
| @@ -1228,11 +1228,11 @@ | |
| 1228 | putchar('\n'); |
| 1229 | } |
| 1230 | |
| 1231 | /* |
| 1232 | ** COMMAND: test-all-help |
| 1233 | ** |
| 1234 | ** Usage: %fossil test-all-help ?OPTIONS? |
| 1235 | ** |
| 1236 | ** Show help text for commands and pages. Useful for proof-reading. |
| 1237 | ** Defaults to just the CLI commands. Specify --www to see only the |
| 1238 | ** web pages, or --everything to see both commands and pages. |
| 1239 |
| --- src/main.c | |
| +++ src/main.c | |
| @@ -592,12 +592,12 @@ | |
| 592 | #endif |
| 593 | { |
| 594 | const char *zCmdName = "unknown"; |
| 595 | int idx; |
| 596 | int rc; |
| 597 | if( sqlite3_libversion_number()<3014000 ){ |
| 598 | fossil_fatal("Unsuitable SQLite version %s, must be at least 3.14.0", |
| 599 | sqlite3_libversion()); |
| 600 | } |
| 601 | sqlite3_config(SQLITE_CONFIG_MULTITHREAD); |
| 602 | sqlite3_config(SQLITE_CONFIG_LOG, fossil_sqlite_log, 0); |
| 603 | memset(&g, 0, sizeof(g)); |
| @@ -1228,11 +1228,11 @@ | |
| 1228 | putchar('\n'); |
| 1229 | } |
| 1230 | |
| 1231 | /* |
| 1232 | ** COMMAND: test-all-help |
| 1233 | ** |
| 1234 | ** Usage: %fossil test-all-help ?OPTIONS? |
| 1235 | ** |
| 1236 | ** Show help text for commands and pages. Useful for proof-reading. |
| 1237 | ** Defaults to just the CLI commands. Specify --www to see only the |
| 1238 | ** web pages, or --everything to see both commands and pages. |
| 1239 |
+1
-1
| --- src/md5.c | ||
| +++ src/md5.c | ||
| @@ -422,11 +422,11 @@ | ||
| 422 | 422 | } |
| 423 | 423 | |
| 424 | 424 | |
| 425 | 425 | /* |
| 426 | 426 | ** COMMAND: md5sum* |
| 427 | -** | |
| 427 | +** | |
| 428 | 428 | ** Usage: %fossil md5sum FILES.... |
| 429 | 429 | ** |
| 430 | 430 | ** Compute an MD5 checksum of all files named on the command-line. |
| 431 | 431 | ** If a file is named "-" then content is read from standard input. |
| 432 | 432 | */ |
| 433 | 433 |
| --- src/md5.c | |
| +++ src/md5.c | |
| @@ -422,11 +422,11 @@ | |
| 422 | } |
| 423 | |
| 424 | |
| 425 | /* |
| 426 | ** COMMAND: md5sum* |
| 427 | ** |
| 428 | ** Usage: %fossil md5sum FILES.... |
| 429 | ** |
| 430 | ** Compute an MD5 checksum of all files named on the command-line. |
| 431 | ** If a file is named "-" then content is read from standard input. |
| 432 | */ |
| 433 |
| --- src/md5.c | |
| +++ src/md5.c | |
| @@ -422,11 +422,11 @@ | |
| 422 | } |
| 423 | |
| 424 | |
| 425 | /* |
| 426 | ** COMMAND: md5sum* |
| 427 | ** |
| 428 | ** Usage: %fossil md5sum FILES.... |
| 429 | ** |
| 430 | ** Compute an MD5 checksum of all files named on the command-line. |
| 431 | ** If a file is named "-" then content is read from standard input. |
| 432 | */ |
| 433 |
+3
-3
| --- src/name.c | ||
| +++ src/name.c | ||
| @@ -665,11 +665,11 @@ | ||
| 665 | 665 | db_finalize(&q); |
| 666 | 666 | } |
| 667 | 667 | |
| 668 | 668 | /* |
| 669 | 669 | ** COMMAND: whatis* |
| 670 | -** | |
| 670 | +** | |
| 671 | 671 | ** Usage: %fossil whatis NAME |
| 672 | 672 | ** |
| 673 | 673 | ** Resolve the symbol NAME into its canonical 40-character SHA1-hash |
| 674 | 674 | ** artifact name and provide a description of what role that artifact |
| 675 | 675 | ** plays. |
| @@ -721,11 +721,11 @@ | ||
| 721 | 721 | } |
| 722 | 722 | } |
| 723 | 723 | |
| 724 | 724 | /* |
| 725 | 725 | ** COMMAND: test-whatis-all |
| 726 | -** | |
| 726 | +** | |
| 727 | 727 | ** Usage: %fossil test-whatis-all |
| 728 | 728 | ** |
| 729 | 729 | ** Show "whatis" information about every artifact in the repository |
| 730 | 730 | */ |
| 731 | 731 | void test_whatis_all_cmd(void){ |
| @@ -741,11 +741,11 @@ | ||
| 741 | 741 | } |
| 742 | 742 | |
| 743 | 743 | |
| 744 | 744 | /* |
| 745 | 745 | ** COMMAND: test-ambiguous |
| 746 | -** | |
| 746 | +** | |
| 747 | 747 | ** Usage: %fossil test-ambiguous [--minsize N] |
| 748 | 748 | ** |
| 749 | 749 | ** Show a list of ambiguous SHA1-hash abbreviations of N characters or |
| 750 | 750 | ** more where N defaults to 4. Change N to a different value using |
| 751 | 751 | ** the "--minsize N" command-line option. |
| 752 | 752 |
| --- src/name.c | |
| +++ src/name.c | |
| @@ -665,11 +665,11 @@ | |
| 665 | db_finalize(&q); |
| 666 | } |
| 667 | |
| 668 | /* |
| 669 | ** COMMAND: whatis* |
| 670 | ** |
| 671 | ** Usage: %fossil whatis NAME |
| 672 | ** |
| 673 | ** Resolve the symbol NAME into its canonical 40-character SHA1-hash |
| 674 | ** artifact name and provide a description of what role that artifact |
| 675 | ** plays. |
| @@ -721,11 +721,11 @@ | |
| 721 | } |
| 722 | } |
| 723 | |
| 724 | /* |
| 725 | ** COMMAND: test-whatis-all |
| 726 | ** |
| 727 | ** Usage: %fossil test-whatis-all |
| 728 | ** |
| 729 | ** Show "whatis" information about every artifact in the repository |
| 730 | */ |
| 731 | void test_whatis_all_cmd(void){ |
| @@ -741,11 +741,11 @@ | |
| 741 | } |
| 742 | |
| 743 | |
| 744 | /* |
| 745 | ** COMMAND: test-ambiguous |
| 746 | ** |
| 747 | ** Usage: %fossil test-ambiguous [--minsize N] |
| 748 | ** |
| 749 | ** Show a list of ambiguous SHA1-hash abbreviations of N characters or |
| 750 | ** more where N defaults to 4. Change N to a different value using |
| 751 | ** the "--minsize N" command-line option. |
| 752 |
| --- src/name.c | |
| +++ src/name.c | |
| @@ -665,11 +665,11 @@ | |
| 665 | db_finalize(&q); |
| 666 | } |
| 667 | |
| 668 | /* |
| 669 | ** COMMAND: whatis* |
| 670 | ** |
| 671 | ** Usage: %fossil whatis NAME |
| 672 | ** |
| 673 | ** Resolve the symbol NAME into its canonical 40-character SHA1-hash |
| 674 | ** artifact name and provide a description of what role that artifact |
| 675 | ** plays. |
| @@ -721,11 +721,11 @@ | |
| 721 | } |
| 722 | } |
| 723 | |
| 724 | /* |
| 725 | ** COMMAND: test-whatis-all |
| 726 | ** |
| 727 | ** Usage: %fossil test-whatis-all |
| 728 | ** |
| 729 | ** Show "whatis" information about every artifact in the repository |
| 730 | */ |
| 731 | void test_whatis_all_cmd(void){ |
| @@ -741,11 +741,11 @@ | |
| 741 | } |
| 742 | |
| 743 | |
| 744 | /* |
| 745 | ** COMMAND: test-ambiguous |
| 746 | ** |
| 747 | ** Usage: %fossil test-ambiguous [--minsize N] |
| 748 | ** |
| 749 | ** Show a list of ambiguous SHA1-hash abbreviations of N characters or |
| 750 | ** more where N defaults to 4. Change N to a different value using |
| 751 | ** the "--minsize N" command-line option. |
| 752 |
+2
-2
| --- src/purge.c | ||
| +++ src/purge.c | ||
| @@ -464,21 +464,21 @@ | ||
| 464 | 464 | ** ==== FURTHER WARNING: This command is a work-in-progress and may yet ==== |
| 465 | 465 | ** ==== contain bugs. ==== |
| 466 | 466 | ** |
| 467 | 467 | ** fossil purge artifacts UUID... ?OPTIONS? |
| 468 | 468 | ** |
| 469 | -** Move arbitrary artifacts identified by the UUID list into the | |
| 469 | +** Move arbitrary artifacts identified by the UUID list into the | |
| 470 | 470 | ** graveyard. |
| 471 | 471 | ** |
| 472 | 472 | ** fossil purge cat UUID... |
| 473 | 473 | ** |
| 474 | 474 | ** Write the content of one or more artifacts in the graveyard onto |
| 475 | 475 | ** standard output. |
| 476 | 476 | ** |
| 477 | 477 | ** fossil purge checkins TAGS... ?OPTIONS? |
| 478 | 478 | ** |
| 479 | -** Move the check-ins or branches identified by TAGS and all of | |
| 479 | +** Move the check-ins or branches identified by TAGS and all of | |
| 480 | 480 | ** their descendants out of the repository and into the graveyard. |
| 481 | 481 | ** If TAGS includes a branch name then it means all the check-ins |
| 482 | 482 | ** on the most recent occurrence of that branch. |
| 483 | 483 | ** |
| 484 | 484 | ** fossil purge files NAME ... ?OPTIONS? |
| 485 | 485 |
| --- src/purge.c | |
| +++ src/purge.c | |
| @@ -464,21 +464,21 @@ | |
| 464 | ** ==== FURTHER WARNING: This command is a work-in-progress and may yet ==== |
| 465 | ** ==== contain bugs. ==== |
| 466 | ** |
| 467 | ** fossil purge artifacts UUID... ?OPTIONS? |
| 468 | ** |
| 469 | ** Move arbitrary artifacts identified by the UUID list into the |
| 470 | ** graveyard. |
| 471 | ** |
| 472 | ** fossil purge cat UUID... |
| 473 | ** |
| 474 | ** Write the content of one or more artifacts in the graveyard onto |
| 475 | ** standard output. |
| 476 | ** |
| 477 | ** fossil purge checkins TAGS... ?OPTIONS? |
| 478 | ** |
| 479 | ** Move the check-ins or branches identified by TAGS and all of |
| 480 | ** their descendants out of the repository and into the graveyard. |
| 481 | ** If TAGS includes a branch name then it means all the check-ins |
| 482 | ** on the most recent occurrence of that branch. |
| 483 | ** |
| 484 | ** fossil purge files NAME ... ?OPTIONS? |
| 485 |
| --- src/purge.c | |
| +++ src/purge.c | |
| @@ -464,21 +464,21 @@ | |
| 464 | ** ==== FURTHER WARNING: This command is a work-in-progress and may yet ==== |
| 465 | ** ==== contain bugs. ==== |
| 466 | ** |
| 467 | ** fossil purge artifacts UUID... ?OPTIONS? |
| 468 | ** |
| 469 | ** Move arbitrary artifacts identified by the UUID list into the |
| 470 | ** graveyard. |
| 471 | ** |
| 472 | ** fossil purge cat UUID... |
| 473 | ** |
| 474 | ** Write the content of one or more artifacts in the graveyard onto |
| 475 | ** standard output. |
| 476 | ** |
| 477 | ** fossil purge checkins TAGS... ?OPTIONS? |
| 478 | ** |
| 479 | ** Move the check-ins or branches identified by TAGS and all of |
| 480 | ** their descendants out of the repository and into the graveyard. |
| 481 | ** If TAGS includes a branch name then it means all the check-ins |
| 482 | ** on the most recent occurrence of that branch. |
| 483 | ** |
| 484 | ** fossil purge files NAME ... ?OPTIONS? |
| 485 |
+2
-2
| --- src/rebuild.c | ||
| +++ src/rebuild.c | ||
| @@ -683,11 +683,11 @@ | ||
| 683 | 683 | } |
| 684 | 684 | } |
| 685 | 685 | |
| 686 | 686 | /* |
| 687 | 687 | ** COMMAND: test-detach |
| 688 | -** | |
| 688 | +** | |
| 689 | 689 | ** Usage: %fossil test-detach ?REPOSITORY? |
| 690 | 690 | ** |
| 691 | 691 | ** Change the project-code and make other changes in order to prevent |
| 692 | 692 | ** the repository from ever again pushing or pulling to other |
| 693 | 693 | ** repositories. Used to create a "test" repository for development |
| @@ -796,11 +796,11 @@ | ||
| 796 | 796 | } |
| 797 | 797 | } |
| 798 | 798 | |
| 799 | 799 | /* |
| 800 | 800 | ** COMMAND: scrub* |
| 801 | -** | |
| 801 | +** | |
| 802 | 802 | ** Usage: %fossil scrub ?OPTIONS? ?REPOSITORY? |
| 803 | 803 | ** |
| 804 | 804 | ** The command removes sensitive information (such as passwords) from a |
| 805 | 805 | ** repository so that the repository can be sent to an untrusted reader. |
| 806 | 806 | ** |
| 807 | 807 |
| --- src/rebuild.c | |
| +++ src/rebuild.c | |
| @@ -683,11 +683,11 @@ | |
| 683 | } |
| 684 | } |
| 685 | |
| 686 | /* |
| 687 | ** COMMAND: test-detach |
| 688 | ** |
| 689 | ** Usage: %fossil test-detach ?REPOSITORY? |
| 690 | ** |
| 691 | ** Change the project-code and make other changes in order to prevent |
| 692 | ** the repository from ever again pushing or pulling to other |
| 693 | ** repositories. Used to create a "test" repository for development |
| @@ -796,11 +796,11 @@ | |
| 796 | } |
| 797 | } |
| 798 | |
| 799 | /* |
| 800 | ** COMMAND: scrub* |
| 801 | ** |
| 802 | ** Usage: %fossil scrub ?OPTIONS? ?REPOSITORY? |
| 803 | ** |
| 804 | ** The command removes sensitive information (such as passwords) from a |
| 805 | ** repository so that the repository can be sent to an untrusted reader. |
| 806 | ** |
| 807 |
| --- src/rebuild.c | |
| +++ src/rebuild.c | |
| @@ -683,11 +683,11 @@ | |
| 683 | } |
| 684 | } |
| 685 | |
| 686 | /* |
| 687 | ** COMMAND: test-detach |
| 688 | ** |
| 689 | ** Usage: %fossil test-detach ?REPOSITORY? |
| 690 | ** |
| 691 | ** Change the project-code and make other changes in order to prevent |
| 692 | ** the repository from ever again pushing or pulling to other |
| 693 | ** repositories. Used to create a "test" repository for development |
| @@ -796,11 +796,11 @@ | |
| 796 | } |
| 797 | } |
| 798 | |
| 799 | /* |
| 800 | ** COMMAND: scrub* |
| 801 | ** |
| 802 | ** Usage: %fossil scrub ?OPTIONS? ?REPOSITORY? |
| 803 | ** |
| 804 | ** The command removes sensitive information (such as passwords) from a |
| 805 | ** repository so that the repository can be sent to an untrusted reader. |
| 806 | ** |
| 807 |
+32
-12
| --- src/sqlite3.c | ||
| +++ src/sqlite3.c | ||
| @@ -1,8 +1,8 @@ | ||
| 1 | 1 | /****************************************************************************** |
| 2 | 2 | ** This file is an amalgamation of many separate C source files from SQLite |
| 3 | -** version 3.14.0. By combining all the individual C code files into this | |
| 3 | +** version 3.14.1. By combining all the individual C code files into this | |
| 4 | 4 | ** single large file, the entire code can be compiled as a single translation |
| 5 | 5 | ** unit. This allows many compilers to do optimizations that would not be |
| 6 | 6 | ** possible if the files were compiled separately. Performance improvements |
| 7 | 7 | ** of 5% or more are commonly seen when SQLite is compiled as a single |
| 8 | 8 | ** translation unit. |
| @@ -378,13 +378,13 @@ | ||
| 378 | 378 | ** |
| 379 | 379 | ** See also: [sqlite3_libversion()], |
| 380 | 380 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 381 | 381 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 382 | 382 | */ |
| 383 | -#define SQLITE_VERSION "3.14.0" | |
| 384 | -#define SQLITE_VERSION_NUMBER 3014000 | |
| 385 | -#define SQLITE_SOURCE_ID "2016-08-08 13:40:27 d5e98057028abcf7217d0d2b2e29bbbcdf09d6de" | |
| 383 | +#define SQLITE_VERSION "3.14.1" | |
| 384 | +#define SQLITE_VERSION_NUMBER 3014001 | |
| 385 | +#define SQLITE_SOURCE_ID "2016-08-11 18:53:32 a12d8059770df4bca59e321c266410344242bf7b" | |
| 386 | 386 | |
| 387 | 387 | /* |
| 388 | 388 | ** CAPI3REF: Run-Time Library Version Numbers |
| 389 | 389 | ** KEYWORDS: sqlite3_version, sqlite3_sourceid |
| 390 | 390 | ** |
| @@ -44996,29 +44996,49 @@ | ||
| 44996 | 44996 | */ |
| 44997 | 44997 | static void pcache1TruncateUnsafe( |
| 44998 | 44998 | PCache1 *pCache, /* The cache to truncate */ |
| 44999 | 44999 | unsigned int iLimit /* Drop pages with this pgno or larger */ |
| 45000 | 45000 | ){ |
| 45001 | - TESTONLY( unsigned int nPage = 0; ) /* To assert pCache->nPage is correct */ | |
| 45002 | - unsigned int h; | |
| 45001 | + TESTONLY( int nPage = 0; ) /* To assert pCache->nPage is correct */ | |
| 45002 | + unsigned int h, iStop; | |
| 45003 | 45003 | assert( sqlite3_mutex_held(pCache->pGroup->mutex) ); |
| 45004 | - for(h=0; h<pCache->nHash; h++){ | |
| 45005 | - PgHdr1 **pp = &pCache->apHash[h]; | |
| 45004 | + assert( pCache->iMaxKey >= iLimit ); | |
| 45005 | + assert( pCache->nHash > 0 ); | |
| 45006 | + if( pCache->iMaxKey - iLimit < pCache->nHash ){ | |
| 45007 | + /* If we are just shaving the last few pages off the end of the | |
| 45008 | + ** cache, then there is no point in scanning the entire hash table. | |
| 45009 | + ** Only scan those hash slots that might contain pages that need to | |
| 45010 | + ** be removed. */ | |
| 45011 | + h = iLimit % pCache->nHash; | |
| 45012 | + iStop = pCache->iMaxKey % pCache->nHash; | |
| 45013 | + TESTONLY( nPage = -10; ) /* Disable the pCache->nPage validity check */ | |
| 45014 | + }else{ | |
| 45015 | + /* This is the general case where many pages are being removed. | |
| 45016 | + ** It is necessary to scan the entire hash table */ | |
| 45017 | + h = pCache->nHash/2; | |
| 45018 | + iStop = h - 1; | |
| 45019 | + } | |
| 45020 | + for(;;){ | |
| 45021 | + PgHdr1 **pp; | |
| 45006 | 45022 | PgHdr1 *pPage; |
| 45023 | + assert( h<pCache->nHash ); | |
| 45024 | + pp = &pCache->apHash[h]; | |
| 45007 | 45025 | while( (pPage = *pp)!=0 ){ |
| 45008 | 45026 | if( pPage->iKey>=iLimit ){ |
| 45009 | 45027 | pCache->nPage--; |
| 45010 | 45028 | *pp = pPage->pNext; |
| 45011 | 45029 | if( !pPage->isPinned ) pcache1PinPage(pPage); |
| 45012 | 45030 | pcache1FreePage(pPage); |
| 45013 | 45031 | }else{ |
| 45014 | 45032 | pp = &pPage->pNext; |
| 45015 | - TESTONLY( nPage++; ) | |
| 45033 | + TESTONLY( if( nPage>=0 ) nPage++; ) | |
| 45016 | 45034 | } |
| 45017 | 45035 | } |
| 45036 | + if( h==iStop ) break; | |
| 45037 | + h = (h+1) % pCache->nHash; | |
| 45018 | 45038 | } |
| 45019 | - assert( pCache->nPage==nPage ); | |
| 45039 | + assert( nPage<0 || pCache->nPage==(unsigned)nPage ); | |
| 45020 | 45040 | } |
| 45021 | 45041 | |
| 45022 | 45042 | /******************************************************************************/ |
| 45023 | 45043 | /******** sqlite3_pcache Methods **********************************************/ |
| 45024 | 45044 | |
| @@ -45491,11 +45511,11 @@ | ||
| 45491 | 45511 | static void pcache1Destroy(sqlite3_pcache *p){ |
| 45492 | 45512 | PCache1 *pCache = (PCache1 *)p; |
| 45493 | 45513 | PGroup *pGroup = pCache->pGroup; |
| 45494 | 45514 | assert( pCache->bPurgeable || (pCache->nMax==0 && pCache->nMin==0) ); |
| 45495 | 45515 | pcache1EnterMutex(pGroup); |
| 45496 | - pcache1TruncateUnsafe(pCache, 0); | |
| 45516 | + if( pCache->nPage ) pcache1TruncateUnsafe(pCache, 0); | |
| 45497 | 45517 | assert( pGroup->nMaxPage >= pCache->nMax ); |
| 45498 | 45518 | pGroup->nMaxPage -= pCache->nMax; |
| 45499 | 45519 | assert( pGroup->nMinPage >= pCache->nMin ); |
| 45500 | 45520 | pGroup->nMinPage -= pCache->nMin; |
| 45501 | 45521 | pGroup->mxPinned = pGroup->nMaxPage + 10 - pGroup->nMinPage; |
| @@ -193998,11 +194018,11 @@ | ||
| 193998 | 194018 | int nArg, /* Number of args */ |
| 193999 | 194019 | sqlite3_value **apUnused /* Function arguments */ |
| 194000 | 194020 | ){ |
| 194001 | 194021 | assert( nArg==0 ); |
| 194002 | 194022 | UNUSED_PARAM2(nArg, apUnused); |
| 194003 | - sqlite3_result_text(pCtx, "fts5: 2016-08-05 20:54:45 95578898835b933901603bd4d5e063f1219a016f", -1, SQLITE_TRANSIENT); | |
| 194023 | + sqlite3_result_text(pCtx, "fts5: 2016-08-11 18:53:32 a12d8059770df4bca59e321c266410344242bf7b", -1, SQLITE_TRANSIENT); | |
| 194004 | 194024 | } |
| 194005 | 194025 | |
| 194006 | 194026 | static int fts5Init(sqlite3 *db){ |
| 194007 | 194027 | static const sqlite3_module fts5Mod = { |
| 194008 | 194028 | /* iVersion */ 2, |
| 194009 | 194029 |
| --- src/sqlite3.c | |
| +++ src/sqlite3.c | |
| @@ -1,8 +1,8 @@ | |
| 1 | /****************************************************************************** |
| 2 | ** This file is an amalgamation of many separate C source files from SQLite |
| 3 | ** version 3.14.0. By combining all the individual C code files into this |
| 4 | ** single large file, the entire code can be compiled as a single translation |
| 5 | ** unit. This allows many compilers to do optimizations that would not be |
| 6 | ** possible if the files were compiled separately. Performance improvements |
| 7 | ** of 5% or more are commonly seen when SQLite is compiled as a single |
| 8 | ** translation unit. |
| @@ -378,13 +378,13 @@ | |
| 378 | ** |
| 379 | ** See also: [sqlite3_libversion()], |
| 380 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 381 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 382 | */ |
| 383 | #define SQLITE_VERSION "3.14.0" |
| 384 | #define SQLITE_VERSION_NUMBER 3014000 |
| 385 | #define SQLITE_SOURCE_ID "2016-08-08 13:40:27 d5e98057028abcf7217d0d2b2e29bbbcdf09d6de" |
| 386 | |
| 387 | /* |
| 388 | ** CAPI3REF: Run-Time Library Version Numbers |
| 389 | ** KEYWORDS: sqlite3_version, sqlite3_sourceid |
| 390 | ** |
| @@ -44996,29 +44996,49 @@ | |
| 44996 | */ |
| 44997 | static void pcache1TruncateUnsafe( |
| 44998 | PCache1 *pCache, /* The cache to truncate */ |
| 44999 | unsigned int iLimit /* Drop pages with this pgno or larger */ |
| 45000 | ){ |
| 45001 | TESTONLY( unsigned int nPage = 0; ) /* To assert pCache->nPage is correct */ |
| 45002 | unsigned int h; |
| 45003 | assert( sqlite3_mutex_held(pCache->pGroup->mutex) ); |
| 45004 | for(h=0; h<pCache->nHash; h++){ |
| 45005 | PgHdr1 **pp = &pCache->apHash[h]; |
| 45006 | PgHdr1 *pPage; |
| 45007 | while( (pPage = *pp)!=0 ){ |
| 45008 | if( pPage->iKey>=iLimit ){ |
| 45009 | pCache->nPage--; |
| 45010 | *pp = pPage->pNext; |
| 45011 | if( !pPage->isPinned ) pcache1PinPage(pPage); |
| 45012 | pcache1FreePage(pPage); |
| 45013 | }else{ |
| 45014 | pp = &pPage->pNext; |
| 45015 | TESTONLY( nPage++; ) |
| 45016 | } |
| 45017 | } |
| 45018 | } |
| 45019 | assert( pCache->nPage==nPage ); |
| 45020 | } |
| 45021 | |
| 45022 | /******************************************************************************/ |
| 45023 | /******** sqlite3_pcache Methods **********************************************/ |
| 45024 | |
| @@ -45491,11 +45511,11 @@ | |
| 45491 | static void pcache1Destroy(sqlite3_pcache *p){ |
| 45492 | PCache1 *pCache = (PCache1 *)p; |
| 45493 | PGroup *pGroup = pCache->pGroup; |
| 45494 | assert( pCache->bPurgeable || (pCache->nMax==0 && pCache->nMin==0) ); |
| 45495 | pcache1EnterMutex(pGroup); |
| 45496 | pcache1TruncateUnsafe(pCache, 0); |
| 45497 | assert( pGroup->nMaxPage >= pCache->nMax ); |
| 45498 | pGroup->nMaxPage -= pCache->nMax; |
| 45499 | assert( pGroup->nMinPage >= pCache->nMin ); |
| 45500 | pGroup->nMinPage -= pCache->nMin; |
| 45501 | pGroup->mxPinned = pGroup->nMaxPage + 10 - pGroup->nMinPage; |
| @@ -193998,11 +194018,11 @@ | |
| 193998 | int nArg, /* Number of args */ |
| 193999 | sqlite3_value **apUnused /* Function arguments */ |
| 194000 | ){ |
| 194001 | assert( nArg==0 ); |
| 194002 | UNUSED_PARAM2(nArg, apUnused); |
| 194003 | sqlite3_result_text(pCtx, "fts5: 2016-08-05 20:54:45 95578898835b933901603bd4d5e063f1219a016f", -1, SQLITE_TRANSIENT); |
| 194004 | } |
| 194005 | |
| 194006 | static int fts5Init(sqlite3 *db){ |
| 194007 | static const sqlite3_module fts5Mod = { |
| 194008 | /* iVersion */ 2, |
| 194009 |
| --- src/sqlite3.c | |
| +++ src/sqlite3.c | |
| @@ -1,8 +1,8 @@ | |
| 1 | /****************************************************************************** |
| 2 | ** This file is an amalgamation of many separate C source files from SQLite |
| 3 | ** version 3.14.1. By combining all the individual C code files into this |
| 4 | ** single large file, the entire code can be compiled as a single translation |
| 5 | ** unit. This allows many compilers to do optimizations that would not be |
| 6 | ** possible if the files were compiled separately. Performance improvements |
| 7 | ** of 5% or more are commonly seen when SQLite is compiled as a single |
| 8 | ** translation unit. |
| @@ -378,13 +378,13 @@ | |
| 378 | ** |
| 379 | ** See also: [sqlite3_libversion()], |
| 380 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 381 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 382 | */ |
| 383 | #define SQLITE_VERSION "3.14.1" |
| 384 | #define SQLITE_VERSION_NUMBER 3014001 |
| 385 | #define SQLITE_SOURCE_ID "2016-08-11 18:53:32 a12d8059770df4bca59e321c266410344242bf7b" |
| 386 | |
| 387 | /* |
| 388 | ** CAPI3REF: Run-Time Library Version Numbers |
| 389 | ** KEYWORDS: sqlite3_version, sqlite3_sourceid |
| 390 | ** |
| @@ -44996,29 +44996,49 @@ | |
| 44996 | */ |
| 44997 | static void pcache1TruncateUnsafe( |
| 44998 | PCache1 *pCache, /* The cache to truncate */ |
| 44999 | unsigned int iLimit /* Drop pages with this pgno or larger */ |
| 45000 | ){ |
| 45001 | TESTONLY( int nPage = 0; ) /* To assert pCache->nPage is correct */ |
| 45002 | unsigned int h, iStop; |
| 45003 | assert( sqlite3_mutex_held(pCache->pGroup->mutex) ); |
| 45004 | assert( pCache->iMaxKey >= iLimit ); |
| 45005 | assert( pCache->nHash > 0 ); |
| 45006 | if( pCache->iMaxKey - iLimit < pCache->nHash ){ |
| 45007 | /* If we are just shaving the last few pages off the end of the |
| 45008 | ** cache, then there is no point in scanning the entire hash table. |
| 45009 | ** Only scan those hash slots that might contain pages that need to |
| 45010 | ** be removed. */ |
| 45011 | h = iLimit % pCache->nHash; |
| 45012 | iStop = pCache->iMaxKey % pCache->nHash; |
| 45013 | TESTONLY( nPage = -10; ) /* Disable the pCache->nPage validity check */ |
| 45014 | }else{ |
| 45015 | /* This is the general case where many pages are being removed. |
| 45016 | ** It is necessary to scan the entire hash table */ |
| 45017 | h = pCache->nHash/2; |
| 45018 | iStop = h - 1; |
| 45019 | } |
| 45020 | for(;;){ |
| 45021 | PgHdr1 **pp; |
| 45022 | PgHdr1 *pPage; |
| 45023 | assert( h<pCache->nHash ); |
| 45024 | pp = &pCache->apHash[h]; |
| 45025 | while( (pPage = *pp)!=0 ){ |
| 45026 | if( pPage->iKey>=iLimit ){ |
| 45027 | pCache->nPage--; |
| 45028 | *pp = pPage->pNext; |
| 45029 | if( !pPage->isPinned ) pcache1PinPage(pPage); |
| 45030 | pcache1FreePage(pPage); |
| 45031 | }else{ |
| 45032 | pp = &pPage->pNext; |
| 45033 | TESTONLY( if( nPage>=0 ) nPage++; ) |
| 45034 | } |
| 45035 | } |
| 45036 | if( h==iStop ) break; |
| 45037 | h = (h+1) % pCache->nHash; |
| 45038 | } |
| 45039 | assert( nPage<0 || pCache->nPage==(unsigned)nPage ); |
| 45040 | } |
| 45041 | |
| 45042 | /******************************************************************************/ |
| 45043 | /******** sqlite3_pcache Methods **********************************************/ |
| 45044 | |
| @@ -45491,11 +45511,11 @@ | |
| 45511 | static void pcache1Destroy(sqlite3_pcache *p){ |
| 45512 | PCache1 *pCache = (PCache1 *)p; |
| 45513 | PGroup *pGroup = pCache->pGroup; |
| 45514 | assert( pCache->bPurgeable || (pCache->nMax==0 && pCache->nMin==0) ); |
| 45515 | pcache1EnterMutex(pGroup); |
| 45516 | if( pCache->nPage ) pcache1TruncateUnsafe(pCache, 0); |
| 45517 | assert( pGroup->nMaxPage >= pCache->nMax ); |
| 45518 | pGroup->nMaxPage -= pCache->nMax; |
| 45519 | assert( pGroup->nMinPage >= pCache->nMin ); |
| 45520 | pGroup->nMinPage -= pCache->nMin; |
| 45521 | pGroup->mxPinned = pGroup->nMaxPage + 10 - pGroup->nMinPage; |
| @@ -193998,11 +194018,11 @@ | |
| 194018 | int nArg, /* Number of args */ |
| 194019 | sqlite3_value **apUnused /* Function arguments */ |
| 194020 | ){ |
| 194021 | assert( nArg==0 ); |
| 194022 | UNUSED_PARAM2(nArg, apUnused); |
| 194023 | sqlite3_result_text(pCtx, "fts5: 2016-08-11 18:53:32 a12d8059770df4bca59e321c266410344242bf7b", -1, SQLITE_TRANSIENT); |
| 194024 | } |
| 194025 | |
| 194026 | static int fts5Init(sqlite3 *db){ |
| 194027 | static const sqlite3_module fts5Mod = { |
| 194028 | /* iVersion */ 2, |
| 194029 |
+3
-3
| --- src/sqlite3.h | ||
| +++ src/sqlite3.h | ||
| @@ -118,13 +118,13 @@ | ||
| 118 | 118 | ** |
| 119 | 119 | ** See also: [sqlite3_libversion()], |
| 120 | 120 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 121 | 121 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 122 | 122 | */ |
| 123 | -#define SQLITE_VERSION "3.14.0" | |
| 124 | -#define SQLITE_VERSION_NUMBER 3014000 | |
| 125 | -#define SQLITE_SOURCE_ID "2016-08-08 13:40:27 d5e98057028abcf7217d0d2b2e29bbbcdf09d6de" | |
| 123 | +#define SQLITE_VERSION "3.14.1" | |
| 124 | +#define SQLITE_VERSION_NUMBER 3014001 | |
| 125 | +#define SQLITE_SOURCE_ID "2016-08-11 18:53:32 a12d8059770df4bca59e321c266410344242bf7b" | |
| 126 | 126 | |
| 127 | 127 | /* |
| 128 | 128 | ** CAPI3REF: Run-Time Library Version Numbers |
| 129 | 129 | ** KEYWORDS: sqlite3_version, sqlite3_sourceid |
| 130 | 130 | ** |
| 131 | 131 |
| --- src/sqlite3.h | |
| +++ src/sqlite3.h | |
| @@ -118,13 +118,13 @@ | |
| 118 | ** |
| 119 | ** See also: [sqlite3_libversion()], |
| 120 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 121 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 122 | */ |
| 123 | #define SQLITE_VERSION "3.14.0" |
| 124 | #define SQLITE_VERSION_NUMBER 3014000 |
| 125 | #define SQLITE_SOURCE_ID "2016-08-08 13:40:27 d5e98057028abcf7217d0d2b2e29bbbcdf09d6de" |
| 126 | |
| 127 | /* |
| 128 | ** CAPI3REF: Run-Time Library Version Numbers |
| 129 | ** KEYWORDS: sqlite3_version, sqlite3_sourceid |
| 130 | ** |
| 131 |
| --- src/sqlite3.h | |
| +++ src/sqlite3.h | |
| @@ -118,13 +118,13 @@ | |
| 118 | ** |
| 119 | ** See also: [sqlite3_libversion()], |
| 120 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 121 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 122 | */ |
| 123 | #define SQLITE_VERSION "3.14.1" |
| 124 | #define SQLITE_VERSION_NUMBER 3014001 |
| 125 | #define SQLITE_SOURCE_ID "2016-08-11 18:53:32 a12d8059770df4bca59e321c266410344242bf7b" |
| 126 | |
| 127 | /* |
| 128 | ** CAPI3REF: Run-Time Library Version Numbers |
| 129 | ** KEYWORDS: sqlite3_version, sqlite3_sourceid |
| 130 | ** |
| 131 |
+8
-2
| --- src/stat.c | ||
| +++ src/stat.c | ||
| @@ -147,13 +147,19 @@ | ||
| 147 | 147 | " + 0.99"); |
| 148 | 148 | @ %d(n) days or approximately %.2f(n/365.2425) years. |
| 149 | 149 | @ </td></tr> |
| 150 | 150 | p = db_get("project-code", 0); |
| 151 | 151 | if( p ){ |
| 152 | - @ <tr><th>Project ID:</th><td>%h(p)</td></tr> | |
| 152 | + @ <tr><th>Project ID:</th> | |
| 153 | + @ <td>%h(p) %h(db_get("project-name",""))</td></tr> | |
| 154 | + } | |
| 155 | + p = db_get("parent-project-code", 0); | |
| 156 | + if( p ){ | |
| 157 | + @ <tr><th>Parent Project ID:</th> | |
| 158 | + @ <td>%h(p) %h(db_get("parent-project-name",""))</td></tr> | |
| 153 | 159 | } |
| 154 | - @ <tr><th>Server ID:</th><td>%h(db_get("server-code",""))</td></tr> | |
| 160 | + /* @ <tr><th>Server ID:</th><td>%h(db_get("server-code",""))</td></tr> */ | |
| 155 | 161 | @ <tr><th>Fossil Version:</th><td> |
| 156 | 162 | @ %h(MANIFEST_DATE) %h(MANIFEST_VERSION) |
| 157 | 163 | @ (%h(RELEASE_VERSION)) [compiled using %h(COMPILER_NAME)] |
| 158 | 164 | @ </td></tr> |
| 159 | 165 | @ <tr><th>SQLite Version:</th><td>%.19s(sqlite3_sourceid()) |
| 160 | 166 |
| --- src/stat.c | |
| +++ src/stat.c | |
| @@ -147,13 +147,19 @@ | |
| 147 | " + 0.99"); |
| 148 | @ %d(n) days or approximately %.2f(n/365.2425) years. |
| 149 | @ </td></tr> |
| 150 | p = db_get("project-code", 0); |
| 151 | if( p ){ |
| 152 | @ <tr><th>Project ID:</th><td>%h(p)</td></tr> |
| 153 | } |
| 154 | @ <tr><th>Server ID:</th><td>%h(db_get("server-code",""))</td></tr> |
| 155 | @ <tr><th>Fossil Version:</th><td> |
| 156 | @ %h(MANIFEST_DATE) %h(MANIFEST_VERSION) |
| 157 | @ (%h(RELEASE_VERSION)) [compiled using %h(COMPILER_NAME)] |
| 158 | @ </td></tr> |
| 159 | @ <tr><th>SQLite Version:</th><td>%.19s(sqlite3_sourceid()) |
| 160 |
| --- src/stat.c | |
| +++ src/stat.c | |
| @@ -147,13 +147,19 @@ | |
| 147 | " + 0.99"); |
| 148 | @ %d(n) days or approximately %.2f(n/365.2425) years. |
| 149 | @ </td></tr> |
| 150 | p = db_get("project-code", 0); |
| 151 | if( p ){ |
| 152 | @ <tr><th>Project ID:</th> |
| 153 | @ <td>%h(p) %h(db_get("project-name",""))</td></tr> |
| 154 | } |
| 155 | p = db_get("parent-project-code", 0); |
| 156 | if( p ){ |
| 157 | @ <tr><th>Parent Project ID:</th> |
| 158 | @ <td>%h(p) %h(db_get("parent-project-name",""))</td></tr> |
| 159 | } |
| 160 | /* @ <tr><th>Server ID:</th><td>%h(db_get("server-code",""))</td></tr> */ |
| 161 | @ <tr><th>Fossil Version:</th><td> |
| 162 | @ %h(MANIFEST_DATE) %h(MANIFEST_VERSION) |
| 163 | @ (%h(RELEASE_VERSION)) [compiled using %h(COMPILER_NAME)] |
| 164 | @ </td></tr> |
| 165 | @ <tr><th>SQLite Version:</th><td>%.19s(sqlite3_sourceid()) |
| 166 |
+10
-2
| --- src/sync.c | ||
| +++ src/sync.c | ||
| @@ -129,10 +129,11 @@ | ||
| 129 | 129 | urlOptional = 1; |
| 130 | 130 | urlFlags = 0; |
| 131 | 131 | } |
| 132 | 132 | zHttpAuth = find_option("httpauth","B",1); |
| 133 | 133 | if( find_option("once",0,0)!=0 ) urlFlags &= ~URL_REMEMBER; |
| 134 | + if( (*pSyncFlags) & SYNC_FROMPARENT ) urlFlags &= ~URL_REMEMBER; | |
| 134 | 135 | if( !uvOnly ){ |
| 135 | 136 | if( find_option("private",0,0)!=0 ){ |
| 136 | 137 | *pSyncFlags |= SYNC_PRIVATE; |
| 137 | 138 | } |
| 138 | 139 | /* The --verily option to sync, push, and pull forces extra igot cards |
| @@ -142,10 +143,13 @@ | ||
| 142 | 143 | *pSyncFlags |= SYNC_RESYNC; |
| 143 | 144 | } |
| 144 | 145 | } |
| 145 | 146 | if( find_option("uv",0,0)!=0 ){ |
| 146 | 147 | *pSyncFlags |= SYNC_UNVERSIONED; |
| 148 | + } | |
| 149 | + if( find_option("private",0,0)!=0 ){ | |
| 150 | + *pSyncFlags |= SYNC_PRIVATE; | |
| 147 | 151 | } |
| 148 | 152 | if( find_option("verbose","v",0)!=0 ){ |
| 149 | 153 | *pSyncFlags |= SYNC_VERBOSE; |
| 150 | 154 | } |
| 151 | 155 | url_proxy_options(); |
| @@ -186,11 +190,11 @@ | ||
| 186 | 190 | ** |
| 187 | 191 | ** Usage: %fossil pull ?URL? ?options? |
| 188 | 192 | ** |
| 189 | 193 | ** Pull all sharable changes from a remote repository into the local repository. |
| 190 | 194 | ** Sharable changes include public check-ins, and wiki, ticket, and tech-note |
| 191 | -** edits. Add the --private option to pull private branches. Use the | |
| 195 | +** edits. Add the --private option to pull private branches. Use the | |
| 192 | 196 | ** "configuration pull" command to pull website configuration details. |
| 193 | 197 | ** |
| 194 | 198 | ** If URL is not specified, then the URL from the most recent clone, push, |
| 195 | 199 | ** pull, remote-url, or sync command is used. See "fossil help clone" for |
| 196 | 200 | ** details on the URL formats. |
| @@ -197,10 +201,11 @@ | ||
| 197 | 201 | ** |
| 198 | 202 | ** Options: |
| 199 | 203 | ** |
| 200 | 204 | ** -B|--httpauth USER:PASS Credentials for the simple HTTP auth protocol, |
| 201 | 205 | ** if required by the remote website |
| 206 | +** --from-parent-project Pull content from the parent project | |
| 202 | 207 | ** --ipv4 Use only IPv4, not IPv6 |
| 203 | 208 | ** --once Do not remember URL for subsequent syncs |
| 204 | 209 | ** --proxy PROXY Use the specified HTTP proxy |
| 205 | 210 | ** --private Pull private branches too |
| 206 | 211 | ** -R|--repository REPO Repository to pull into |
| @@ -213,10 +218,13 @@ | ||
| 213 | 218 | ** See also: clone, config pull, push, remote-url, sync |
| 214 | 219 | */ |
| 215 | 220 | void pull_cmd(void){ |
| 216 | 221 | unsigned configFlags = 0; |
| 217 | 222 | unsigned syncFlags = SYNC_PULL; |
| 223 | + if( find_option("from-parent-project",0,0)!=0 ){ | |
| 224 | + syncFlags |= SYNC_FROMPARENT; | |
| 225 | + } | |
| 218 | 226 | process_sync_args(&configFlags, &syncFlags, 0); |
| 219 | 227 | |
| 220 | 228 | /* We should be done with options.. */ |
| 221 | 229 | verify_all_options(); |
| 222 | 230 | |
| @@ -228,11 +236,11 @@ | ||
| 228 | 236 | ** |
| 229 | 237 | ** Usage: %fossil push ?URL? ?options? |
| 230 | 238 | ** |
| 231 | 239 | ** Push all sharable changes from the local repository to a remote repository. |
| 232 | 240 | ** Sharable changes include public check-ins, and wiki, ticket, and tech-note |
| 233 | -** edits. Use --private to also push private branches. Use the | |
| 241 | +** edits. Use --private to also push private branches. Use the | |
| 234 | 242 | ** "configuration pull" command to push website configuration details. |
| 235 | 243 | ** |
| 236 | 244 | ** If URL is not specified, then the URL from the most recent clone, push, |
| 237 | 245 | ** pull, remote-url, or sync command is used. See "fossil help clone" for |
| 238 | 246 | ** details on the URL formats. |
| 239 | 247 |
| --- src/sync.c | |
| +++ src/sync.c | |
| @@ -129,10 +129,11 @@ | |
| 129 | urlOptional = 1; |
| 130 | urlFlags = 0; |
| 131 | } |
| 132 | zHttpAuth = find_option("httpauth","B",1); |
| 133 | if( find_option("once",0,0)!=0 ) urlFlags &= ~URL_REMEMBER; |
| 134 | if( !uvOnly ){ |
| 135 | if( find_option("private",0,0)!=0 ){ |
| 136 | *pSyncFlags |= SYNC_PRIVATE; |
| 137 | } |
| 138 | /* The --verily option to sync, push, and pull forces extra igot cards |
| @@ -142,10 +143,13 @@ | |
| 142 | *pSyncFlags |= SYNC_RESYNC; |
| 143 | } |
| 144 | } |
| 145 | if( find_option("uv",0,0)!=0 ){ |
| 146 | *pSyncFlags |= SYNC_UNVERSIONED; |
| 147 | } |
| 148 | if( find_option("verbose","v",0)!=0 ){ |
| 149 | *pSyncFlags |= SYNC_VERBOSE; |
| 150 | } |
| 151 | url_proxy_options(); |
| @@ -186,11 +190,11 @@ | |
| 186 | ** |
| 187 | ** Usage: %fossil pull ?URL? ?options? |
| 188 | ** |
| 189 | ** Pull all sharable changes from a remote repository into the local repository. |
| 190 | ** Sharable changes include public check-ins, and wiki, ticket, and tech-note |
| 191 | ** edits. Add the --private option to pull private branches. Use the |
| 192 | ** "configuration pull" command to pull website configuration details. |
| 193 | ** |
| 194 | ** If URL is not specified, then the URL from the most recent clone, push, |
| 195 | ** pull, remote-url, or sync command is used. See "fossil help clone" for |
| 196 | ** details on the URL formats. |
| @@ -197,10 +201,11 @@ | |
| 197 | ** |
| 198 | ** Options: |
| 199 | ** |
| 200 | ** -B|--httpauth USER:PASS Credentials for the simple HTTP auth protocol, |
| 201 | ** if required by the remote website |
| 202 | ** --ipv4 Use only IPv4, not IPv6 |
| 203 | ** --once Do not remember URL for subsequent syncs |
| 204 | ** --proxy PROXY Use the specified HTTP proxy |
| 205 | ** --private Pull private branches too |
| 206 | ** -R|--repository REPO Repository to pull into |
| @@ -213,10 +218,13 @@ | |
| 213 | ** See also: clone, config pull, push, remote-url, sync |
| 214 | */ |
| 215 | void pull_cmd(void){ |
| 216 | unsigned configFlags = 0; |
| 217 | unsigned syncFlags = SYNC_PULL; |
| 218 | process_sync_args(&configFlags, &syncFlags, 0); |
| 219 | |
| 220 | /* We should be done with options.. */ |
| 221 | verify_all_options(); |
| 222 | |
| @@ -228,11 +236,11 @@ | |
| 228 | ** |
| 229 | ** Usage: %fossil push ?URL? ?options? |
| 230 | ** |
| 231 | ** Push all sharable changes from the local repository to a remote repository. |
| 232 | ** Sharable changes include public check-ins, and wiki, ticket, and tech-note |
| 233 | ** edits. Use --private to also push private branches. Use the |
| 234 | ** "configuration pull" command to push website configuration details. |
| 235 | ** |
| 236 | ** If URL is not specified, then the URL from the most recent clone, push, |
| 237 | ** pull, remote-url, or sync command is used. See "fossil help clone" for |
| 238 | ** details on the URL formats. |
| 239 |
| --- src/sync.c | |
| +++ src/sync.c | |
| @@ -129,10 +129,11 @@ | |
| 129 | urlOptional = 1; |
| 130 | urlFlags = 0; |
| 131 | } |
| 132 | zHttpAuth = find_option("httpauth","B",1); |
| 133 | if( find_option("once",0,0)!=0 ) urlFlags &= ~URL_REMEMBER; |
| 134 | if( (*pSyncFlags) & SYNC_FROMPARENT ) urlFlags &= ~URL_REMEMBER; |
| 135 | if( !uvOnly ){ |
| 136 | if( find_option("private",0,0)!=0 ){ |
| 137 | *pSyncFlags |= SYNC_PRIVATE; |
| 138 | } |
| 139 | /* The --verily option to sync, push, and pull forces extra igot cards |
| @@ -142,10 +143,13 @@ | |
| 143 | *pSyncFlags |= SYNC_RESYNC; |
| 144 | } |
| 145 | } |
| 146 | if( find_option("uv",0,0)!=0 ){ |
| 147 | *pSyncFlags |= SYNC_UNVERSIONED; |
| 148 | } |
| 149 | if( find_option("private",0,0)!=0 ){ |
| 150 | *pSyncFlags |= SYNC_PRIVATE; |
| 151 | } |
| 152 | if( find_option("verbose","v",0)!=0 ){ |
| 153 | *pSyncFlags |= SYNC_VERBOSE; |
| 154 | } |
| 155 | url_proxy_options(); |
| @@ -186,11 +190,11 @@ | |
| 190 | ** |
| 191 | ** Usage: %fossil pull ?URL? ?options? |
| 192 | ** |
| 193 | ** Pull all sharable changes from a remote repository into the local repository. |
| 194 | ** Sharable changes include public check-ins, and wiki, ticket, and tech-note |
| 195 | ** edits. Add the --private option to pull private branches. Use the |
| 196 | ** "configuration pull" command to pull website configuration details. |
| 197 | ** |
| 198 | ** If URL is not specified, then the URL from the most recent clone, push, |
| 199 | ** pull, remote-url, or sync command is used. See "fossil help clone" for |
| 200 | ** details on the URL formats. |
| @@ -197,10 +201,11 @@ | |
| 201 | ** |
| 202 | ** Options: |
| 203 | ** |
| 204 | ** -B|--httpauth USER:PASS Credentials for the simple HTTP auth protocol, |
| 205 | ** if required by the remote website |
| 206 | ** --from-parent-project Pull content from the parent project |
| 207 | ** --ipv4 Use only IPv4, not IPv6 |
| 208 | ** --once Do not remember URL for subsequent syncs |
| 209 | ** --proxy PROXY Use the specified HTTP proxy |
| 210 | ** --private Pull private branches too |
| 211 | ** -R|--repository REPO Repository to pull into |
| @@ -213,10 +218,13 @@ | |
| 218 | ** See also: clone, config pull, push, remote-url, sync |
| 219 | */ |
| 220 | void pull_cmd(void){ |
| 221 | unsigned configFlags = 0; |
| 222 | unsigned syncFlags = SYNC_PULL; |
| 223 | if( find_option("from-parent-project",0,0)!=0 ){ |
| 224 | syncFlags |= SYNC_FROMPARENT; |
| 225 | } |
| 226 | process_sync_args(&configFlags, &syncFlags, 0); |
| 227 | |
| 228 | /* We should be done with options.. */ |
| 229 | verify_all_options(); |
| 230 | |
| @@ -228,11 +236,11 @@ | |
| 236 | ** |
| 237 | ** Usage: %fossil push ?URL? ?options? |
| 238 | ** |
| 239 | ** Push all sharable changes from the local repository to a remote repository. |
| 240 | ** Sharable changes include public check-ins, and wiki, ticket, and tech-note |
| 241 | ** edits. Use --private to also push private branches. Use the |
| 242 | ** "configuration pull" command to push website configuration details. |
| 243 | ** |
| 244 | ** If URL is not specified, then the URL from the most recent clone, push, |
| 245 | ** pull, remote-url, or sync command is used. See "fossil help clone" for |
| 246 | ** details on the URL formats. |
| 247 |
+10
-2
| --- src/sync.c | ||
| +++ src/sync.c | ||
| @@ -129,10 +129,11 @@ | ||
| 129 | 129 | urlOptional = 1; |
| 130 | 130 | urlFlags = 0; |
| 131 | 131 | } |
| 132 | 132 | zHttpAuth = find_option("httpauth","B",1); |
| 133 | 133 | if( find_option("once",0,0)!=0 ) urlFlags &= ~URL_REMEMBER; |
| 134 | + if( (*pSyncFlags) & SYNC_FROMPARENT ) urlFlags &= ~URL_REMEMBER; | |
| 134 | 135 | if( !uvOnly ){ |
| 135 | 136 | if( find_option("private",0,0)!=0 ){ |
| 136 | 137 | *pSyncFlags |= SYNC_PRIVATE; |
| 137 | 138 | } |
| 138 | 139 | /* The --verily option to sync, push, and pull forces extra igot cards |
| @@ -142,10 +143,13 @@ | ||
| 142 | 143 | *pSyncFlags |= SYNC_RESYNC; |
| 143 | 144 | } |
| 144 | 145 | } |
| 145 | 146 | if( find_option("uv",0,0)!=0 ){ |
| 146 | 147 | *pSyncFlags |= SYNC_UNVERSIONED; |
| 148 | + } | |
| 149 | + if( find_option("private",0,0)!=0 ){ | |
| 150 | + *pSyncFlags |= SYNC_PRIVATE; | |
| 147 | 151 | } |
| 148 | 152 | if( find_option("verbose","v",0)!=0 ){ |
| 149 | 153 | *pSyncFlags |= SYNC_VERBOSE; |
| 150 | 154 | } |
| 151 | 155 | url_proxy_options(); |
| @@ -186,11 +190,11 @@ | ||
| 186 | 190 | ** |
| 187 | 191 | ** Usage: %fossil pull ?URL? ?options? |
| 188 | 192 | ** |
| 189 | 193 | ** Pull all sharable changes from a remote repository into the local repository. |
| 190 | 194 | ** Sharable changes include public check-ins, and wiki, ticket, and tech-note |
| 191 | -** edits. Add the --private option to pull private branches. Use the | |
| 195 | +** edits. Add the --private option to pull private branches. Use the | |
| 192 | 196 | ** "configuration pull" command to pull website configuration details. |
| 193 | 197 | ** |
| 194 | 198 | ** If URL is not specified, then the URL from the most recent clone, push, |
| 195 | 199 | ** pull, remote-url, or sync command is used. See "fossil help clone" for |
| 196 | 200 | ** details on the URL formats. |
| @@ -197,10 +201,11 @@ | ||
| 197 | 201 | ** |
| 198 | 202 | ** Options: |
| 199 | 203 | ** |
| 200 | 204 | ** -B|--httpauth USER:PASS Credentials for the simple HTTP auth protocol, |
| 201 | 205 | ** if required by the remote website |
| 206 | +** --from-parent-project Pull content from the parent project | |
| 202 | 207 | ** --ipv4 Use only IPv4, not IPv6 |
| 203 | 208 | ** --once Do not remember URL for subsequent syncs |
| 204 | 209 | ** --proxy PROXY Use the specified HTTP proxy |
| 205 | 210 | ** --private Pull private branches too |
| 206 | 211 | ** -R|--repository REPO Repository to pull into |
| @@ -213,10 +218,13 @@ | ||
| 213 | 218 | ** See also: clone, config pull, push, remote-url, sync |
| 214 | 219 | */ |
| 215 | 220 | void pull_cmd(void){ |
| 216 | 221 | unsigned configFlags = 0; |
| 217 | 222 | unsigned syncFlags = SYNC_PULL; |
| 223 | + if( find_option("from-parent-project",0,0)!=0 ){ | |
| 224 | + syncFlags |= SYNC_FROMPARENT; | |
| 225 | + } | |
| 218 | 226 | process_sync_args(&configFlags, &syncFlags, 0); |
| 219 | 227 | |
| 220 | 228 | /* We should be done with options.. */ |
| 221 | 229 | verify_all_options(); |
| 222 | 230 | |
| @@ -228,11 +236,11 @@ | ||
| 228 | 236 | ** |
| 229 | 237 | ** Usage: %fossil push ?URL? ?options? |
| 230 | 238 | ** |
| 231 | 239 | ** Push all sharable changes from the local repository to a remote repository. |
| 232 | 240 | ** Sharable changes include public check-ins, and wiki, ticket, and tech-note |
| 233 | -** edits. Use --private to also push private branches. Use the | |
| 241 | +** edits. Use --private to also push private branches. Use the | |
| 234 | 242 | ** "configuration pull" command to push website configuration details. |
| 235 | 243 | ** |
| 236 | 244 | ** If URL is not specified, then the URL from the most recent clone, push, |
| 237 | 245 | ** pull, remote-url, or sync command is used. See "fossil help clone" for |
| 238 | 246 | ** details on the URL formats. |
| 239 | 247 |
| --- src/sync.c | |
| +++ src/sync.c | |
| @@ -129,10 +129,11 @@ | |
| 129 | urlOptional = 1; |
| 130 | urlFlags = 0; |
| 131 | } |
| 132 | zHttpAuth = find_option("httpauth","B",1); |
| 133 | if( find_option("once",0,0)!=0 ) urlFlags &= ~URL_REMEMBER; |
| 134 | if( !uvOnly ){ |
| 135 | if( find_option("private",0,0)!=0 ){ |
| 136 | *pSyncFlags |= SYNC_PRIVATE; |
| 137 | } |
| 138 | /* The --verily option to sync, push, and pull forces extra igot cards |
| @@ -142,10 +143,13 @@ | |
| 142 | *pSyncFlags |= SYNC_RESYNC; |
| 143 | } |
| 144 | } |
| 145 | if( find_option("uv",0,0)!=0 ){ |
| 146 | *pSyncFlags |= SYNC_UNVERSIONED; |
| 147 | } |
| 148 | if( find_option("verbose","v",0)!=0 ){ |
| 149 | *pSyncFlags |= SYNC_VERBOSE; |
| 150 | } |
| 151 | url_proxy_options(); |
| @@ -186,11 +190,11 @@ | |
| 186 | ** |
| 187 | ** Usage: %fossil pull ?URL? ?options? |
| 188 | ** |
| 189 | ** Pull all sharable changes from a remote repository into the local repository. |
| 190 | ** Sharable changes include public check-ins, and wiki, ticket, and tech-note |
| 191 | ** edits. Add the --private option to pull private branches. Use the |
| 192 | ** "configuration pull" command to pull website configuration details. |
| 193 | ** |
| 194 | ** If URL is not specified, then the URL from the most recent clone, push, |
| 195 | ** pull, remote-url, or sync command is used. See "fossil help clone" for |
| 196 | ** details on the URL formats. |
| @@ -197,10 +201,11 @@ | |
| 197 | ** |
| 198 | ** Options: |
| 199 | ** |
| 200 | ** -B|--httpauth USER:PASS Credentials for the simple HTTP auth protocol, |
| 201 | ** if required by the remote website |
| 202 | ** --ipv4 Use only IPv4, not IPv6 |
| 203 | ** --once Do not remember URL for subsequent syncs |
| 204 | ** --proxy PROXY Use the specified HTTP proxy |
| 205 | ** --private Pull private branches too |
| 206 | ** -R|--repository REPO Repository to pull into |
| @@ -213,10 +218,13 @@ | |
| 213 | ** See also: clone, config pull, push, remote-url, sync |
| 214 | */ |
| 215 | void pull_cmd(void){ |
| 216 | unsigned configFlags = 0; |
| 217 | unsigned syncFlags = SYNC_PULL; |
| 218 | process_sync_args(&configFlags, &syncFlags, 0); |
| 219 | |
| 220 | /* We should be done with options.. */ |
| 221 | verify_all_options(); |
| 222 | |
| @@ -228,11 +236,11 @@ | |
| 228 | ** |
| 229 | ** Usage: %fossil push ?URL? ?options? |
| 230 | ** |
| 231 | ** Push all sharable changes from the local repository to a remote repository. |
| 232 | ** Sharable changes include public check-ins, and wiki, ticket, and tech-note |
| 233 | ** edits. Use --private to also push private branches. Use the |
| 234 | ** "configuration pull" command to push website configuration details. |
| 235 | ** |
| 236 | ** If URL is not specified, then the URL from the most recent clone, push, |
| 237 | ** pull, remote-url, or sync command is used. See "fossil help clone" for |
| 238 | ** details on the URL formats. |
| 239 |
| --- src/sync.c | |
| +++ src/sync.c | |
| @@ -129,10 +129,11 @@ | |
| 129 | urlOptional = 1; |
| 130 | urlFlags = 0; |
| 131 | } |
| 132 | zHttpAuth = find_option("httpauth","B",1); |
| 133 | if( find_option("once",0,0)!=0 ) urlFlags &= ~URL_REMEMBER; |
| 134 | if( (*pSyncFlags) & SYNC_FROMPARENT ) urlFlags &= ~URL_REMEMBER; |
| 135 | if( !uvOnly ){ |
| 136 | if( find_option("private",0,0)!=0 ){ |
| 137 | *pSyncFlags |= SYNC_PRIVATE; |
| 138 | } |
| 139 | /* The --verily option to sync, push, and pull forces extra igot cards |
| @@ -142,10 +143,13 @@ | |
| 143 | *pSyncFlags |= SYNC_RESYNC; |
| 144 | } |
| 145 | } |
| 146 | if( find_option("uv",0,0)!=0 ){ |
| 147 | *pSyncFlags |= SYNC_UNVERSIONED; |
| 148 | } |
| 149 | if( find_option("private",0,0)!=0 ){ |
| 150 | *pSyncFlags |= SYNC_PRIVATE; |
| 151 | } |
| 152 | if( find_option("verbose","v",0)!=0 ){ |
| 153 | *pSyncFlags |= SYNC_VERBOSE; |
| 154 | } |
| 155 | url_proxy_options(); |
| @@ -186,11 +190,11 @@ | |
| 190 | ** |
| 191 | ** Usage: %fossil pull ?URL? ?options? |
| 192 | ** |
| 193 | ** Pull all sharable changes from a remote repository into the local repository. |
| 194 | ** Sharable changes include public check-ins, and wiki, ticket, and tech-note |
| 195 | ** edits. Add the --private option to pull private branches. Use the |
| 196 | ** "configuration pull" command to pull website configuration details. |
| 197 | ** |
| 198 | ** If URL is not specified, then the URL from the most recent clone, push, |
| 199 | ** pull, remote-url, or sync command is used. See "fossil help clone" for |
| 200 | ** details on the URL formats. |
| @@ -197,10 +201,11 @@ | |
| 201 | ** |
| 202 | ** Options: |
| 203 | ** |
| 204 | ** -B|--httpauth USER:PASS Credentials for the simple HTTP auth protocol, |
| 205 | ** if required by the remote website |
| 206 | ** --from-parent-project Pull content from the parent project |
| 207 | ** --ipv4 Use only IPv4, not IPv6 |
| 208 | ** --once Do not remember URL for subsequent syncs |
| 209 | ** --proxy PROXY Use the specified HTTP proxy |
| 210 | ** --private Pull private branches too |
| 211 | ** -R|--repository REPO Repository to pull into |
| @@ -213,10 +218,13 @@ | |
| 218 | ** See also: clone, config pull, push, remote-url, sync |
| 219 | */ |
| 220 | void pull_cmd(void){ |
| 221 | unsigned configFlags = 0; |
| 222 | unsigned syncFlags = SYNC_PULL; |
| 223 | if( find_option("from-parent-project",0,0)!=0 ){ |
| 224 | syncFlags |= SYNC_FROMPARENT; |
| 225 | } |
| 226 | process_sync_args(&configFlags, &syncFlags, 0); |
| 227 | |
| 228 | /* We should be done with options.. */ |
| 229 | verify_all_options(); |
| 230 | |
| @@ -228,11 +236,11 @@ | |
| 236 | ** |
| 237 | ** Usage: %fossil push ?URL? ?options? |
| 238 | ** |
| 239 | ** Push all sharable changes from the local repository to a remote repository. |
| 240 | ** Sharable changes include public check-ins, and wiki, ticket, and tech-note |
| 241 | ** edits. Use --private to also push private branches. Use the |
| 242 | ** "configuration pull" command to push website configuration details. |
| 243 | ** |
| 244 | ** If URL is not specified, then the URL from the most recent clone, push, |
| 245 | ** pull, remote-url, or sync command is used. See "fossil help clone" for |
| 246 | ** details on the URL formats. |
| 247 |
+2
-2
| --- src/tag.c | ||
| +++ src/tag.c | ||
| @@ -382,11 +382,11 @@ | ||
| 382 | 382 | ** --propagate Propagating tag. |
| 383 | 383 | ** --date-override DATETIME Set date and time added. |
| 384 | 384 | ** --user-override USER Name USER when adding the tag. |
| 385 | 385 | ** --dryrun|-n Display the tag text, but to not |
| 386 | 386 | ** actually insert it into the database. |
| 387 | -** | |
| 387 | +** | |
| 388 | 388 | ** The --date-override and --user-override options support |
| 389 | 389 | ** importing history from other SCM systems. DATETIME has |
| 390 | 390 | ** the form 'YYYY-MMM-DD HH:MM:SS'. |
| 391 | 391 | ** |
| 392 | 392 | ** %fossil tag cancel ?--raw? TAGNAME CHECK-IN |
| @@ -398,11 +398,11 @@ | ||
| 398 | 398 | ** %fossil tag find ?OPTIONS? TAGNAME |
| 399 | 399 | ** |
| 400 | 400 | ** List all objects that use TAGNAME. TYPE can be "ci" for |
| 401 | 401 | ** check-ins or "e" for events. The limit option limits the number |
| 402 | 402 | ** of results to the given value. |
| 403 | -** | |
| 403 | +** | |
| 404 | 404 | ** Options: |
| 405 | 405 | ** --raw Raw tag name. |
| 406 | 406 | ** -t|--type TYPE One of "ci", or "e". |
| 407 | 407 | ** -n|--limit N Limit to N results. |
| 408 | 408 | ** |
| 409 | 409 |
| --- src/tag.c | |
| +++ src/tag.c | |
| @@ -382,11 +382,11 @@ | |
| 382 | ** --propagate Propagating tag. |
| 383 | ** --date-override DATETIME Set date and time added. |
| 384 | ** --user-override USER Name USER when adding the tag. |
| 385 | ** --dryrun|-n Display the tag text, but to not |
| 386 | ** actually insert it into the database. |
| 387 | ** |
| 388 | ** The --date-override and --user-override options support |
| 389 | ** importing history from other SCM systems. DATETIME has |
| 390 | ** the form 'YYYY-MMM-DD HH:MM:SS'. |
| 391 | ** |
| 392 | ** %fossil tag cancel ?--raw? TAGNAME CHECK-IN |
| @@ -398,11 +398,11 @@ | |
| 398 | ** %fossil tag find ?OPTIONS? TAGNAME |
| 399 | ** |
| 400 | ** List all objects that use TAGNAME. TYPE can be "ci" for |
| 401 | ** check-ins or "e" for events. The limit option limits the number |
| 402 | ** of results to the given value. |
| 403 | ** |
| 404 | ** Options: |
| 405 | ** --raw Raw tag name. |
| 406 | ** -t|--type TYPE One of "ci", or "e". |
| 407 | ** -n|--limit N Limit to N results. |
| 408 | ** |
| 409 |
| --- src/tag.c | |
| +++ src/tag.c | |
| @@ -382,11 +382,11 @@ | |
| 382 | ** --propagate Propagating tag. |
| 383 | ** --date-override DATETIME Set date and time added. |
| 384 | ** --user-override USER Name USER when adding the tag. |
| 385 | ** --dryrun|-n Display the tag text, but to not |
| 386 | ** actually insert it into the database. |
| 387 | ** |
| 388 | ** The --date-override and --user-override options support |
| 389 | ** importing history from other SCM systems. DATETIME has |
| 390 | ** the form 'YYYY-MMM-DD HH:MM:SS'. |
| 391 | ** |
| 392 | ** %fossil tag cancel ?--raw? TAGNAME CHECK-IN |
| @@ -398,11 +398,11 @@ | |
| 398 | ** %fossil tag find ?OPTIONS? TAGNAME |
| 399 | ** |
| 400 | ** List all objects that use TAGNAME. TYPE can be "ci" for |
| 401 | ** check-ins or "e" for events. The limit option limits the number |
| 402 | ** of results to the given value. |
| 403 | ** |
| 404 | ** Options: |
| 405 | ** --raw Raw tag name. |
| 406 | ** -t|--type TYPE One of "ci", or "e". |
| 407 | ** -n|--limit N Limit to N results. |
| 408 | ** |
| 409 |
+9
-4
| --- src/timeline.c | ||
| +++ src/timeline.c | ||
| @@ -2045,14 +2045,19 @@ | ||
| 2045 | 2045 | ** before |
| 2046 | 2046 | ** after |
| 2047 | 2047 | ** descendants | children |
| 2048 | 2048 | ** ancestors | parents |
| 2049 | 2049 | ** |
| 2050 | -** The CHECKIN can be any unique prefix of 4 characters or more. | |
| 2051 | -** The DATETIME should be in the ISO8601 format. For | |
| 2052 | -** example: "2007-08-18 07:21:21". You can also say "current" | |
| 2053 | -** for the current version or "now" for the current time. | |
| 2050 | +** The CHECKIN can be any unique prefix of 4 characters or more. You | |
| 2051 | +** can also say "current" for the current version. | |
| 2052 | +** | |
| 2053 | +** DATETIME may be "now" or "YYYY-MM-DDTHH:MM:SS.SSS". If in | |
| 2054 | +** year-month-day form, it may be truncated, the "T" may be replaced by | |
| 2055 | +** a space, and it may also name a timezone offset from UTC as "-HH:MM" | |
| 2056 | +** (westward) or "+HH:MM" (eastward). Either no timezone suffix or "Z" | |
| 2057 | +** means UTC. | |
| 2058 | +** | |
| 2054 | 2059 | ** |
| 2055 | 2060 | ** Options: |
| 2056 | 2061 | ** -n|--limit N Output the first N entries (default 20 lines). |
| 2057 | 2062 | ** N=0 means no limit. |
| 2058 | 2063 | ** -p|--path PATH Output items affecting PATH only. |
| 2059 | 2064 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -2045,14 +2045,19 @@ | |
| 2045 | ** before |
| 2046 | ** after |
| 2047 | ** descendants | children |
| 2048 | ** ancestors | parents |
| 2049 | ** |
| 2050 | ** The CHECKIN can be any unique prefix of 4 characters or more. |
| 2051 | ** The DATETIME should be in the ISO8601 format. For |
| 2052 | ** example: "2007-08-18 07:21:21". You can also say "current" |
| 2053 | ** for the current version or "now" for the current time. |
| 2054 | ** |
| 2055 | ** Options: |
| 2056 | ** -n|--limit N Output the first N entries (default 20 lines). |
| 2057 | ** N=0 means no limit. |
| 2058 | ** -p|--path PATH Output items affecting PATH only. |
| 2059 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -2045,14 +2045,19 @@ | |
| 2045 | ** before |
| 2046 | ** after |
| 2047 | ** descendants | children |
| 2048 | ** ancestors | parents |
| 2049 | ** |
| 2050 | ** The CHECKIN can be any unique prefix of 4 characters or more. You |
| 2051 | ** can also say "current" for the current version. |
| 2052 | ** |
| 2053 | ** DATETIME may be "now" or "YYYY-MM-DDTHH:MM:SS.SSS". If in |
| 2054 | ** year-month-day form, it may be truncated, the "T" may be replaced by |
| 2055 | ** a space, and it may also name a timezone offset from UTC as "-HH:MM" |
| 2056 | ** (westward) or "+HH:MM" (eastward). Either no timezone suffix or "Z" |
| 2057 | ** means UTC. |
| 2058 | ** |
| 2059 | ** |
| 2060 | ** Options: |
| 2061 | ** -n|--limit N Output the first N entries (default 20 lines). |
| 2062 | ** N=0 means no limit. |
| 2063 | ** -p|--path PATH Output items affecting PATH only. |
| 2064 |
+6
| --- src/wiki.c | ||
| +++ src/wiki.c | ||
| @@ -1220,10 +1220,16 @@ | ||
| 1220 | 1220 | ** -s|--show-technote-ids The id of the tech note will be listed |
| 1221 | 1221 | ** along side the timestamp. The tech note |
| 1222 | 1222 | ** id will be the first word on each line. |
| 1223 | 1223 | ** This option only applies if the |
| 1224 | 1224 | ** --technote option is also specified. |
| 1225 | +** | |
| 1226 | +** DATETIME may be "now" or "YYYY-MM-DDTHH:MM:SS.SSS". If in | |
| 1227 | +** year-month-day form, it may be truncated, the "T" may be replaced by | |
| 1228 | +** a space, and it may also name a timezone offset from UTC as "-HH:MM" | |
| 1229 | +** (westward) or "+HH:MM" (eastward). Either no timezone suffix or "Z" | |
| 1230 | +** means UTC. | |
| 1225 | 1231 | ** |
| 1226 | 1232 | */ |
| 1227 | 1233 | void wiki_cmd(void){ |
| 1228 | 1234 | int n; |
| 1229 | 1235 | db_find_and_open_repository(0, 0); |
| 1230 | 1236 |
| --- src/wiki.c | |
| +++ src/wiki.c | |
| @@ -1220,10 +1220,16 @@ | |
| 1220 | ** -s|--show-technote-ids The id of the tech note will be listed |
| 1221 | ** along side the timestamp. The tech note |
| 1222 | ** id will be the first word on each line. |
| 1223 | ** This option only applies if the |
| 1224 | ** --technote option is also specified. |
| 1225 | ** |
| 1226 | */ |
| 1227 | void wiki_cmd(void){ |
| 1228 | int n; |
| 1229 | db_find_and_open_repository(0, 0); |
| 1230 |
| --- src/wiki.c | |
| +++ src/wiki.c | |
| @@ -1220,10 +1220,16 @@ | |
| 1220 | ** -s|--show-technote-ids The id of the tech note will be listed |
| 1221 | ** along side the timestamp. The tech note |
| 1222 | ** id will be the first word on each line. |
| 1223 | ** This option only applies if the |
| 1224 | ** --technote option is also specified. |
| 1225 | ** |
| 1226 | ** DATETIME may be "now" or "YYYY-MM-DDTHH:MM:SS.SSS". If in |
| 1227 | ** year-month-day form, it may be truncated, the "T" may be replaced by |
| 1228 | ** a space, and it may also name a timezone offset from UTC as "-HH:MM" |
| 1229 | ** (westward) or "+HH:MM" (eastward). Either no timezone suffix or "Z" |
| 1230 | ** means UTC. |
| 1231 | ** |
| 1232 | */ |
| 1233 | void wiki_cmd(void){ |
| 1234 | int n; |
| 1235 | db_find_and_open_repository(0, 0); |
| 1236 |
+12
| --- src/xfer.c | ||
| +++ src/xfer.c | ||
| @@ -1634,10 +1634,11 @@ | ||
| 1634 | 1634 | #define SYNC_CLONE 0x0004 |
| 1635 | 1635 | #define SYNC_PRIVATE 0x0008 |
| 1636 | 1636 | #define SYNC_VERBOSE 0x0010 |
| 1637 | 1637 | #define SYNC_RESYNC 0x0020 |
| 1638 | 1638 | #define SYNC_UNVERSIONED 0x0040 |
| 1639 | +#define SYNC_FROMPARENT 0x0080 | |
| 1639 | 1640 | #endif |
| 1640 | 1641 | |
| 1641 | 1642 | /* |
| 1642 | 1643 | ** Floating-point absolute value |
| 1643 | 1644 | */ |
| @@ -1689,10 +1690,21 @@ | ||
| 1689 | 1690 | sqlite3_int64 mtime; /* Modification time on a UV file */ |
| 1690 | 1691 | |
| 1691 | 1692 | if( db_get_boolean("dont-push", 0) ) syncFlags &= ~SYNC_PUSH; |
| 1692 | 1693 | if( (syncFlags & (SYNC_PUSH|SYNC_PULL|SYNC_CLONE|SYNC_UNVERSIONED))==0 |
| 1693 | 1694 | && configRcvMask==0 && configSendMask==0 ) return 0; |
| 1695 | + if( syncFlags & SYNC_FROMPARENT ){ | |
| 1696 | + configRcvMask = 0; | |
| 1697 | + configSendMask = 0; | |
| 1698 | + syncFlags &= ~(SYNC_PUSH); | |
| 1699 | + zPCode = db_get("parent-project-code", 0); | |
| 1700 | + if( zPCode==0 || db_get("parent-project-name",0)==0 ){ | |
| 1701 | + fossil_fatal("there is no parent project: set the 'parent-project-code'" | |
| 1702 | + " and 'parent-project-name' config parameters set in order" | |
| 1703 | + " to pull from a parent project"); | |
| 1704 | + } | |
| 1705 | + } | |
| 1694 | 1706 | |
| 1695 | 1707 | transport_stats(0, 0, 1); |
| 1696 | 1708 | socket_global_init(); |
| 1697 | 1709 | memset(&xfer, 0, sizeof(xfer)); |
| 1698 | 1710 | xfer.pIn = &recv; |
| 1699 | 1711 |
| --- src/xfer.c | |
| +++ src/xfer.c | |
| @@ -1634,10 +1634,11 @@ | |
| 1634 | #define SYNC_CLONE 0x0004 |
| 1635 | #define SYNC_PRIVATE 0x0008 |
| 1636 | #define SYNC_VERBOSE 0x0010 |
| 1637 | #define SYNC_RESYNC 0x0020 |
| 1638 | #define SYNC_UNVERSIONED 0x0040 |
| 1639 | #endif |
| 1640 | |
| 1641 | /* |
| 1642 | ** Floating-point absolute value |
| 1643 | */ |
| @@ -1689,10 +1690,21 @@ | |
| 1689 | sqlite3_int64 mtime; /* Modification time on a UV file */ |
| 1690 | |
| 1691 | if( db_get_boolean("dont-push", 0) ) syncFlags &= ~SYNC_PUSH; |
| 1692 | if( (syncFlags & (SYNC_PUSH|SYNC_PULL|SYNC_CLONE|SYNC_UNVERSIONED))==0 |
| 1693 | && configRcvMask==0 && configSendMask==0 ) return 0; |
| 1694 | |
| 1695 | transport_stats(0, 0, 1); |
| 1696 | socket_global_init(); |
| 1697 | memset(&xfer, 0, sizeof(xfer)); |
| 1698 | xfer.pIn = &recv; |
| 1699 |
| --- src/xfer.c | |
| +++ src/xfer.c | |
| @@ -1634,10 +1634,11 @@ | |
| 1634 | #define SYNC_CLONE 0x0004 |
| 1635 | #define SYNC_PRIVATE 0x0008 |
| 1636 | #define SYNC_VERBOSE 0x0010 |
| 1637 | #define SYNC_RESYNC 0x0020 |
| 1638 | #define SYNC_UNVERSIONED 0x0040 |
| 1639 | #define SYNC_FROMPARENT 0x0080 |
| 1640 | #endif |
| 1641 | |
| 1642 | /* |
| 1643 | ** Floating-point absolute value |
| 1644 | */ |
| @@ -1689,10 +1690,21 @@ | |
| 1690 | sqlite3_int64 mtime; /* Modification time on a UV file */ |
| 1691 | |
| 1692 | if( db_get_boolean("dont-push", 0) ) syncFlags &= ~SYNC_PUSH; |
| 1693 | if( (syncFlags & (SYNC_PUSH|SYNC_PULL|SYNC_CLONE|SYNC_UNVERSIONED))==0 |
| 1694 | && configRcvMask==0 && configSendMask==0 ) return 0; |
| 1695 | if( syncFlags & SYNC_FROMPARENT ){ |
| 1696 | configRcvMask = 0; |
| 1697 | configSendMask = 0; |
| 1698 | syncFlags &= ~(SYNC_PUSH); |
| 1699 | zPCode = db_get("parent-project-code", 0); |
| 1700 | if( zPCode==0 || db_get("parent-project-name",0)==0 ){ |
| 1701 | fossil_fatal("there is no parent project: set the 'parent-project-code'" |
| 1702 | " and 'parent-project-name' config parameters set in order" |
| 1703 | " to pull from a parent project"); |
| 1704 | } |
| 1705 | } |
| 1706 | |
| 1707 | transport_stats(0, 0, 1); |
| 1708 | socket_global_init(); |
| 1709 | memset(&xfer, 0, sizeof(xfer)); |
| 1710 | xfer.pIn = &recv; |
| 1711 |
+12
| --- src/xfer.c | ||
| +++ src/xfer.c | ||
| @@ -1634,10 +1634,11 @@ | ||
| 1634 | 1634 | #define SYNC_CLONE 0x0004 |
| 1635 | 1635 | #define SYNC_PRIVATE 0x0008 |
| 1636 | 1636 | #define SYNC_VERBOSE 0x0010 |
| 1637 | 1637 | #define SYNC_RESYNC 0x0020 |
| 1638 | 1638 | #define SYNC_UNVERSIONED 0x0040 |
| 1639 | +#define SYNC_FROMPARENT 0x0080 | |
| 1639 | 1640 | #endif |
| 1640 | 1641 | |
| 1641 | 1642 | /* |
| 1642 | 1643 | ** Floating-point absolute value |
| 1643 | 1644 | */ |
| @@ -1689,10 +1690,21 @@ | ||
| 1689 | 1690 | sqlite3_int64 mtime; /* Modification time on a UV file */ |
| 1690 | 1691 | |
| 1691 | 1692 | if( db_get_boolean("dont-push", 0) ) syncFlags &= ~SYNC_PUSH; |
| 1692 | 1693 | if( (syncFlags & (SYNC_PUSH|SYNC_PULL|SYNC_CLONE|SYNC_UNVERSIONED))==0 |
| 1693 | 1694 | && configRcvMask==0 && configSendMask==0 ) return 0; |
| 1695 | + if( syncFlags & SYNC_FROMPARENT ){ | |
| 1696 | + configRcvMask = 0; | |
| 1697 | + configSendMask = 0; | |
| 1698 | + syncFlags &= ~(SYNC_PUSH); | |
| 1699 | + zPCode = db_get("parent-project-code", 0); | |
| 1700 | + if( zPCode==0 || db_get("parent-project-name",0)==0 ){ | |
| 1701 | + fossil_fatal("there is no parent project: set the 'parent-project-code'" | |
| 1702 | + " and 'parent-project-name' config parameters set in order" | |
| 1703 | + " to pull from a parent project"); | |
| 1704 | + } | |
| 1705 | + } | |
| 1694 | 1706 | |
| 1695 | 1707 | transport_stats(0, 0, 1); |
| 1696 | 1708 | socket_global_init(); |
| 1697 | 1709 | memset(&xfer, 0, sizeof(xfer)); |
| 1698 | 1710 | xfer.pIn = &recv; |
| 1699 | 1711 |
| --- src/xfer.c | |
| +++ src/xfer.c | |
| @@ -1634,10 +1634,11 @@ | |
| 1634 | #define SYNC_CLONE 0x0004 |
| 1635 | #define SYNC_PRIVATE 0x0008 |
| 1636 | #define SYNC_VERBOSE 0x0010 |
| 1637 | #define SYNC_RESYNC 0x0020 |
| 1638 | #define SYNC_UNVERSIONED 0x0040 |
| 1639 | #endif |
| 1640 | |
| 1641 | /* |
| 1642 | ** Floating-point absolute value |
| 1643 | */ |
| @@ -1689,10 +1690,21 @@ | |
| 1689 | sqlite3_int64 mtime; /* Modification time on a UV file */ |
| 1690 | |
| 1691 | if( db_get_boolean("dont-push", 0) ) syncFlags &= ~SYNC_PUSH; |
| 1692 | if( (syncFlags & (SYNC_PUSH|SYNC_PULL|SYNC_CLONE|SYNC_UNVERSIONED))==0 |
| 1693 | && configRcvMask==0 && configSendMask==0 ) return 0; |
| 1694 | |
| 1695 | transport_stats(0, 0, 1); |
| 1696 | socket_global_init(); |
| 1697 | memset(&xfer, 0, sizeof(xfer)); |
| 1698 | xfer.pIn = &recv; |
| 1699 |
| --- src/xfer.c | |
| +++ src/xfer.c | |
| @@ -1634,10 +1634,11 @@ | |
| 1634 | #define SYNC_CLONE 0x0004 |
| 1635 | #define SYNC_PRIVATE 0x0008 |
| 1636 | #define SYNC_VERBOSE 0x0010 |
| 1637 | #define SYNC_RESYNC 0x0020 |
| 1638 | #define SYNC_UNVERSIONED 0x0040 |
| 1639 | #define SYNC_FROMPARENT 0x0080 |
| 1640 | #endif |
| 1641 | |
| 1642 | /* |
| 1643 | ** Floating-point absolute value |
| 1644 | */ |
| @@ -1689,10 +1690,21 @@ | |
| 1690 | sqlite3_int64 mtime; /* Modification time on a UV file */ |
| 1691 | |
| 1692 | if( db_get_boolean("dont-push", 0) ) syncFlags &= ~SYNC_PUSH; |
| 1693 | if( (syncFlags & (SYNC_PUSH|SYNC_PULL|SYNC_CLONE|SYNC_UNVERSIONED))==0 |
| 1694 | && configRcvMask==0 && configSendMask==0 ) return 0; |
| 1695 | if( syncFlags & SYNC_FROMPARENT ){ |
| 1696 | configRcvMask = 0; |
| 1697 | configSendMask = 0; |
| 1698 | syncFlags &= ~(SYNC_PUSH); |
| 1699 | zPCode = db_get("parent-project-code", 0); |
| 1700 | if( zPCode==0 || db_get("parent-project-name",0)==0 ){ |
| 1701 | fossil_fatal("there is no parent project: set the 'parent-project-code'" |
| 1702 | " and 'parent-project-name' config parameters set in order" |
| 1703 | " to pull from a parent project"); |
| 1704 | } |
| 1705 | } |
| 1706 | |
| 1707 | transport_stats(0, 0, 1); |
| 1708 | socket_global_init(); |
| 1709 | memset(&xfer, 0, sizeof(xfer)); |
| 1710 | xfer.pIn = &recv; |
| 1711 |
+1
-1
| --- src/zip.c | ||
| +++ src/zip.c | ||
| @@ -326,11 +326,11 @@ | ||
| 326 | 326 | void zip_of_checkin( |
| 327 | 327 | int rid, /* The RID of the checkin to construct the ZIP archive from */ |
| 328 | 328 | Blob *pZip, /* Write the ZIP archive content into this blob */ |
| 329 | 329 | const char *zDir, /* Top-level directory of the ZIP archive */ |
| 330 | 330 | Glob *pInclude, /* Only include files that match this pattern */ |
| 331 | - Glob *pExclude /* Exclude files that match this pattern */ | |
| 331 | + Glob *pExclude /* Exclude files that match this pattern */ | |
| 332 | 332 | ){ |
| 333 | 333 | Blob mfile, hash, file; |
| 334 | 334 | Manifest *pManifest; |
| 335 | 335 | ManifestFile *pFile; |
| 336 | 336 | Blob filename; |
| 337 | 337 |
| --- src/zip.c | |
| +++ src/zip.c | |
| @@ -326,11 +326,11 @@ | |
| 326 | void zip_of_checkin( |
| 327 | int rid, /* The RID of the checkin to construct the ZIP archive from */ |
| 328 | Blob *pZip, /* Write the ZIP archive content into this blob */ |
| 329 | const char *zDir, /* Top-level directory of the ZIP archive */ |
| 330 | Glob *pInclude, /* Only include files that match this pattern */ |
| 331 | Glob *pExclude /* Exclude files that match this pattern */ |
| 332 | ){ |
| 333 | Blob mfile, hash, file; |
| 334 | Manifest *pManifest; |
| 335 | ManifestFile *pFile; |
| 336 | Blob filename; |
| 337 |
| --- src/zip.c | |
| +++ src/zip.c | |
| @@ -326,11 +326,11 @@ | |
| 326 | void zip_of_checkin( |
| 327 | int rid, /* The RID of the checkin to construct the ZIP archive from */ |
| 328 | Blob *pZip, /* Write the ZIP archive content into this blob */ |
| 329 | const char *zDir, /* Top-level directory of the ZIP archive */ |
| 330 | Glob *pInclude, /* Only include files that match this pattern */ |
| 331 | Glob *pExclude /* Exclude files that match this pattern */ |
| 332 | ){ |
| 333 | Blob mfile, hash, file; |
| 334 | Manifest *pManifest; |
| 335 | ManifestFile *pFile; |
| 336 | Blob filename; |
| 337 |
+5
| --- www/changes.wiki | ||
| +++ www/changes.wiki | ||
| @@ -2,10 +2,15 @@ | ||
| 2 | 2 | |
| 3 | 3 | <h2>Changes for Version 1.36 (2016-00-00)</h2> |
| 4 | 4 | |
| 5 | 5 | * Update internal Unicode character tables, used in regular expression |
| 6 | 6 | handling, from version 8.0 to 9.0. |
| 7 | + * Update the built-in SQLite to version 3.14.1. Doesn't work with | |
| 8 | + earlier SQLite versions than 3.14.0 any more. | |
| 9 | + * Fix [https://www.mail-archive.com/[email protected]/msg23618.html|multi-line timeline bug] | |
| 10 | + * Enhance the [/help?cmd=purge|fossil purge] command. | |
| 11 | + * New command [/help?cmd=shell|fossil shell]. | |
| 7 | 12 | |
| 8 | 13 | <h2>Changes for Version 1.35 (2016-06-14)</h2> |
| 9 | 14 | |
| 10 | 15 | * Enable symlinks by default on all non-Windows platforms. |
| 11 | 16 | * Enhance the [/md_rules|Markdown formatting] so that hyperlinks that begin |
| 12 | 17 | |
| 13 | 18 | ADDED www/childprojects.wiki |
| --- www/changes.wiki | |
| +++ www/changes.wiki | |
| @@ -2,10 +2,15 @@ | |
| 2 | |
| 3 | <h2>Changes for Version 1.36 (2016-00-00)</h2> |
| 4 | |
| 5 | * Update internal Unicode character tables, used in regular expression |
| 6 | handling, from version 8.0 to 9.0. |
| 7 | |
| 8 | <h2>Changes for Version 1.35 (2016-06-14)</h2> |
| 9 | |
| 10 | * Enable symlinks by default on all non-Windows platforms. |
| 11 | * Enhance the [/md_rules|Markdown formatting] so that hyperlinks that begin |
| 12 | |
| 13 | DDED www/childprojects.wiki |
| --- www/changes.wiki | |
| +++ www/changes.wiki | |
| @@ -2,10 +2,15 @@ | |
| 2 | |
| 3 | <h2>Changes for Version 1.36 (2016-00-00)</h2> |
| 4 | |
| 5 | * Update internal Unicode character tables, used in regular expression |
| 6 | handling, from version 8.0 to 9.0. |
| 7 | * Update the built-in SQLite to version 3.14.1. Doesn't work with |
| 8 | earlier SQLite versions than 3.14.0 any more. |
| 9 | * Fix [https://www.mail-archive.com/[email protected]/msg23618.html|multi-line timeline bug] |
| 10 | * Enhance the [/help?cmd=purge|fossil purge] command. |
| 11 | * New command [/help?cmd=shell|fossil shell]. |
| 12 | |
| 13 | <h2>Changes for Version 1.35 (2016-06-14)</h2> |
| 14 | |
| 15 | * Enable symlinks by default on all non-Windows platforms. |
| 16 | * Enhance the [/md_rules|Markdown formatting] so that hyperlinks that begin |
| 17 | |
| 18 | DDED www/childprojects.wiki |
+17
| --- a/www/childprojects.wiki | ||
| +++ b/www/childprojects.wiki | ||
| @@ -0,0 +1,17 @@ | ||
| 1 | +<title>Child Projects</title> | |
| 2 | + | |
| 3 | +<h2>Background</h2> | |
| 4 | + | |
| 5 | +The default behavior of Fossil is to share everything (all check-ins, | |
| 6 | +tickets, wiki, etc) between all clients and all servers. Such a policy | |
| 7 | +helps to promote a coihesive design for a cathedral-style project run | |
| 8 | +by a small cliche of developers - the sort of project for which Fossil | |
| 9 | +was designed. | |
| 10 | + | |
| 11 | +But sometimes it is desirable to branch off a side project that does not | |
| 12 | +sync back to the master but does continue to track changes in the master. | |
| 13 | +For example, the master project might be an open-source project like | |
| 14 | +[https://www.sqlite.org/|SQLite] and a team might want to do a proprietary | |
| 15 | +closed-source enhancement to that master project in a separate repository. | |
| 16 | +All changes in the master project should flow forward into the derived | |
| 17 | +project, but care must be taken to prevent proprietary contenblockquote></blockquote >Ba |
| --- a/www/childprojects.wiki | |
| +++ b/www/childprojects.wiki | |
| @@ -0,0 +1,17 @@ | |
| --- a/www/childprojects.wiki | |
| +++ b/www/childprojects.wiki | |
| @@ -0,0 +1,17 @@ | |
| 1 | <title>Child Projects</title> |
| 2 | |
| 3 | <h2>Background</h2> |
| 4 | |
| 5 | The default behavior of Fossil is to share everything (all check-ins, |
| 6 | tickets, wiki, etc) between all clients and all servers. Such a policy |
| 7 | helps to promote a coihesive design for a cathedral-style project run |
| 8 | by a small cliche of developers - the sort of project for which Fossil |
| 9 | was designed. |
| 10 | |
| 11 | But sometimes it is desirable to branch off a side project that does not |
| 12 | sync back to the master but does continue to track changes in the master. |
| 13 | For example, the master project might be an open-source project like |
| 14 | [https://www.sqlite.org/|SQLite] and a team might want to do a proprietary |
| 15 | closed-source enhancement to that master project in a separate repository. |
| 16 | All changes in the master project should flow forward into the derived |
| 17 | project, but care must be taken to prevent proprietary contenblockquote></blockquote >Ba |
+2
-1
| --- www/mkindex.tcl | ||
| +++ www/mkindex.tcl | ||
| @@ -13,13 +13,14 @@ | ||
| 13 | 13 | antibot.wiki {Defense against Spiders and Bots} |
| 14 | 14 | blame.wiki {The Annotate/Blame Algorithm Of Fossil} |
| 15 | 15 | branching.wiki {Branching, Forking, Merging, and Tagging} |
| 16 | 16 | bugtheory.wiki {Bug Tracking In Fossil} |
| 17 | 17 | build.wiki {Compiling and Installing Fossil} |
| 18 | + changes.wiki {Fossil Changelog} | |
| 18 | 19 | checkin_names.wiki {Check-in And Version Names} |
| 19 | 20 | checkin.wiki {Check-in Checklist} |
| 20 | - changes.wiki {Fossil Changelog} | |
| 21 | + childprojects.wiki {Child Projects} | |
| 21 | 22 | copyright-release.html {Contributor License Agreement} |
| 22 | 23 | concepts.wiki {Fossil Core Concepts} |
| 23 | 24 | contribute.wiki {Contributing Code or Documentation To The Fossil Project} |
| 24 | 25 | customgraph.md {Theming: Customizing the Timeline Graph} |
| 25 | 26 | customskin.md {Theming: Customizing The Appearance of Web Pages} |
| 26 | 27 |
| --- www/mkindex.tcl | |
| +++ www/mkindex.tcl | |
| @@ -13,13 +13,14 @@ | |
| 13 | antibot.wiki {Defense against Spiders and Bots} |
| 14 | blame.wiki {The Annotate/Blame Algorithm Of Fossil} |
| 15 | branching.wiki {Branching, Forking, Merging, and Tagging} |
| 16 | bugtheory.wiki {Bug Tracking In Fossil} |
| 17 | build.wiki {Compiling and Installing Fossil} |
| 18 | checkin_names.wiki {Check-in And Version Names} |
| 19 | checkin.wiki {Check-in Checklist} |
| 20 | changes.wiki {Fossil Changelog} |
| 21 | copyright-release.html {Contributor License Agreement} |
| 22 | concepts.wiki {Fossil Core Concepts} |
| 23 | contribute.wiki {Contributing Code or Documentation To The Fossil Project} |
| 24 | customgraph.md {Theming: Customizing the Timeline Graph} |
| 25 | customskin.md {Theming: Customizing The Appearance of Web Pages} |
| 26 |
| --- www/mkindex.tcl | |
| +++ www/mkindex.tcl | |
| @@ -13,13 +13,14 @@ | |
| 13 | antibot.wiki {Defense against Spiders and Bots} |
| 14 | blame.wiki {The Annotate/Blame Algorithm Of Fossil} |
| 15 | branching.wiki {Branching, Forking, Merging, and Tagging} |
| 16 | bugtheory.wiki {Bug Tracking In Fossil} |
| 17 | build.wiki {Compiling and Installing Fossil} |
| 18 | changes.wiki {Fossil Changelog} |
| 19 | checkin_names.wiki {Check-in And Version Names} |
| 20 | checkin.wiki {Check-in Checklist} |
| 21 | childprojects.wiki {Child Projects} |
| 22 | copyright-release.html {Contributor License Agreement} |
| 23 | concepts.wiki {Fossil Core Concepts} |
| 24 | contribute.wiki {Contributing Code or Documentation To The Fossil Project} |
| 25 | customgraph.md {Theming: Customizing the Timeline Graph} |
| 26 | customskin.md {Theming: Customizing The Appearance of Web Pages} |
| 27 |
| --- www/permutedindex.html | ||
| +++ www/permutedindex.html | ||
| @@ -43,10 +43,11 @@ | ||
| 43 | 43 | <li><a href="checkin.wiki">Check-in Checklist</a></li> |
| 44 | 44 | <li><a href="checkin.wiki">Checklist — Check-in</a></li> |
| 45 | 45 | <li><a href="../test/release-checklist.wiki">Checklist — Pre-Release Testing</a></li> |
| 46 | 46 | <li><a href="foss-cklist.wiki">Checklist For Successful Open-Source Projects</a></li> |
| 47 | 47 | <li><a href="selfcheck.wiki">Checks — Fossil Repository Integrity Self</a></li> |
| 48 | +<li><a href="childprojects.wiki">Child Projects</a></li> | |
| 48 | 49 | <li><a href="contribute.wiki">Code or Documentation To The Fossil Project — Contributing</a></li> |
| 49 | 50 | <li><a href="style.wiki">Code Style Guidelines — Source</a></li> |
| 50 | 51 | <li><a href="build.wiki">Compiling and Installing Fossil</a></li> |
| 51 | 52 | <li><a href="concepts.wiki">Concepts — Fossil Core</a></li> |
| 52 | 53 | <li><a href="server.wiki">Configure A Fossil Server — How To</a></li> |
| @@ -148,10 +149,11 @@ | ||
| 148 | 149 | <li><a href="private.wiki">Private Branches — Creating, Syncing, and Deleting</a></li> |
| 149 | 150 | <li><a href="makefile.wiki">Process — The Fossil Build</a></li> |
| 150 | 151 | <li><a href="contribute.wiki">Project — Contributing Code or Documentation To The Fossil</a></li> |
| 151 | 152 | <li><a href="embeddeddoc.wiki">Project Documentation — Embedded</a></li> |
| 152 | 153 | <li><a href="foss-cklist.wiki">Projects — Checklist For Successful Open-Source</a></li> |
| 154 | +<li><a href="childprojects.wiki">Projects — Child</a></li> | |
| 153 | 155 | <li><a href="sync.wiki">Protocol — The Fossil Sync</a></li> |
| 154 | 156 | <li><a href="faq.wiki">Questions — Frequently Asked</a></li> |
| 155 | 157 | <li><a href="qandc.wiki">Questions And Criticisms</a></li> |
| 156 | 158 | <li><a href="quickstart.wiki">Quick Start Guide — Fossil</a></li> |
| 157 | 159 | <li><a href="quotes.wiki">Quotes: What People Are Saying About Fossil, Git, and DVCSes in General</a></li> |
| 158 | 160 |
| --- www/permutedindex.html | |
| +++ www/permutedindex.html | |
| @@ -43,10 +43,11 @@ | |
| 43 | <li><a href="checkin.wiki">Check-in Checklist</a></li> |
| 44 | <li><a href="checkin.wiki">Checklist — Check-in</a></li> |
| 45 | <li><a href="../test/release-checklist.wiki">Checklist — Pre-Release Testing</a></li> |
| 46 | <li><a href="foss-cklist.wiki">Checklist For Successful Open-Source Projects</a></li> |
| 47 | <li><a href="selfcheck.wiki">Checks — Fossil Repository Integrity Self</a></li> |
| 48 | <li><a href="contribute.wiki">Code or Documentation To The Fossil Project — Contributing</a></li> |
| 49 | <li><a href="style.wiki">Code Style Guidelines — Source</a></li> |
| 50 | <li><a href="build.wiki">Compiling and Installing Fossil</a></li> |
| 51 | <li><a href="concepts.wiki">Concepts — Fossil Core</a></li> |
| 52 | <li><a href="server.wiki">Configure A Fossil Server — How To</a></li> |
| @@ -148,10 +149,11 @@ | |
| 148 | <li><a href="private.wiki">Private Branches — Creating, Syncing, and Deleting</a></li> |
| 149 | <li><a href="makefile.wiki">Process — The Fossil Build</a></li> |
| 150 | <li><a href="contribute.wiki">Project — Contributing Code or Documentation To The Fossil</a></li> |
| 151 | <li><a href="embeddeddoc.wiki">Project Documentation — Embedded</a></li> |
| 152 | <li><a href="foss-cklist.wiki">Projects — Checklist For Successful Open-Source</a></li> |
| 153 | <li><a href="sync.wiki">Protocol — The Fossil Sync</a></li> |
| 154 | <li><a href="faq.wiki">Questions — Frequently Asked</a></li> |
| 155 | <li><a href="qandc.wiki">Questions And Criticisms</a></li> |
| 156 | <li><a href="quickstart.wiki">Quick Start Guide — Fossil</a></li> |
| 157 | <li><a href="quotes.wiki">Quotes: What People Are Saying About Fossil, Git, and DVCSes in General</a></li> |
| 158 |
| --- www/permutedindex.html | |
| +++ www/permutedindex.html | |
| @@ -43,10 +43,11 @@ | |
| 43 | <li><a href="checkin.wiki">Check-in Checklist</a></li> |
| 44 | <li><a href="checkin.wiki">Checklist — Check-in</a></li> |
| 45 | <li><a href="../test/release-checklist.wiki">Checklist — Pre-Release Testing</a></li> |
| 46 | <li><a href="foss-cklist.wiki">Checklist For Successful Open-Source Projects</a></li> |
| 47 | <li><a href="selfcheck.wiki">Checks — Fossil Repository Integrity Self</a></li> |
| 48 | <li><a href="childprojects.wiki">Child Projects</a></li> |
| 49 | <li><a href="contribute.wiki">Code or Documentation To The Fossil Project — Contributing</a></li> |
| 50 | <li><a href="style.wiki">Code Style Guidelines — Source</a></li> |
| 51 | <li><a href="build.wiki">Compiling and Installing Fossil</a></li> |
| 52 | <li><a href="concepts.wiki">Concepts — Fossil Core</a></li> |
| 53 | <li><a href="server.wiki">Configure A Fossil Server — How To</a></li> |
| @@ -148,10 +149,11 @@ | |
| 149 | <li><a href="private.wiki">Private Branches — Creating, Syncing, and Deleting</a></li> |
| 150 | <li><a href="makefile.wiki">Process — The Fossil Build</a></li> |
| 151 | <li><a href="contribute.wiki">Project — Contributing Code or Documentation To The Fossil</a></li> |
| 152 | <li><a href="embeddeddoc.wiki">Project Documentation — Embedded</a></li> |
| 153 | <li><a href="foss-cklist.wiki">Projects — Checklist For Successful Open-Source</a></li> |
| 154 | <li><a href="childprojects.wiki">Projects — Child</a></li> |
| 155 | <li><a href="sync.wiki">Protocol — The Fossil Sync</a></li> |
| 156 | <li><a href="faq.wiki">Questions — Frequently Asked</a></li> |
| 157 | <li><a href="qandc.wiki">Questions And Criticisms</a></li> |
| 158 | <li><a href="quickstart.wiki">Quick Start Guide — Fossil</a></li> |
| 159 | <li><a href="quotes.wiki">Quotes: What People Are Saying About Fossil, Git, and DVCSes in General</a></li> |
| 160 |