Fossil SCM
Add "--describe" flag to the "version" command to provide context to the most recent major commit tagged with "version*".
Commit
4329553d517f7d13037c19bb590f7f42b98a459e2b9b57c7afa45e1cd090e054
Parent
36ca26647977e7e…
17 files changed
+3
-2
+14
+19
-1
+6
-3
+11
+1
-1
+32
-5
+3
-2
+22
-2
+1
-1
+22
-1
+8
-7
+30
-6
+1
-1
+2
-2
+2
-2
+2
-2
+3
-2
| --- src/add.c | ||
| +++ src/add.c | ||
| @@ -62,13 +62,14 @@ | ||
| 62 | 62 | const char *fname; |
| 63 | 63 | int flg; |
| 64 | 64 | }aManifestflags[] = { |
| 65 | 65 | { "manifest", MFESTFLG_RAW }, |
| 66 | 66 | { "manifest.uuid", MFESTFLG_UUID }, |
| 67 | - { "manifest.tags", MFESTFLG_TAGS } | |
| 67 | + { "manifest.tags", MFESTFLG_TAGS }, | |
| 68 | + { "manifest.descr", MFESTFLG_DESCR } | |
| 68 | 69 | }; |
| 69 | - static const char *azManifests[3]; | |
| 70 | + static const char *azManifests[4]; | |
| 70 | 71 | |
| 71 | 72 | /* |
| 72 | 73 | ** Names of repository files, if they exist in the checkout. |
| 73 | 74 | */ |
| 74 | 75 | static const char *azRepo[4] = { 0, 0, 0, 0 }; |
| 75 | 76 |
| --- src/add.c | |
| +++ src/add.c | |
| @@ -62,13 +62,14 @@ | |
| 62 | const char *fname; |
| 63 | int flg; |
| 64 | }aManifestflags[] = { |
| 65 | { "manifest", MFESTFLG_RAW }, |
| 66 | { "manifest.uuid", MFESTFLG_UUID }, |
| 67 | { "manifest.tags", MFESTFLG_TAGS } |
| 68 | }; |
| 69 | static const char *azManifests[3]; |
| 70 | |
| 71 | /* |
| 72 | ** Names of repository files, if they exist in the checkout. |
| 73 | */ |
| 74 | static const char *azRepo[4] = { 0, 0, 0, 0 }; |
| 75 |
| --- src/add.c | |
| +++ src/add.c | |
| @@ -62,13 +62,14 @@ | |
| 62 | const char *fname; |
| 63 | int flg; |
| 64 | }aManifestflags[] = { |
| 65 | { "manifest", MFESTFLG_RAW }, |
| 66 | { "manifest.uuid", MFESTFLG_UUID }, |
| 67 | { "manifest.tags", MFESTFLG_TAGS }, |
| 68 | { "manifest.descr", MFESTFLG_DESCR } |
| 69 | }; |
| 70 | static const char *azManifests[4]; |
| 71 | |
| 72 | /* |
| 73 | ** Names of repository files, if they exist in the checkout. |
| 74 | */ |
| 75 | static const char *azRepo[4] = { 0, 0, 0, 0 }; |
| 76 |
+14
| --- src/checkin.c | ||
| +++ src/checkin.c | ||
| @@ -2211,10 +2211,11 @@ | ||
| 2211 | 2211 | int allowConflict = 0; /* Allow unresolve merge conflicts */ |
| 2212 | 2212 | int allowEmpty = 0; /* Allow a commit with no changes */ |
| 2213 | 2213 | int allowFork = 0; /* Allow the commit to fork */ |
| 2214 | 2214 | int allowOlder = 0; /* Allow a commit older than its ancestor */ |
| 2215 | 2215 | char *zManifestFile; /* Name of the manifest file */ |
| 2216 | + char *zDescrFile; /* Name of the description file */ | |
| 2216 | 2217 | int useCksum; /* True if checksums should be computed and verified */ |
| 2217 | 2218 | int outputManifest; /* True to output "manifest" and "manifest.uuid" */ |
| 2218 | 2219 | int dryRunFlag; /* True for a test run. Debugging only */ |
| 2219 | 2220 | CheckinInfo sCiInfo; /* Information about this check-in */ |
| 2220 | 2221 | const char *zComFile; /* Read commit message from this file */ |
| @@ -2222,10 +2223,11 @@ | ||
| 2222 | 2223 | const char *zTag; /* A single --tag argument */ |
| 2223 | 2224 | ManifestFile *pFile; /* File structure in the manifest */ |
| 2224 | 2225 | Manifest *pManifest; /* Manifest structure */ |
| 2225 | 2226 | Blob manifest; /* Manifest in baseline form */ |
| 2226 | 2227 | Blob muuid; /* Manifest uuid */ |
| 2228 | + Blob descr; /* Commit description */ | |
| 2227 | 2229 | Blob cksum1, cksum2; /* Before and after commit checksums */ |
| 2228 | 2230 | Blob cksum1b; /* Checksum recorded in the manifest */ |
| 2229 | 2231 | int szD; /* Size of the delta manifest */ |
| 2230 | 2232 | int szB; /* Size of the baseline manifest */ |
| 2231 | 2233 | int nConflict = 0; /* Number of unresolved merge conflicts */ |
| @@ -2778,10 +2780,22 @@ | ||
| 2778 | 2780 | blob_appendf(&muuid, "%s\n", zUuid); |
| 2779 | 2781 | blob_write_to_file(&muuid, zManifestFile); |
| 2780 | 2782 | free(zManifestFile); |
| 2781 | 2783 | blob_reset(&muuid); |
| 2782 | 2784 | } |
| 2785 | + | |
| 2786 | + if( outputManifest & MFESTFLG_DESCR ){ | |
| 2787 | + CommitDescr cd; | |
| 2788 | + zDescrFile = mprintf("%smanifest.descr", g.zLocalRoot); | |
| 2789 | + blob_zero(&descr); | |
| 2790 | + describe_commit(zUuid, "version*", &cd); | |
| 2791 | + blob_appendf(&descr, "%s-%d-%10.10s%s\n", cd.zRelTagname, cd.nCommitsSince, | |
| 2792 | + cd.zCommitHash, cd.isDirty ? "-dirty" : ""); | |
| 2793 | + blob_write_to_file(&descr, zDescrFile); | |
| 2794 | + free(zDescrFile); | |
| 2795 | + blob_reset(&descr); | |
| 2796 | + } | |
| 2783 | 2797 | |
| 2784 | 2798 | /* Update the vfile and vmerge tables */ |
| 2785 | 2799 | db_multi_exec( |
| 2786 | 2800 | "DELETE FROM vfile WHERE (vid!=%d OR deleted) AND is_selected(id);" |
| 2787 | 2801 | "DELETE FROM vmerge;" |
| 2788 | 2802 |
| --- src/checkin.c | |
| +++ src/checkin.c | |
| @@ -2211,10 +2211,11 @@ | |
| 2211 | int allowConflict = 0; /* Allow unresolve merge conflicts */ |
| 2212 | int allowEmpty = 0; /* Allow a commit with no changes */ |
| 2213 | int allowFork = 0; /* Allow the commit to fork */ |
| 2214 | int allowOlder = 0; /* Allow a commit older than its ancestor */ |
| 2215 | char *zManifestFile; /* Name of the manifest file */ |
| 2216 | int useCksum; /* True if checksums should be computed and verified */ |
| 2217 | int outputManifest; /* True to output "manifest" and "manifest.uuid" */ |
| 2218 | int dryRunFlag; /* True for a test run. Debugging only */ |
| 2219 | CheckinInfo sCiInfo; /* Information about this check-in */ |
| 2220 | const char *zComFile; /* Read commit message from this file */ |
| @@ -2222,10 +2223,11 @@ | |
| 2222 | const char *zTag; /* A single --tag argument */ |
| 2223 | ManifestFile *pFile; /* File structure in the manifest */ |
| 2224 | Manifest *pManifest; /* Manifest structure */ |
| 2225 | Blob manifest; /* Manifest in baseline form */ |
| 2226 | Blob muuid; /* Manifest uuid */ |
| 2227 | Blob cksum1, cksum2; /* Before and after commit checksums */ |
| 2228 | Blob cksum1b; /* Checksum recorded in the manifest */ |
| 2229 | int szD; /* Size of the delta manifest */ |
| 2230 | int szB; /* Size of the baseline manifest */ |
| 2231 | int nConflict = 0; /* Number of unresolved merge conflicts */ |
| @@ -2778,10 +2780,22 @@ | |
| 2778 | blob_appendf(&muuid, "%s\n", zUuid); |
| 2779 | blob_write_to_file(&muuid, zManifestFile); |
| 2780 | free(zManifestFile); |
| 2781 | blob_reset(&muuid); |
| 2782 | } |
| 2783 | |
| 2784 | /* Update the vfile and vmerge tables */ |
| 2785 | db_multi_exec( |
| 2786 | "DELETE FROM vfile WHERE (vid!=%d OR deleted) AND is_selected(id);" |
| 2787 | "DELETE FROM vmerge;" |
| 2788 |
| --- src/checkin.c | |
| +++ src/checkin.c | |
| @@ -2211,10 +2211,11 @@ | |
| 2211 | int allowConflict = 0; /* Allow unresolve merge conflicts */ |
| 2212 | int allowEmpty = 0; /* Allow a commit with no changes */ |
| 2213 | int allowFork = 0; /* Allow the commit to fork */ |
| 2214 | int allowOlder = 0; /* Allow a commit older than its ancestor */ |
| 2215 | char *zManifestFile; /* Name of the manifest file */ |
| 2216 | char *zDescrFile; /* Name of the description file */ |
| 2217 | int useCksum; /* True if checksums should be computed and verified */ |
| 2218 | int outputManifest; /* True to output "manifest" and "manifest.uuid" */ |
| 2219 | int dryRunFlag; /* True for a test run. Debugging only */ |
| 2220 | CheckinInfo sCiInfo; /* Information about this check-in */ |
| 2221 | const char *zComFile; /* Read commit message from this file */ |
| @@ -2222,10 +2223,11 @@ | |
| 2223 | const char *zTag; /* A single --tag argument */ |
| 2224 | ManifestFile *pFile; /* File structure in the manifest */ |
| 2225 | Manifest *pManifest; /* Manifest structure */ |
| 2226 | Blob manifest; /* Manifest in baseline form */ |
| 2227 | Blob muuid; /* Manifest uuid */ |
| 2228 | Blob descr; /* Commit description */ |
| 2229 | Blob cksum1, cksum2; /* Before and after commit checksums */ |
| 2230 | Blob cksum1b; /* Checksum recorded in the manifest */ |
| 2231 | int szD; /* Size of the delta manifest */ |
| 2232 | int szB; /* Size of the baseline manifest */ |
| 2233 | int nConflict = 0; /* Number of unresolved merge conflicts */ |
| @@ -2778,10 +2780,22 @@ | |
| 2780 | blob_appendf(&muuid, "%s\n", zUuid); |
| 2781 | blob_write_to_file(&muuid, zManifestFile); |
| 2782 | free(zManifestFile); |
| 2783 | blob_reset(&muuid); |
| 2784 | } |
| 2785 | |
| 2786 | if( outputManifest & MFESTFLG_DESCR ){ |
| 2787 | CommitDescr cd; |
| 2788 | zDescrFile = mprintf("%smanifest.descr", g.zLocalRoot); |
| 2789 | blob_zero(&descr); |
| 2790 | describe_commit(zUuid, "version*", &cd); |
| 2791 | blob_appendf(&descr, "%s-%d-%10.10s%s\n", cd.zRelTagname, cd.nCommitsSince, |
| 2792 | cd.zCommitHash, cd.isDirty ? "-dirty" : ""); |
| 2793 | blob_write_to_file(&descr, zDescrFile); |
| 2794 | free(zDescrFile); |
| 2795 | blob_reset(&descr); |
| 2796 | } |
| 2797 | |
| 2798 | /* Update the vfile and vmerge tables */ |
| 2799 | db_multi_exec( |
| 2800 | "DELETE FROM vfile WHERE (vid!=%d OR deleted) AND is_selected(id);" |
| 2801 | "DELETE FROM vmerge;" |
| 2802 |
+19
-1
| --- src/checkout.c | ||
| +++ src/checkout.c | ||
| @@ -173,10 +173,11 @@ | ||
| 173 | 173 | */ |
| 174 | 174 | void manifest_to_disk(int vid){ |
| 175 | 175 | char *zManFile; |
| 176 | 176 | Blob manifest; |
| 177 | 177 | Blob taglist; |
| 178 | + Blob descr; | |
| 178 | 179 | int flg; |
| 179 | 180 | |
| 180 | 181 | flg = db_get_manifest_setting(); |
| 181 | 182 | |
| 182 | 183 | if( flg & MFESTFLG_RAW ){ |
| @@ -219,10 +220,27 @@ | ||
| 219 | 220 | if( !db_exists("SELECT 1 FROM vfile WHERE pathname='manifest.tags'") ){ |
| 220 | 221 | zManFile = mprintf("%smanifest.tags", g.zLocalRoot); |
| 221 | 222 | file_delete(zManFile); |
| 222 | 223 | free(zManFile); |
| 223 | 224 | } |
| 225 | + } | |
| 226 | + if( flg & MFESTFLG_DESCR ){ | |
| 227 | + CommitDescr cd; | |
| 228 | + blob_zero(&descr); | |
| 229 | + zManFile = mprintf("%smanifest.descr", g.zLocalRoot); | |
| 230 | + describe_commit(rid_to_uuid(vid), "version*", &cd); | |
| 231 | + blob_appendf(&descr, "%s-%d-%10.10s%s\n", cd.zRelTagname, cd.nCommitsSince, | |
| 232 | + cd.zCommitHash, cd.isDirty ? "-dirty" : ""); | |
| 233 | + blob_write_to_file(&descr, zManFile); | |
| 234 | + free(zManFile); | |
| 235 | + blob_reset(&descr); | |
| 236 | + }else{ | |
| 237 | + if( !db_exists("SELECT 1 FROM vfile WHERE pathname='manifest.descr'") ){ | |
| 238 | + zManFile = mprintf("%smanifest.descr", g.zLocalRoot); | |
| 239 | + file_delete(zManFile); | |
| 240 | + free(zManFile); | |
| 241 | + } | |
| 224 | 242 | } |
| 225 | 243 | } |
| 226 | 244 | |
| 227 | 245 | /* |
| 228 | 246 | ** Find the branch name and all symbolic tags for a particular check-in |
| @@ -352,13 +370,13 @@ | ||
| 352 | 370 | db_multi_exec("DELETE FROM vfile WHERE vid!=%d", vid); |
| 353 | 371 | if( !keepFlag ){ |
| 354 | 372 | vfile_to_disk(vid, 0, !g.fQuiet, promptFlag); |
| 355 | 373 | } |
| 356 | 374 | checkout_set_all_exe(vid); |
| 375 | + db_set_checkout(vid); | |
| 357 | 376 | manifest_to_disk(vid); |
| 358 | 377 | ensure_empty_dirs_created(0); |
| 359 | - db_set_checkout(vid); | |
| 360 | 378 | undo_reset(); |
| 361 | 379 | db_multi_exec("DELETE FROM vmerge"); |
| 362 | 380 | if( !keepFlag && db_get_boolean("repo-cksum",1) ){ |
| 363 | 381 | vfile_aggregate_checksum_manifest(vid, &cksum1, &cksum1b); |
| 364 | 382 | vfile_aggregate_checksum_disk(vid, &cksum2); |
| 365 | 383 |
| --- src/checkout.c | |
| +++ src/checkout.c | |
| @@ -173,10 +173,11 @@ | |
| 173 | */ |
| 174 | void manifest_to_disk(int vid){ |
| 175 | char *zManFile; |
| 176 | Blob manifest; |
| 177 | Blob taglist; |
| 178 | int flg; |
| 179 | |
| 180 | flg = db_get_manifest_setting(); |
| 181 | |
| 182 | if( flg & MFESTFLG_RAW ){ |
| @@ -219,10 +220,27 @@ | |
| 219 | if( !db_exists("SELECT 1 FROM vfile WHERE pathname='manifest.tags'") ){ |
| 220 | zManFile = mprintf("%smanifest.tags", g.zLocalRoot); |
| 221 | file_delete(zManFile); |
| 222 | free(zManFile); |
| 223 | } |
| 224 | } |
| 225 | } |
| 226 | |
| 227 | /* |
| 228 | ** Find the branch name and all symbolic tags for a particular check-in |
| @@ -352,13 +370,13 @@ | |
| 352 | db_multi_exec("DELETE FROM vfile WHERE vid!=%d", vid); |
| 353 | if( !keepFlag ){ |
| 354 | vfile_to_disk(vid, 0, !g.fQuiet, promptFlag); |
| 355 | } |
| 356 | checkout_set_all_exe(vid); |
| 357 | manifest_to_disk(vid); |
| 358 | ensure_empty_dirs_created(0); |
| 359 | db_set_checkout(vid); |
| 360 | undo_reset(); |
| 361 | db_multi_exec("DELETE FROM vmerge"); |
| 362 | if( !keepFlag && db_get_boolean("repo-cksum",1) ){ |
| 363 | vfile_aggregate_checksum_manifest(vid, &cksum1, &cksum1b); |
| 364 | vfile_aggregate_checksum_disk(vid, &cksum2); |
| 365 |
| --- src/checkout.c | |
| +++ src/checkout.c | |
| @@ -173,10 +173,11 @@ | |
| 173 | */ |
| 174 | void manifest_to_disk(int vid){ |
| 175 | char *zManFile; |
| 176 | Blob manifest; |
| 177 | Blob taglist; |
| 178 | Blob descr; |
| 179 | int flg; |
| 180 | |
| 181 | flg = db_get_manifest_setting(); |
| 182 | |
| 183 | if( flg & MFESTFLG_RAW ){ |
| @@ -219,10 +220,27 @@ | |
| 220 | if( !db_exists("SELECT 1 FROM vfile WHERE pathname='manifest.tags'") ){ |
| 221 | zManFile = mprintf("%smanifest.tags", g.zLocalRoot); |
| 222 | file_delete(zManFile); |
| 223 | free(zManFile); |
| 224 | } |
| 225 | } |
| 226 | if( flg & MFESTFLG_DESCR ){ |
| 227 | CommitDescr cd; |
| 228 | blob_zero(&descr); |
| 229 | zManFile = mprintf("%smanifest.descr", g.zLocalRoot); |
| 230 | describe_commit(rid_to_uuid(vid), "version*", &cd); |
| 231 | blob_appendf(&descr, "%s-%d-%10.10s%s\n", cd.zRelTagname, cd.nCommitsSince, |
| 232 | cd.zCommitHash, cd.isDirty ? "-dirty" : ""); |
| 233 | blob_write_to_file(&descr, zManFile); |
| 234 | free(zManFile); |
| 235 | blob_reset(&descr); |
| 236 | }else{ |
| 237 | if( !db_exists("SELECT 1 FROM vfile WHERE pathname='manifest.descr'") ){ |
| 238 | zManFile = mprintf("%smanifest.descr", g.zLocalRoot); |
| 239 | file_delete(zManFile); |
| 240 | free(zManFile); |
| 241 | } |
| 242 | } |
| 243 | } |
| 244 | |
| 245 | /* |
| 246 | ** Find the branch name and all symbolic tags for a particular check-in |
| @@ -352,13 +370,13 @@ | |
| 370 | db_multi_exec("DELETE FROM vfile WHERE vid!=%d", vid); |
| 371 | if( !keepFlag ){ |
| 372 | vfile_to_disk(vid, 0, !g.fQuiet, promptFlag); |
| 373 | } |
| 374 | checkout_set_all_exe(vid); |
| 375 | db_set_checkout(vid); |
| 376 | manifest_to_disk(vid); |
| 377 | ensure_empty_dirs_created(0); |
| 378 | undo_reset(); |
| 379 | db_multi_exec("DELETE FROM vmerge"); |
| 380 | if( !keepFlag && db_get_boolean("repo-cksum",1) ){ |
| 381 | vfile_aggregate_checksum_manifest(vid, &cksum1, &cksum1b); |
| 382 | vfile_aggregate_checksum_disk(vid, &cksum2); |
| 383 |
M
src/db.c
+6
-3
| --- src/db.c | ||
| +++ src/db.c | ||
| @@ -3485,10 +3485,11 @@ | ||
| 3485 | 3485 | #if INTERFACE |
| 3486 | 3486 | /* Manifest generation flags */ |
| 3487 | 3487 | #define MFESTFLG_RAW 0x01 |
| 3488 | 3488 | #define MFESTFLG_UUID 0x02 |
| 3489 | 3489 | #define MFESTFLG_TAGS 0x04 |
| 3490 | +#define MFESTFLG_DESCR 0x08 | |
| 3490 | 3491 | #endif /* INTERFACE */ |
| 3491 | 3492 | |
| 3492 | 3493 | /* |
| 3493 | 3494 | ** Get the manifest setting. For backwards compatibility first check if the |
| 3494 | 3495 | ** value is a boolean. If it's not a boolean, treat each character as a flag |
| @@ -3500,18 +3501,19 @@ | ||
| 3500 | 3501 | int flg; |
| 3501 | 3502 | char *zVal = db_get("manifest", 0); |
| 3502 | 3503 | if( zVal==0 || is_false(zVal) ){ |
| 3503 | 3504 | return 0; |
| 3504 | 3505 | }else if( is_truth(zVal) ){ |
| 3505 | - return MFESTFLG_RAW|MFESTFLG_UUID; | |
| 3506 | + return MFESTFLG_RAW|MFESTFLG_UUID|MFESTFLG_DESCR; | |
| 3506 | 3507 | } |
| 3507 | 3508 | flg = 0; |
| 3508 | 3509 | while( *zVal ){ |
| 3509 | 3510 | switch( *zVal ){ |
| 3510 | 3511 | case 'r': flg |= MFESTFLG_RAW; break; |
| 3511 | 3512 | case 'u': flg |= MFESTFLG_UUID; break; |
| 3512 | 3513 | case 't': flg |= MFESTFLG_TAGS; break; |
| 3514 | + case 'd': flg |= MFESTFLG_DESCR; break; | |
| 3513 | 3515 | } |
| 3514 | 3516 | zVal++; |
| 3515 | 3517 | } |
| 3516 | 3518 | return flg; |
| 3517 | 3519 | } |
| @@ -4257,12 +4259,13 @@ | ||
| 4257 | 4259 | ** SETTING: manifest width=5 versionable |
| 4258 | 4260 | ** If enabled, automatically create files "manifest" and "manifest.uuid" |
| 4259 | 4261 | ** in every checkout. |
| 4260 | 4262 | ** |
| 4261 | 4263 | ** Optionally use combinations of characters 'r' for "manifest", |
| 4262 | -** 'u' for "manifest.uuid" and 't' for "manifest.tags". The SQLite | |
| 4263 | -** and Fossil repositories both require manifests. | |
| 4264 | +** 'u' for "manifest.uuid", 't' for "manifest.tags", and 'd' | |
| 4265 | +** for "manifest.descr". The SQLite and Fossil repositories both | |
| 4266 | +** require manifests. | |
| 4264 | 4267 | */ |
| 4265 | 4268 | /* |
| 4266 | 4269 | ** SETTING: max-loadavg width=25 default=0.0 |
| 4267 | 4270 | ** Some CPU-intensive web pages (ex: /zip, /tarball, /blame) |
| 4268 | 4271 | ** are disallowed if the system load average goes above this |
| 4269 | 4272 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -3485,10 +3485,11 @@ | |
| 3485 | #if INTERFACE |
| 3486 | /* Manifest generation flags */ |
| 3487 | #define MFESTFLG_RAW 0x01 |
| 3488 | #define MFESTFLG_UUID 0x02 |
| 3489 | #define MFESTFLG_TAGS 0x04 |
| 3490 | #endif /* INTERFACE */ |
| 3491 | |
| 3492 | /* |
| 3493 | ** Get the manifest setting. For backwards compatibility first check if the |
| 3494 | ** value is a boolean. If it's not a boolean, treat each character as a flag |
| @@ -3500,18 +3501,19 @@ | |
| 3500 | int flg; |
| 3501 | char *zVal = db_get("manifest", 0); |
| 3502 | if( zVal==0 || is_false(zVal) ){ |
| 3503 | return 0; |
| 3504 | }else if( is_truth(zVal) ){ |
| 3505 | return MFESTFLG_RAW|MFESTFLG_UUID; |
| 3506 | } |
| 3507 | flg = 0; |
| 3508 | while( *zVal ){ |
| 3509 | switch( *zVal ){ |
| 3510 | case 'r': flg |= MFESTFLG_RAW; break; |
| 3511 | case 'u': flg |= MFESTFLG_UUID; break; |
| 3512 | case 't': flg |= MFESTFLG_TAGS; break; |
| 3513 | } |
| 3514 | zVal++; |
| 3515 | } |
| 3516 | return flg; |
| 3517 | } |
| @@ -4257,12 +4259,13 @@ | |
| 4257 | ** SETTING: manifest width=5 versionable |
| 4258 | ** If enabled, automatically create files "manifest" and "manifest.uuid" |
| 4259 | ** in every checkout. |
| 4260 | ** |
| 4261 | ** Optionally use combinations of characters 'r' for "manifest", |
| 4262 | ** 'u' for "manifest.uuid" and 't' for "manifest.tags". The SQLite |
| 4263 | ** and Fossil repositories both require manifests. |
| 4264 | */ |
| 4265 | /* |
| 4266 | ** SETTING: max-loadavg width=25 default=0.0 |
| 4267 | ** Some CPU-intensive web pages (ex: /zip, /tarball, /blame) |
| 4268 | ** are disallowed if the system load average goes above this |
| 4269 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -3485,10 +3485,11 @@ | |
| 3485 | #if INTERFACE |
| 3486 | /* Manifest generation flags */ |
| 3487 | #define MFESTFLG_RAW 0x01 |
| 3488 | #define MFESTFLG_UUID 0x02 |
| 3489 | #define MFESTFLG_TAGS 0x04 |
| 3490 | #define MFESTFLG_DESCR 0x08 |
| 3491 | #endif /* INTERFACE */ |
| 3492 | |
| 3493 | /* |
| 3494 | ** Get the manifest setting. For backwards compatibility first check if the |
| 3495 | ** value is a boolean. If it's not a boolean, treat each character as a flag |
| @@ -3500,18 +3501,19 @@ | |
| 3501 | int flg; |
| 3502 | char *zVal = db_get("manifest", 0); |
| 3503 | if( zVal==0 || is_false(zVal) ){ |
| 3504 | return 0; |
| 3505 | }else if( is_truth(zVal) ){ |
| 3506 | return MFESTFLG_RAW|MFESTFLG_UUID|MFESTFLG_DESCR; |
| 3507 | } |
| 3508 | flg = 0; |
| 3509 | while( *zVal ){ |
| 3510 | switch( *zVal ){ |
| 3511 | case 'r': flg |= MFESTFLG_RAW; break; |
| 3512 | case 'u': flg |= MFESTFLG_UUID; break; |
| 3513 | case 't': flg |= MFESTFLG_TAGS; break; |
| 3514 | case 'd': flg |= MFESTFLG_DESCR; break; |
| 3515 | } |
| 3516 | zVal++; |
| 3517 | } |
| 3518 | return flg; |
| 3519 | } |
| @@ -4257,12 +4259,13 @@ | |
| 4259 | ** SETTING: manifest width=5 versionable |
| 4260 | ** If enabled, automatically create files "manifest" and "manifest.uuid" |
| 4261 | ** in every checkout. |
| 4262 | ** |
| 4263 | ** Optionally use combinations of characters 'r' for "manifest", |
| 4264 | ** 'u' for "manifest.uuid", 't' for "manifest.tags", and 'd' |
| 4265 | ** for "manifest.descr". The SQLite and Fossil repositories both |
| 4266 | ** require manifests. |
| 4267 | */ |
| 4268 | /* |
| 4269 | ** SETTING: max-loadavg width=25 default=0.0 |
| 4270 | ** Some CPU-intensive web pages (ex: /zip, /tarball, /blame) |
| 4271 | ** are disallowed if the system load average goes above this |
| 4272 |
+11
| --- src/export.c | ||
| +++ src/export.c | ||
| @@ -1288,10 +1288,21 @@ | ||
| 1288 | 1288 | blob_init(&tagslist, 0, 0); |
| 1289 | 1289 | get_checkin_taglist(rid, &tagslist); |
| 1290 | 1290 | fprintf(xCmd,"M 100644 inline manifest.tags\ndata %d\n%s\n", |
| 1291 | 1291 | blob_strlen(&tagslist), blob_str(&tagslist)); |
| 1292 | 1292 | blob_reset(&tagslist); |
| 1293 | + } | |
| 1294 | + if( fManifest & MFESTFLG_DESCR ){ | |
| 1295 | + CommitDescr cd; | |
| 1296 | + Blob descr; | |
| 1297 | + blob_init(&descr, 0, 0); | |
| 1298 | + describe_commit(rid_to_uuid(rid), "version*", &cd); | |
| 1299 | + blob_appendf(&descr, "%s-%d-%10.10s\n", cd.zRelTagname, | |
| 1300 | + cd.nCommitsSince, cd.zCommitHash); | |
| 1301 | + fprintf(xCmd,"M 100644 inline manifest.descr\ndata %d\n%s\n", | |
| 1302 | + blob_strlen(&descr), blob_str(&descr)); | |
| 1303 | + blob_reset(&descr); | |
| 1293 | 1304 | } |
| 1294 | 1305 | |
| 1295 | 1306 | /* The check-in is finished, so decrement the counter */ |
| 1296 | 1307 | (*pnLimit)--; |
| 1297 | 1308 | return 0; |
| 1298 | 1309 |
| --- src/export.c | |
| +++ src/export.c | |
| @@ -1288,10 +1288,21 @@ | |
| 1288 | blob_init(&tagslist, 0, 0); |
| 1289 | get_checkin_taglist(rid, &tagslist); |
| 1290 | fprintf(xCmd,"M 100644 inline manifest.tags\ndata %d\n%s\n", |
| 1291 | blob_strlen(&tagslist), blob_str(&tagslist)); |
| 1292 | blob_reset(&tagslist); |
| 1293 | } |
| 1294 | |
| 1295 | /* The check-in is finished, so decrement the counter */ |
| 1296 | (*pnLimit)--; |
| 1297 | return 0; |
| 1298 |
| --- src/export.c | |
| +++ src/export.c | |
| @@ -1288,10 +1288,21 @@ | |
| 1288 | blob_init(&tagslist, 0, 0); |
| 1289 | get_checkin_taglist(rid, &tagslist); |
| 1290 | fprintf(xCmd,"M 100644 inline manifest.tags\ndata %d\n%s\n", |
| 1291 | blob_strlen(&tagslist), blob_str(&tagslist)); |
| 1292 | blob_reset(&tagslist); |
| 1293 | } |
| 1294 | if( fManifest & MFESTFLG_DESCR ){ |
| 1295 | CommitDescr cd; |
| 1296 | Blob descr; |
| 1297 | blob_init(&descr, 0, 0); |
| 1298 | describe_commit(rid_to_uuid(rid), "version*", &cd); |
| 1299 | blob_appendf(&descr, "%s-%d-%10.10s\n", cd.zRelTagname, |
| 1300 | cd.nCommitsSince, cd.zCommitHash); |
| 1301 | fprintf(xCmd,"M 100644 inline manifest.descr\ndata %d\n%s\n", |
| 1302 | blob_strlen(&descr), blob_str(&descr)); |
| 1303 | blob_reset(&descr); |
| 1304 | } |
| 1305 | |
| 1306 | /* The check-in is finished, so decrement the counter */ |
| 1307 | (*pnLimit)--; |
| 1308 | return 0; |
| 1309 |
+1
-1
| --- src/info.c | ||
| +++ src/info.c | ||
| @@ -247,11 +247,11 @@ | ||
| 247 | 247 | db_int(-1, "SELECT count(*) FROM event WHERE type='ci' /*scan*/")); |
| 248 | 248 | } |
| 249 | 249 | if( verboseFlag || !g.repositoryOpen ){ |
| 250 | 250 | Blob vx; |
| 251 | 251 | char *z; |
| 252 | - fossil_version_blob(&vx, 0); | |
| 252 | + fossil_version_blob(&vx, 0, 0); | |
| 253 | 253 | z = strstr(blob_str(&vx), "version"); |
| 254 | 254 | if( z ){ |
| 255 | 255 | z += 8; |
| 256 | 256 | }else{ |
| 257 | 257 | z = blob_str(&vx); |
| 258 | 258 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -247,11 +247,11 @@ | |
| 247 | db_int(-1, "SELECT count(*) FROM event WHERE type='ci' /*scan*/")); |
| 248 | } |
| 249 | if( verboseFlag || !g.repositoryOpen ){ |
| 250 | Blob vx; |
| 251 | char *z; |
| 252 | fossil_version_blob(&vx, 0); |
| 253 | z = strstr(blob_str(&vx), "version"); |
| 254 | if( z ){ |
| 255 | z += 8; |
| 256 | }else{ |
| 257 | z = blob_str(&vx); |
| 258 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -247,11 +247,11 @@ | |
| 247 | db_int(-1, "SELECT count(*) FROM event WHERE type='ci' /*scan*/")); |
| 248 | } |
| 249 | if( verboseFlag || !g.repositoryOpen ){ |
| 250 | Blob vx; |
| 251 | char *z; |
| 252 | fossil_version_blob(&vx, 0, 0); |
| 253 | z = strstr(blob_str(&vx), "version"); |
| 254 | if( z ){ |
| 255 | z += 8; |
| 256 | }else{ |
| 257 | z = blob_str(&vx); |
| 258 |
+32
-5
| --- src/main.c | ||
| +++ src/main.c | ||
| @@ -1162,28 +1162,45 @@ | ||
| 1162 | 1162 | const char *get_version(){ |
| 1163 | 1163 | static const char version[] = RELEASE_VERSION " " MANIFEST_VERSION " " |
| 1164 | 1164 | MANIFEST_DATE " UTC"; |
| 1165 | 1165 | return version; |
| 1166 | 1166 | } |
| 1167 | + | |
| 1168 | +/* | |
| 1169 | +** This function returns a human readable version string based on 'describe'. | |
| 1170 | +*/ | |
| 1171 | +const char *get_describe_version(){ | |
| 1172 | +#ifndef MANIFEST_DESCRIPTION | |
| 1173 | +#define MANIFEST_DESCRIPTION MANIFEST_VERSION | |
| 1174 | +#endif | |
| 1175 | +#ifndef DESCRIPTION_DATE | |
| 1176 | +#define DESCRIPTION_DATE MANIFEST_DATE | |
| 1177 | +#endif | |
| 1178 | + static const char version[] = RELEASE_VERSION " " MANIFEST_DESCRIPTION " " | |
| 1179 | + DESCRIPTION_DATE " UTC"; | |
| 1180 | + return version; | |
| 1181 | +} | |
| 1167 | 1182 | |
| 1168 | 1183 | /* |
| 1169 | 1184 | ** This function populates a blob with version information. It is used by |
| 1170 | 1185 | ** the "version" command and "test-version" web page. It assumes the blob |
| 1171 | 1186 | ** passed to it is uninitialized; otherwise, it will leak memory. |
| 1172 | 1187 | */ |
| 1173 | 1188 | void fossil_version_blob( |
| 1174 | 1189 | Blob *pOut, /* Write the manifest here */ |
| 1175 | - int bVerbose /* Non-zero for full information. */ | |
| 1190 | + int bVerbose, /* Non-zero for full information. */ | |
| 1191 | + int bDescribe /* Non-zero for describe information. */ | |
| 1176 | 1192 | ){ |
| 1177 | 1193 | #if defined(FOSSIL_ENABLE_TCL) |
| 1178 | 1194 | int rc; |
| 1179 | 1195 | const char *zRc; |
| 1180 | 1196 | #endif |
| 1181 | 1197 | Stmt q; |
| 1182 | 1198 | size_t pageSize = 0; |
| 1183 | 1199 | blob_zero(pOut); |
| 1184 | - blob_appendf(pOut, "This is fossil version %s\n", get_version()); | |
| 1200 | + blob_appendf(pOut, "This is fossil version %s\n", | |
| 1201 | + bDescribe ? get_describe_version() : get_version()); | |
| 1185 | 1202 | if( !bVerbose ) return; |
| 1186 | 1203 | blob_appendf(pOut, "Compiled on %s %s using %s (%d-bit)\n", |
| 1187 | 1204 | __DATE__, __TIME__, COMPILER_NAME, sizeof(void*)*8); |
| 1188 | 1205 | blob_appendf(pOut, "Schema version %s\n", AUX_SCHEMA_MAX); |
| 1189 | 1206 | fossil_get_page_size(&pageSize); |
| @@ -1285,24 +1302,32 @@ | ||
| 1285 | 1302 | |
| 1286 | 1303 | |
| 1287 | 1304 | /* |
| 1288 | 1305 | ** COMMAND: version |
| 1289 | 1306 | ** |
| 1290 | -** Usage: %fossil version ?-v|--verbose? | |
| 1307 | +** Usage: %fossil version ?-v|--verbose? ?-d|--describe? | |
| 1291 | 1308 | ** |
| 1292 | 1309 | ** Print the source code version number for the fossil executable. |
| 1293 | 1310 | ** If the verbose option is specified, additional details will |
| 1294 | 1311 | ** be output about what optional features this binary was compiled |
| 1295 | 1312 | ** with |
| 1313 | +** | |
| 1314 | +** Options: | |
| 1315 | +** | |
| 1316 | +** -d|--describe Show an extended description based on the latest | |
| 1317 | +** tagged source code commit | |
| 1318 | +** -v|--verbose Show additional details will about what optional | |
| 1319 | +** features this binary was compiled with | |
| 1296 | 1320 | */ |
| 1297 | 1321 | void version_cmd(void){ |
| 1298 | 1322 | Blob versionInfo; |
| 1299 | 1323 | int verboseFlag = find_option("verbose","v",0)!=0; |
| 1324 | + int describeFlag = find_option("describe","d",0)!=0; | |
| 1300 | 1325 | |
| 1301 | 1326 | /* We should be done with options.. */ |
| 1302 | 1327 | verify_all_options(); |
| 1303 | - fossil_version_blob(&versionInfo, verboseFlag); | |
| 1328 | + fossil_version_blob(&versionInfo, verboseFlag, describeFlag); | |
| 1304 | 1329 | fossil_print("%s", blob_str(&versionInfo)); |
| 1305 | 1330 | } |
| 1306 | 1331 | |
| 1307 | 1332 | |
| 1308 | 1333 | /* |
| @@ -1315,17 +1340,19 @@ | ||
| 1315 | 1340 | ** verbose Show details |
| 1316 | 1341 | */ |
| 1317 | 1342 | void test_version_page(void){ |
| 1318 | 1343 | Blob versionInfo; |
| 1319 | 1344 | int verboseFlag; |
| 1345 | + int describeFlag; | |
| 1320 | 1346 | |
| 1321 | 1347 | login_check_credentials(); |
| 1322 | 1348 | if( !g.perm.Read ){ login_needed(g.anon.Read); return; } |
| 1323 | 1349 | verboseFlag = PD("verbose", 0) != 0; |
| 1350 | + describeFlag = PD("describe", 0) != 0; | |
| 1324 | 1351 | style_header("Version Information"); |
| 1325 | 1352 | style_submenu_element("Stat", "stat"); |
| 1326 | - fossil_version_blob(&versionInfo, verboseFlag); | |
| 1353 | + fossil_version_blob(&versionInfo, verboseFlag, describeFlag); | |
| 1327 | 1354 | @ <pre> |
| 1328 | 1355 | @ %h(blob_str(&versionInfo)) |
| 1329 | 1356 | @ </pre> |
| 1330 | 1357 | style_finish_page(); |
| 1331 | 1358 | } |
| 1332 | 1359 |
| --- src/main.c | |
| +++ src/main.c | |
| @@ -1162,28 +1162,45 @@ | |
| 1162 | const char *get_version(){ |
| 1163 | static const char version[] = RELEASE_VERSION " " MANIFEST_VERSION " " |
| 1164 | MANIFEST_DATE " UTC"; |
| 1165 | return version; |
| 1166 | } |
| 1167 | |
| 1168 | /* |
| 1169 | ** This function populates a blob with version information. It is used by |
| 1170 | ** the "version" command and "test-version" web page. It assumes the blob |
| 1171 | ** passed to it is uninitialized; otherwise, it will leak memory. |
| 1172 | */ |
| 1173 | void fossil_version_blob( |
| 1174 | Blob *pOut, /* Write the manifest here */ |
| 1175 | int bVerbose /* Non-zero for full information. */ |
| 1176 | ){ |
| 1177 | #if defined(FOSSIL_ENABLE_TCL) |
| 1178 | int rc; |
| 1179 | const char *zRc; |
| 1180 | #endif |
| 1181 | Stmt q; |
| 1182 | size_t pageSize = 0; |
| 1183 | blob_zero(pOut); |
| 1184 | blob_appendf(pOut, "This is fossil version %s\n", get_version()); |
| 1185 | if( !bVerbose ) return; |
| 1186 | blob_appendf(pOut, "Compiled on %s %s using %s (%d-bit)\n", |
| 1187 | __DATE__, __TIME__, COMPILER_NAME, sizeof(void*)*8); |
| 1188 | blob_appendf(pOut, "Schema version %s\n", AUX_SCHEMA_MAX); |
| 1189 | fossil_get_page_size(&pageSize); |
| @@ -1285,24 +1302,32 @@ | |
| 1285 | |
| 1286 | |
| 1287 | /* |
| 1288 | ** COMMAND: version |
| 1289 | ** |
| 1290 | ** Usage: %fossil version ?-v|--verbose? |
| 1291 | ** |
| 1292 | ** Print the source code version number for the fossil executable. |
| 1293 | ** If the verbose option is specified, additional details will |
| 1294 | ** be output about what optional features this binary was compiled |
| 1295 | ** with |
| 1296 | */ |
| 1297 | void version_cmd(void){ |
| 1298 | Blob versionInfo; |
| 1299 | int verboseFlag = find_option("verbose","v",0)!=0; |
| 1300 | |
| 1301 | /* We should be done with options.. */ |
| 1302 | verify_all_options(); |
| 1303 | fossil_version_blob(&versionInfo, verboseFlag); |
| 1304 | fossil_print("%s", blob_str(&versionInfo)); |
| 1305 | } |
| 1306 | |
| 1307 | |
| 1308 | /* |
| @@ -1315,17 +1340,19 @@ | |
| 1315 | ** verbose Show details |
| 1316 | */ |
| 1317 | void test_version_page(void){ |
| 1318 | Blob versionInfo; |
| 1319 | int verboseFlag; |
| 1320 | |
| 1321 | login_check_credentials(); |
| 1322 | if( !g.perm.Read ){ login_needed(g.anon.Read); return; } |
| 1323 | verboseFlag = PD("verbose", 0) != 0; |
| 1324 | style_header("Version Information"); |
| 1325 | style_submenu_element("Stat", "stat"); |
| 1326 | fossil_version_blob(&versionInfo, verboseFlag); |
| 1327 | @ <pre> |
| 1328 | @ %h(blob_str(&versionInfo)) |
| 1329 | @ </pre> |
| 1330 | style_finish_page(); |
| 1331 | } |
| 1332 |
| --- src/main.c | |
| +++ src/main.c | |
| @@ -1162,28 +1162,45 @@ | |
| 1162 | const char *get_version(){ |
| 1163 | static const char version[] = RELEASE_VERSION " " MANIFEST_VERSION " " |
| 1164 | MANIFEST_DATE " UTC"; |
| 1165 | return version; |
| 1166 | } |
| 1167 | |
| 1168 | /* |
| 1169 | ** This function returns a human readable version string based on 'describe'. |
| 1170 | */ |
| 1171 | const char *get_describe_version(){ |
| 1172 | #ifndef MANIFEST_DESCRIPTION |
| 1173 | #define MANIFEST_DESCRIPTION MANIFEST_VERSION |
| 1174 | #endif |
| 1175 | #ifndef DESCRIPTION_DATE |
| 1176 | #define DESCRIPTION_DATE MANIFEST_DATE |
| 1177 | #endif |
| 1178 | static const char version[] = RELEASE_VERSION " " MANIFEST_DESCRIPTION " " |
| 1179 | DESCRIPTION_DATE " UTC"; |
| 1180 | return version; |
| 1181 | } |
| 1182 | |
| 1183 | /* |
| 1184 | ** This function populates a blob with version information. It is used by |
| 1185 | ** the "version" command and "test-version" web page. It assumes the blob |
| 1186 | ** passed to it is uninitialized; otherwise, it will leak memory. |
| 1187 | */ |
| 1188 | void fossil_version_blob( |
| 1189 | Blob *pOut, /* Write the manifest here */ |
| 1190 | int bVerbose, /* Non-zero for full information. */ |
| 1191 | int bDescribe /* Non-zero for describe information. */ |
| 1192 | ){ |
| 1193 | #if defined(FOSSIL_ENABLE_TCL) |
| 1194 | int rc; |
| 1195 | const char *zRc; |
| 1196 | #endif |
| 1197 | Stmt q; |
| 1198 | size_t pageSize = 0; |
| 1199 | blob_zero(pOut); |
| 1200 | blob_appendf(pOut, "This is fossil version %s\n", |
| 1201 | bDescribe ? get_describe_version() : get_version()); |
| 1202 | if( !bVerbose ) return; |
| 1203 | blob_appendf(pOut, "Compiled on %s %s using %s (%d-bit)\n", |
| 1204 | __DATE__, __TIME__, COMPILER_NAME, sizeof(void*)*8); |
| 1205 | blob_appendf(pOut, "Schema version %s\n", AUX_SCHEMA_MAX); |
| 1206 | fossil_get_page_size(&pageSize); |
| @@ -1285,24 +1302,32 @@ | |
| 1302 | |
| 1303 | |
| 1304 | /* |
| 1305 | ** COMMAND: version |
| 1306 | ** |
| 1307 | ** Usage: %fossil version ?-v|--verbose? ?-d|--describe? |
| 1308 | ** |
| 1309 | ** Print the source code version number for the fossil executable. |
| 1310 | ** If the verbose option is specified, additional details will |
| 1311 | ** be output about what optional features this binary was compiled |
| 1312 | ** with |
| 1313 | ** |
| 1314 | ** Options: |
| 1315 | ** |
| 1316 | ** -d|--describe Show an extended description based on the latest |
| 1317 | ** tagged source code commit |
| 1318 | ** -v|--verbose Show additional details will about what optional |
| 1319 | ** features this binary was compiled with |
| 1320 | */ |
| 1321 | void version_cmd(void){ |
| 1322 | Blob versionInfo; |
| 1323 | int verboseFlag = find_option("verbose","v",0)!=0; |
| 1324 | int describeFlag = find_option("describe","d",0)!=0; |
| 1325 | |
| 1326 | /* We should be done with options.. */ |
| 1327 | verify_all_options(); |
| 1328 | fossil_version_blob(&versionInfo, verboseFlag, describeFlag); |
| 1329 | fossil_print("%s", blob_str(&versionInfo)); |
| 1330 | } |
| 1331 | |
| 1332 | |
| 1333 | /* |
| @@ -1315,17 +1340,19 @@ | |
| 1340 | ** verbose Show details |
| 1341 | */ |
| 1342 | void test_version_page(void){ |
| 1343 | Blob versionInfo; |
| 1344 | int verboseFlag; |
| 1345 | int describeFlag; |
| 1346 | |
| 1347 | login_check_credentials(); |
| 1348 | if( !g.perm.Read ){ login_needed(g.anon.Read); return; } |
| 1349 | verboseFlag = PD("verbose", 0) != 0; |
| 1350 | describeFlag = PD("describe", 0) != 0; |
| 1351 | style_header("Version Information"); |
| 1352 | style_submenu_element("Stat", "stat"); |
| 1353 | fossil_version_blob(&versionInfo, verboseFlag, describeFlag); |
| 1354 | @ <pre> |
| 1355 | @ %h(blob_str(&versionInfo)) |
| 1356 | @ </pre> |
| 1357 | style_finish_page(); |
| 1358 | } |
| 1359 |
+3
-2
| --- src/main.mk | ||
| +++ src/main.mk | ||
| @@ -614,14 +614,15 @@ | ||
| 614 | 614 | # the run to just those test cases. |
| 615 | 615 | # |
| 616 | 616 | test: $(OBJDIR) $(APPNAME) |
| 617 | 617 | $(TCLSH) $(SRCDIR)/../test/tester.tcl $(APPNAME) $(TESTFLAGS) |
| 618 | 618 | |
| 619 | -$(OBJDIR)/VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(SRCDIR)/../VERSION $(OBJDIR)/mkversion $(OBJDIR)/phony.h | |
| 619 | +$(OBJDIR)/VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(SRCDIR)/../VERSION $(SRCDIR)/../manifest.descr $(OBJDIR)/mkversion $(OBJDIR)/phony.h | |
| 620 | 620 | $(OBJDIR)/mkversion $(SRCDIR)/../manifest.uuid \ |
| 621 | 621 | $(SRCDIR)/../manifest \ |
| 622 | - $(SRCDIR)/../VERSION >$(OBJDIR)/VERSION.h | |
| 622 | + $(SRCDIR)/../VERSION \ | |
| 623 | + $(SRCDIR)/../manifest.descr >$(OBJDIR)/VERSION.h | |
| 623 | 624 | |
| 624 | 625 | $(OBJDIR)/phony.h: |
| 625 | 626 | # Force rebuild of VERSION.h every time we run "make" |
| 626 | 627 | |
| 627 | 628 | # Setup the options used to compile the included SQLite library. |
| 628 | 629 |
| --- src/main.mk | |
| +++ src/main.mk | |
| @@ -614,14 +614,15 @@ | |
| 614 | # the run to just those test cases. |
| 615 | # |
| 616 | test: $(OBJDIR) $(APPNAME) |
| 617 | $(TCLSH) $(SRCDIR)/../test/tester.tcl $(APPNAME) $(TESTFLAGS) |
| 618 | |
| 619 | $(OBJDIR)/VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(SRCDIR)/../VERSION $(OBJDIR)/mkversion $(OBJDIR)/phony.h |
| 620 | $(OBJDIR)/mkversion $(SRCDIR)/../manifest.uuid \ |
| 621 | $(SRCDIR)/../manifest \ |
| 622 | $(SRCDIR)/../VERSION >$(OBJDIR)/VERSION.h |
| 623 | |
| 624 | $(OBJDIR)/phony.h: |
| 625 | # Force rebuild of VERSION.h every time we run "make" |
| 626 | |
| 627 | # Setup the options used to compile the included SQLite library. |
| 628 |
| --- src/main.mk | |
| +++ src/main.mk | |
| @@ -614,14 +614,15 @@ | |
| 614 | # the run to just those test cases. |
| 615 | # |
| 616 | test: $(OBJDIR) $(APPNAME) |
| 617 | $(TCLSH) $(SRCDIR)/../test/tester.tcl $(APPNAME) $(TESTFLAGS) |
| 618 | |
| 619 | $(OBJDIR)/VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(SRCDIR)/../VERSION $(SRCDIR)/../manifest.descr $(OBJDIR)/mkversion $(OBJDIR)/phony.h |
| 620 | $(OBJDIR)/mkversion $(SRCDIR)/../manifest.uuid \ |
| 621 | $(SRCDIR)/../manifest \ |
| 622 | $(SRCDIR)/../VERSION \ |
| 623 | $(SRCDIR)/../manifest.descr >$(OBJDIR)/VERSION.h |
| 624 | |
| 625 | $(OBJDIR)/phony.h: |
| 626 | # Force rebuild of VERSION.h every time we run "make" |
| 627 | |
| 628 | # Setup the options used to compile the included SQLite library. |
| 629 |
+22
-2
| --- src/tar.c | ||
| +++ src/tar.c | ||
| @@ -516,12 +516,16 @@ | ||
| 516 | 516 | if( (pInclude==0 || glob_match(pInclude, "manifest.tags")) |
| 517 | 517 | && !glob_match(pExclude, "manifest.tags") |
| 518 | 518 | && (flg & MFESTFLG_TAGS) ){ |
| 519 | 519 | eflg |= MFESTFLG_TAGS; |
| 520 | 520 | } |
| 521 | - | |
| 522 | - if( eflg & (MFESTFLG_RAW|MFESTFLG_UUID) ){ | |
| 521 | + if( (pInclude==0 || glob_match(pInclude, "manifest.descr")) | |
| 522 | + && !glob_match(pExclude, "manifest.descr") | |
| 523 | + && (flg & MFESTFLG_DESCR) ){ | |
| 524 | + eflg |= MFESTFLG_DESCR; | |
| 525 | + } | |
| 526 | + if( eflg & (MFESTFLG_RAW|MFESTFLG_UUID|MFESTFLG_DESCR) ){ | |
| 523 | 527 | if( eflg & MFESTFLG_RAW ){ |
| 524 | 528 | blob_append(&filename, "manifest", -1); |
| 525 | 529 | zName = blob_str(&filename); |
| 526 | 530 | if( listFlag ) fossil_print("%s\n", zName); |
| 527 | 531 | if( pTar ){ |
| @@ -550,10 +554,26 @@ | ||
| 550 | 554 | blob_zero(&tagslist); |
| 551 | 555 | get_checkin_taglist(rid, &tagslist); |
| 552 | 556 | tar_add_file(zName, &tagslist, 0, mTime); |
| 553 | 557 | blob_reset(&tagslist); |
| 554 | 558 | } |
| 559 | + } | |
| 560 | + if( eflg & MFESTFLG_DESCR ){ | |
| 561 | + blob_resize(&filename, nPrefix); | |
| 562 | + blob_append(&filename, "manifest.descr", -1); | |
| 563 | + zName = blob_str(&filename); | |
| 564 | + if( listFlag ) fossil_print("%s\n", zName); | |
| 565 | + if( pTar ){ | |
| 566 | + CommitDescr cd; | |
| 567 | + Blob descr; | |
| 568 | + blob_zero(&descr); | |
| 569 | + describe_commit(rid_to_uuid(rid), "version*", &cd); | |
| 570 | + blob_appendf(&descr, "%s-%d-%10.10s\n", cd.zRelTagname, | |
| 571 | + cd.nCommitsSince, cd.zCommitHash); | |
| 572 | + tar_add_file(zName, &descr, 0, mTime); | |
| 573 | + blob_reset(&descr); | |
| 574 | + } | |
| 555 | 575 | } |
| 556 | 576 | } |
| 557 | 577 | manifest_file_rewind(pManifest); |
| 558 | 578 | while( (pFile = manifest_file_next(pManifest,0))!=0 ){ |
| 559 | 579 | int fid; |
| 560 | 580 |
| --- src/tar.c | |
| +++ src/tar.c | |
| @@ -516,12 +516,16 @@ | |
| 516 | if( (pInclude==0 || glob_match(pInclude, "manifest.tags")) |
| 517 | && !glob_match(pExclude, "manifest.tags") |
| 518 | && (flg & MFESTFLG_TAGS) ){ |
| 519 | eflg |= MFESTFLG_TAGS; |
| 520 | } |
| 521 | |
| 522 | if( eflg & (MFESTFLG_RAW|MFESTFLG_UUID) ){ |
| 523 | if( eflg & MFESTFLG_RAW ){ |
| 524 | blob_append(&filename, "manifest", -1); |
| 525 | zName = blob_str(&filename); |
| 526 | if( listFlag ) fossil_print("%s\n", zName); |
| 527 | if( pTar ){ |
| @@ -550,10 +554,26 @@ | |
| 550 | blob_zero(&tagslist); |
| 551 | get_checkin_taglist(rid, &tagslist); |
| 552 | tar_add_file(zName, &tagslist, 0, mTime); |
| 553 | blob_reset(&tagslist); |
| 554 | } |
| 555 | } |
| 556 | } |
| 557 | manifest_file_rewind(pManifest); |
| 558 | while( (pFile = manifest_file_next(pManifest,0))!=0 ){ |
| 559 | int fid; |
| 560 |
| --- src/tar.c | |
| +++ src/tar.c | |
| @@ -516,12 +516,16 @@ | |
| 516 | if( (pInclude==0 || glob_match(pInclude, "manifest.tags")) |
| 517 | && !glob_match(pExclude, "manifest.tags") |
| 518 | && (flg & MFESTFLG_TAGS) ){ |
| 519 | eflg |= MFESTFLG_TAGS; |
| 520 | } |
| 521 | if( (pInclude==0 || glob_match(pInclude, "manifest.descr")) |
| 522 | && !glob_match(pExclude, "manifest.descr") |
| 523 | && (flg & MFESTFLG_DESCR) ){ |
| 524 | eflg |= MFESTFLG_DESCR; |
| 525 | } |
| 526 | if( eflg & (MFESTFLG_RAW|MFESTFLG_UUID|MFESTFLG_DESCR) ){ |
| 527 | if( eflg & MFESTFLG_RAW ){ |
| 528 | blob_append(&filename, "manifest", -1); |
| 529 | zName = blob_str(&filename); |
| 530 | if( listFlag ) fossil_print("%s\n", zName); |
| 531 | if( pTar ){ |
| @@ -550,10 +554,26 @@ | |
| 554 | blob_zero(&tagslist); |
| 555 | get_checkin_taglist(rid, &tagslist); |
| 556 | tar_add_file(zName, &tagslist, 0, mTime); |
| 557 | blob_reset(&tagslist); |
| 558 | } |
| 559 | } |
| 560 | if( eflg & MFESTFLG_DESCR ){ |
| 561 | blob_resize(&filename, nPrefix); |
| 562 | blob_append(&filename, "manifest.descr", -1); |
| 563 | zName = blob_str(&filename); |
| 564 | if( listFlag ) fossil_print("%s\n", zName); |
| 565 | if( pTar ){ |
| 566 | CommitDescr cd; |
| 567 | Blob descr; |
| 568 | blob_zero(&descr); |
| 569 | describe_commit(rid_to_uuid(rid), "version*", &cd); |
| 570 | blob_appendf(&descr, "%s-%d-%10.10s\n", cd.zRelTagname, |
| 571 | cd.nCommitsSince, cd.zCommitHash); |
| 572 | tar_add_file(zName, &descr, 0, mTime); |
| 573 | blob_reset(&descr); |
| 574 | } |
| 575 | } |
| 576 | } |
| 577 | manifest_file_rewind(pManifest); |
| 578 | while( (pFile = manifest_file_next(pManifest,0))!=0 ){ |
| 579 | int fid; |
| 580 |
+1
-1
| --- src/update.c | ||
| +++ src/update.c | ||
| @@ -626,12 +626,12 @@ | ||
| 626 | 626 | fossil_free(zPwd); |
| 627 | 627 | if( g.argc<=3 ){ |
| 628 | 628 | /* All files updated. Shift the current checkout to the target. */ |
| 629 | 629 | db_multi_exec("DELETE FROM vfile WHERE vid!=%d", tid); |
| 630 | 630 | checkout_set_all_exe(tid); |
| 631 | - manifest_to_disk(tid); | |
| 632 | 631 | db_set_checkout(tid); |
| 632 | + manifest_to_disk(tid); | |
| 633 | 633 | }else{ |
| 634 | 634 | /* A subset of files have been checked out. Keep the current |
| 635 | 635 | ** checkout unchanged. */ |
| 636 | 636 | db_multi_exec("DELETE FROM vfile WHERE vid!=%d", vid); |
| 637 | 637 | } |
| 638 | 638 |
| --- src/update.c | |
| +++ src/update.c | |
| @@ -626,12 +626,12 @@ | |
| 626 | fossil_free(zPwd); |
| 627 | if( g.argc<=3 ){ |
| 628 | /* All files updated. Shift the current checkout to the target. */ |
| 629 | db_multi_exec("DELETE FROM vfile WHERE vid!=%d", tid); |
| 630 | checkout_set_all_exe(tid); |
| 631 | manifest_to_disk(tid); |
| 632 | db_set_checkout(tid); |
| 633 | }else{ |
| 634 | /* A subset of files have been checked out. Keep the current |
| 635 | ** checkout unchanged. */ |
| 636 | db_multi_exec("DELETE FROM vfile WHERE vid!=%d", vid); |
| 637 | } |
| 638 |
| --- src/update.c | |
| +++ src/update.c | |
| @@ -626,12 +626,12 @@ | |
| 626 | fossil_free(zPwd); |
| 627 | if( g.argc<=3 ){ |
| 628 | /* All files updated. Shift the current checkout to the target. */ |
| 629 | db_multi_exec("DELETE FROM vfile WHERE vid!=%d", tid); |
| 630 | checkout_set_all_exe(tid); |
| 631 | db_set_checkout(tid); |
| 632 | manifest_to_disk(tid); |
| 633 | }else{ |
| 634 | /* A subset of files have been checked out. Keep the current |
| 635 | ** checkout unchanged. */ |
| 636 | db_multi_exec("DELETE FROM vfile WHERE vid!=%d", vid); |
| 637 | } |
| 638 |
+22
-1
| --- src/zip.c | ||
| +++ src/zip.c | ||
| @@ -670,11 +670,15 @@ | ||
| 670 | 670 | if( (pInclude==0 || glob_match(pInclude, "manifest.tags")) |
| 671 | 671 | && !glob_match(pExclude, "manifest.tags") |
| 672 | 672 | && (flg & MFESTFLG_TAGS) ){ |
| 673 | 673 | eflg |= MFESTFLG_TAGS; |
| 674 | 674 | } |
| 675 | - | |
| 675 | + if( (pInclude==0 || glob_match(pInclude, "manifest.descr")) | |
| 676 | + && !glob_match(pExclude, "manifest.descr") | |
| 677 | + && (flg & MFESTFLG_DESCR) ){ | |
| 678 | + eflg |= MFESTFLG_DESCR; | |
| 679 | + } | |
| 676 | 680 | if( eflg & MFESTFLG_RAW ){ |
| 677 | 681 | blob_append(&filename, "manifest", -1); |
| 678 | 682 | zName = blob_str(&filename); |
| 679 | 683 | if( listFlag ) fossil_print("%s\n", zName); |
| 680 | 684 | if( pZip ){ |
| @@ -704,10 +708,27 @@ | ||
| 704 | 708 | get_checkin_taglist(rid, &tagslist); |
| 705 | 709 | zip_add_folders(&sArchive, zName); |
| 706 | 710 | zip_add_file(&sArchive, zName, &tagslist, 0); |
| 707 | 711 | blob_reset(&tagslist); |
| 708 | 712 | } |
| 713 | + } | |
| 714 | + if( eflg & MFESTFLG_DESCR ){ | |
| 715 | + blob_resize(&filename, nPrefix); | |
| 716 | + blob_append(&filename, "manifest.descr", -1); | |
| 717 | + zName = blob_str(&filename); | |
| 718 | + if( listFlag ) fossil_print("%s\n", zName); | |
| 719 | + if( pZip ){ | |
| 720 | + CommitDescr cd; | |
| 721 | + Blob descr; | |
| 722 | + blob_zero(&descr); | |
| 723 | + describe_commit(rid_to_uuid(rid), "version*", &cd); | |
| 724 | + blob_appendf(&descr, "%s-%d-%10.10s\n", cd.zRelTagname, | |
| 725 | + cd.nCommitsSince, cd.zCommitHash); | |
| 726 | + zip_add_folders(&sArchive, zName); | |
| 727 | + zip_add_file(&sArchive, zName, &descr, 0); | |
| 728 | + blob_reset(&descr); | |
| 729 | + } | |
| 709 | 730 | } |
| 710 | 731 | } |
| 711 | 732 | manifest_file_rewind(pManifest); |
| 712 | 733 | if( pZip ) zip_add_file(&sArchive, "", 0, 0); |
| 713 | 734 | while( (pFile = manifest_file_next(pManifest,0))!=0 ){ |
| 714 | 735 |
| --- src/zip.c | |
| +++ src/zip.c | |
| @@ -670,11 +670,15 @@ | |
| 670 | if( (pInclude==0 || glob_match(pInclude, "manifest.tags")) |
| 671 | && !glob_match(pExclude, "manifest.tags") |
| 672 | && (flg & MFESTFLG_TAGS) ){ |
| 673 | eflg |= MFESTFLG_TAGS; |
| 674 | } |
| 675 | |
| 676 | if( eflg & MFESTFLG_RAW ){ |
| 677 | blob_append(&filename, "manifest", -1); |
| 678 | zName = blob_str(&filename); |
| 679 | if( listFlag ) fossil_print("%s\n", zName); |
| 680 | if( pZip ){ |
| @@ -704,10 +708,27 @@ | |
| 704 | get_checkin_taglist(rid, &tagslist); |
| 705 | zip_add_folders(&sArchive, zName); |
| 706 | zip_add_file(&sArchive, zName, &tagslist, 0); |
| 707 | blob_reset(&tagslist); |
| 708 | } |
| 709 | } |
| 710 | } |
| 711 | manifest_file_rewind(pManifest); |
| 712 | if( pZip ) zip_add_file(&sArchive, "", 0, 0); |
| 713 | while( (pFile = manifest_file_next(pManifest,0))!=0 ){ |
| 714 |
| --- src/zip.c | |
| +++ src/zip.c | |
| @@ -670,11 +670,15 @@ | |
| 670 | if( (pInclude==0 || glob_match(pInclude, "manifest.tags")) |
| 671 | && !glob_match(pExclude, "manifest.tags") |
| 672 | && (flg & MFESTFLG_TAGS) ){ |
| 673 | eflg |= MFESTFLG_TAGS; |
| 674 | } |
| 675 | if( (pInclude==0 || glob_match(pInclude, "manifest.descr")) |
| 676 | && !glob_match(pExclude, "manifest.descr") |
| 677 | && (flg & MFESTFLG_DESCR) ){ |
| 678 | eflg |= MFESTFLG_DESCR; |
| 679 | } |
| 680 | if( eflg & MFESTFLG_RAW ){ |
| 681 | blob_append(&filename, "manifest", -1); |
| 682 | zName = blob_str(&filename); |
| 683 | if( listFlag ) fossil_print("%s\n", zName); |
| 684 | if( pZip ){ |
| @@ -704,10 +708,27 @@ | |
| 708 | get_checkin_taglist(rid, &tagslist); |
| 709 | zip_add_folders(&sArchive, zName); |
| 710 | zip_add_file(&sArchive, zName, &tagslist, 0); |
| 711 | blob_reset(&tagslist); |
| 712 | } |
| 713 | } |
| 714 | if( eflg & MFESTFLG_DESCR ){ |
| 715 | blob_resize(&filename, nPrefix); |
| 716 | blob_append(&filename, "manifest.descr", -1); |
| 717 | zName = blob_str(&filename); |
| 718 | if( listFlag ) fossil_print("%s\n", zName); |
| 719 | if( pZip ){ |
| 720 | CommitDescr cd; |
| 721 | Blob descr; |
| 722 | blob_zero(&descr); |
| 723 | describe_commit(rid_to_uuid(rid), "version*", &cd); |
| 724 | blob_appendf(&descr, "%s-%d-%10.10s\n", cd.zRelTagname, |
| 725 | cd.nCommitsSince, cd.zCommitHash); |
| 726 | zip_add_folders(&sArchive, zName); |
| 727 | zip_add_file(&sArchive, zName, &descr, 0); |
| 728 | blob_reset(&descr); |
| 729 | } |
| 730 | } |
| 731 | } |
| 732 | manifest_file_rewind(pManifest); |
| 733 | if( pZip ) zip_add_file(&sArchive, "", 0, 0); |
| 734 | while( (pFile = manifest_file_next(pManifest,0))!=0 ){ |
| 735 |
+8
-7
| --- tools/makemake.tcl | ||
| +++ tools/makemake.tcl | ||
| @@ -401,14 +401,15 @@ | ||
| 401 | 401 | # the run to just those test cases. |
| 402 | 402 | # |
| 403 | 403 | test: $(OBJDIR) $(APPNAME) |
| 404 | 404 | $(TCLSH) $(SRCDIR)/../test/tester.tcl $(APPNAME) $(TESTFLAGS) |
| 405 | 405 | |
| 406 | -$(OBJDIR)/VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(SRCDIR)/../VERSION $(OBJDIR)/mkversion $(OBJDIR)/phony.h | |
| 406 | +$(OBJDIR)/VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(SRCDIR)/../VERSION $(SRCDIR)/../manifest.descr $(OBJDIR)/mkversion $(OBJDIR)/phony.h | |
| 407 | 407 | $(OBJDIR)/mkversion $(SRCDIR)/../manifest.uuid <<<NEXT_LINE>>> |
| 408 | 408 | $(SRCDIR)/../manifest <<<NEXT_LINE>>> |
| 409 | - $(SRCDIR)/../VERSION >$(OBJDIR)/VERSION.h | |
| 409 | + $(SRCDIR)/../VERSION <<<NEXT_LINE>>> | |
| 410 | + $(SRCDIR)/../manifest.descr >$(OBJDIR)/VERSION.h | |
| 410 | 411 | |
| 411 | 412 | $(OBJDIR)/phony.h: |
| 412 | 413 | # Force rebuild of VERSION.h every time we run "make" |
| 413 | 414 | |
| 414 | 415 | # Setup the options used to compile the included SQLite library. |
| @@ -1087,12 +1088,12 @@ | ||
| 1087 | 1088 | # build is done from, i.e. the checkout belongs to. Do not sync/push |
| 1088 | 1089 | # the repository after running the tests. |
| 1089 | 1090 | test: $(OBJDIR) $(APPNAME) |
| 1090 | 1091 | $(TCLSH) $(SRCDIR)/../test/tester.tcl $(APPNAME) |
| 1091 | 1092 | |
| 1092 | -$(OBJDIR)/VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(MKVERSION) $(OBJDIR)/phony.h | |
| 1093 | - $(MKVERSION) $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(SRCDIR)/../VERSION >$@ | |
| 1093 | +$(OBJDIR)/VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(MKVERSION) $(SRCDIR)/../manifest.descr $(OBJDIR)/phony.h | |
| 1094 | + $(MKVERSION) $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(SRCDIR)/../VERSION $(SRCDIR)/../manifest.descr >$@ | |
| 1094 | 1095 | |
| 1095 | 1096 | $(OBJDIR)/phony.h: |
| 1096 | 1097 | # Force rebuild of VERSION.h every time "make" is run |
| 1097 | 1098 | |
| 1098 | 1099 | # The USE_SYSTEM_SQLITE variable may be undefined, set to 0 or 1. |
| @@ -1392,11 +1393,11 @@ | ||
| 1392 | 1393 | $(TCC) -o$@ -c $** |
| 1393 | 1394 | |
| 1394 | 1395 | $(OBJDIR)\cson_amalgamation.h : $(SRCDIR_extsrc)\cson_amalgamation.h |
| 1395 | 1396 | cp $@ $@ |
| 1396 | 1397 | |
| 1397 | -VERSION.h : mkversion$E $B\manifest.uuid $B\manifest $B\VERSION | |
| 1398 | +VERSION.h : mkversion$E $B\manifest.uuid $B\manifest $B\VERSION $B\manifest.descr | |
| 1398 | 1399 | +$** > $@ |
| 1399 | 1400 | |
| 1400 | 1401 | page_index.h: mkindex$E $(SRC) |
| 1401 | 1402 | +$** > $@ |
| 1402 | 1403 | |
| @@ -1950,12 +1951,12 @@ | ||
| 1950 | 1951 | $(TCC) /Fo$@ /Fd$(@D)\ -c $** |
| 1951 | 1952 | |
| 1952 | 1953 | "$(OX)\pikchr$O" : "$(SRCDIR_extsrc)\pikchr.c" |
| 1953 | 1954 | $(TCC) /Fo$@ /Fd$(@D)\ -c $** |
| 1954 | 1955 | |
| 1955 | -"$(OX)\VERSION.h" : "$(OBJDIR)\mkversion$E" "$(B)\manifest.uuid" "$(B)\manifest" "$(B)\VERSION" "$(B)\phony.h" | |
| 1956 | - "$(OBJDIR)\mkversion$E" "$(B)\manifest.uuid" "$(B)\manifest" "$(B)\VERSION" > $@ | |
| 1956 | +"$(OX)\VERSION.h" : "$(OBJDIR)\mkversion$E" "$(B)\manifest.uuid" "$(B)\manifest" "$(B)\VERSION" "$(B)\manifest.descr" "$(B)\phony.h" | |
| 1957 | + "$(OBJDIR)\mkversion$E" "$(B)\manifest.uuid" "$(B)\manifest" "$(B)\VERSION" "$(B)\manifest.descr" > $@ | |
| 1957 | 1958 | |
| 1958 | 1959 | "$(B)\phony.h" : |
| 1959 | 1960 | rem Force rebuild of VERSION.h whenever nmake is run |
| 1960 | 1961 | |
| 1961 | 1962 | "$(OX)\cson_amalgamation$O" : "$(SRCDIR_extsrc)\cson_amalgamation.c" |
| 1962 | 1963 |
| --- tools/makemake.tcl | |
| +++ tools/makemake.tcl | |
| @@ -401,14 +401,15 @@ | |
| 401 | # the run to just those test cases. |
| 402 | # |
| 403 | test: $(OBJDIR) $(APPNAME) |
| 404 | $(TCLSH) $(SRCDIR)/../test/tester.tcl $(APPNAME) $(TESTFLAGS) |
| 405 | |
| 406 | $(OBJDIR)/VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(SRCDIR)/../VERSION $(OBJDIR)/mkversion $(OBJDIR)/phony.h |
| 407 | $(OBJDIR)/mkversion $(SRCDIR)/../manifest.uuid <<<NEXT_LINE>>> |
| 408 | $(SRCDIR)/../manifest <<<NEXT_LINE>>> |
| 409 | $(SRCDIR)/../VERSION >$(OBJDIR)/VERSION.h |
| 410 | |
| 411 | $(OBJDIR)/phony.h: |
| 412 | # Force rebuild of VERSION.h every time we run "make" |
| 413 | |
| 414 | # Setup the options used to compile the included SQLite library. |
| @@ -1087,12 +1088,12 @@ | |
| 1087 | # build is done from, i.e. the checkout belongs to. Do not sync/push |
| 1088 | # the repository after running the tests. |
| 1089 | test: $(OBJDIR) $(APPNAME) |
| 1090 | $(TCLSH) $(SRCDIR)/../test/tester.tcl $(APPNAME) |
| 1091 | |
| 1092 | $(OBJDIR)/VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(MKVERSION) $(OBJDIR)/phony.h |
| 1093 | $(MKVERSION) $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(SRCDIR)/../VERSION >$@ |
| 1094 | |
| 1095 | $(OBJDIR)/phony.h: |
| 1096 | # Force rebuild of VERSION.h every time "make" is run |
| 1097 | |
| 1098 | # The USE_SYSTEM_SQLITE variable may be undefined, set to 0 or 1. |
| @@ -1392,11 +1393,11 @@ | |
| 1392 | $(TCC) -o$@ -c $** |
| 1393 | |
| 1394 | $(OBJDIR)\cson_amalgamation.h : $(SRCDIR_extsrc)\cson_amalgamation.h |
| 1395 | cp $@ $@ |
| 1396 | |
| 1397 | VERSION.h : mkversion$E $B\manifest.uuid $B\manifest $B\VERSION |
| 1398 | +$** > $@ |
| 1399 | |
| 1400 | page_index.h: mkindex$E $(SRC) |
| 1401 | +$** > $@ |
| 1402 | |
| @@ -1950,12 +1951,12 @@ | |
| 1950 | $(TCC) /Fo$@ /Fd$(@D)\ -c $** |
| 1951 | |
| 1952 | "$(OX)\pikchr$O" : "$(SRCDIR_extsrc)\pikchr.c" |
| 1953 | $(TCC) /Fo$@ /Fd$(@D)\ -c $** |
| 1954 | |
| 1955 | "$(OX)\VERSION.h" : "$(OBJDIR)\mkversion$E" "$(B)\manifest.uuid" "$(B)\manifest" "$(B)\VERSION" "$(B)\phony.h" |
| 1956 | "$(OBJDIR)\mkversion$E" "$(B)\manifest.uuid" "$(B)\manifest" "$(B)\VERSION" > $@ |
| 1957 | |
| 1958 | "$(B)\phony.h" : |
| 1959 | rem Force rebuild of VERSION.h whenever nmake is run |
| 1960 | |
| 1961 | "$(OX)\cson_amalgamation$O" : "$(SRCDIR_extsrc)\cson_amalgamation.c" |
| 1962 |
| --- tools/makemake.tcl | |
| +++ tools/makemake.tcl | |
| @@ -401,14 +401,15 @@ | |
| 401 | # the run to just those test cases. |
| 402 | # |
| 403 | test: $(OBJDIR) $(APPNAME) |
| 404 | $(TCLSH) $(SRCDIR)/../test/tester.tcl $(APPNAME) $(TESTFLAGS) |
| 405 | |
| 406 | $(OBJDIR)/VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(SRCDIR)/../VERSION $(SRCDIR)/../manifest.descr $(OBJDIR)/mkversion $(OBJDIR)/phony.h |
| 407 | $(OBJDIR)/mkversion $(SRCDIR)/../manifest.uuid <<<NEXT_LINE>>> |
| 408 | $(SRCDIR)/../manifest <<<NEXT_LINE>>> |
| 409 | $(SRCDIR)/../VERSION <<<NEXT_LINE>>> |
| 410 | $(SRCDIR)/../manifest.descr >$(OBJDIR)/VERSION.h |
| 411 | |
| 412 | $(OBJDIR)/phony.h: |
| 413 | # Force rebuild of VERSION.h every time we run "make" |
| 414 | |
| 415 | # Setup the options used to compile the included SQLite library. |
| @@ -1087,12 +1088,12 @@ | |
| 1088 | # build is done from, i.e. the checkout belongs to. Do not sync/push |
| 1089 | # the repository after running the tests. |
| 1090 | test: $(OBJDIR) $(APPNAME) |
| 1091 | $(TCLSH) $(SRCDIR)/../test/tester.tcl $(APPNAME) |
| 1092 | |
| 1093 | $(OBJDIR)/VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(MKVERSION) $(SRCDIR)/../manifest.descr $(OBJDIR)/phony.h |
| 1094 | $(MKVERSION) $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(SRCDIR)/../VERSION $(SRCDIR)/../manifest.descr >$@ |
| 1095 | |
| 1096 | $(OBJDIR)/phony.h: |
| 1097 | # Force rebuild of VERSION.h every time "make" is run |
| 1098 | |
| 1099 | # The USE_SYSTEM_SQLITE variable may be undefined, set to 0 or 1. |
| @@ -1392,11 +1393,11 @@ | |
| 1393 | $(TCC) -o$@ -c $** |
| 1394 | |
| 1395 | $(OBJDIR)\cson_amalgamation.h : $(SRCDIR_extsrc)\cson_amalgamation.h |
| 1396 | cp $@ $@ |
| 1397 | |
| 1398 | VERSION.h : mkversion$E $B\manifest.uuid $B\manifest $B\VERSION $B\manifest.descr |
| 1399 | +$** > $@ |
| 1400 | |
| 1401 | page_index.h: mkindex$E $(SRC) |
| 1402 | +$** > $@ |
| 1403 | |
| @@ -1950,12 +1951,12 @@ | |
| 1951 | $(TCC) /Fo$@ /Fd$(@D)\ -c $** |
| 1952 | |
| 1953 | "$(OX)\pikchr$O" : "$(SRCDIR_extsrc)\pikchr.c" |
| 1954 | $(TCC) /Fo$@ /Fd$(@D)\ -c $** |
| 1955 | |
| 1956 | "$(OX)\VERSION.h" : "$(OBJDIR)\mkversion$E" "$(B)\manifest.uuid" "$(B)\manifest" "$(B)\VERSION" "$(B)\manifest.descr" "$(B)\phony.h" |
| 1957 | "$(OBJDIR)\mkversion$E" "$(B)\manifest.uuid" "$(B)\manifest" "$(B)\VERSION" "$(B)\manifest.descr" > $@ |
| 1958 | |
| 1959 | "$(B)\phony.h" : |
| 1960 | rem Force rebuild of VERSION.h whenever nmake is run |
| 1961 | |
| 1962 | "$(OX)\cson_amalgamation$O" : "$(SRCDIR_extsrc)\cson_amalgamation.c" |
| 1963 |
+30
-6
| --- tools/mkversion.c | ||
| +++ tools/mkversion.c | ||
| @@ -1,21 +1,26 @@ | ||
| 1 | 1 | /* |
| 2 | 2 | ** This C program generates the "VERSION.h" header file from information |
| 3 | -** extracted out of the "manifest", "manifest.uuid", and "VERSION" files. | |
| 4 | -** Call this program with three arguments: | |
| 3 | +** extracted out of the "manifest", "manifest.uuid", "VERSION", and | |
| 4 | +** optionally "manifest.descr" files. | |
| 5 | +** Call this program with three or four arguments: | |
| 5 | 6 | ** |
| 6 | -** ./a.out manifest.uuid manifest VERSION | |
| 7 | +** ./a.out manifest.uuid manifest VERSION ?manifest.descr? | |
| 7 | 8 | ** |
| 8 | -** Note that the manifest.uuid and manifest files are generated by Fossil. | |
| 9 | +** Note that the manifest.uuid, manifest, and manifest.descr files are | |
| 10 | +** generated by Fossil. | |
| 9 | 11 | ** |
| 10 | 12 | ** The output becomes the "VERSION.h" file. The output is a C-language |
| 11 | 13 | ** header that contains #defines for various properties of the build: |
| 12 | 14 | ** |
| 13 | 15 | ** MANIFEST_UUID These values are text strings that |
| 14 | 16 | ** MANIFEST_VERSION identify the Fossil check-in to which |
| 15 | 17 | ** the source tree belongs. They do not |
| 16 | 18 | ** take into account any uncommitted edits. |
| 19 | +** MANIFEST_DESCRIPTION This value gives a description relative to | |
| 20 | +** the youngest tagged ancestor and takes into | |
| 21 | +** account possilbe uncommitted edits. | |
| 17 | 22 | ** |
| 18 | 23 | ** FOSSIL_BUILD_HASH A hexadecimal string that is a strong hash |
| 19 | 24 | ** of the MANIFEST_UUID together with the |
| 20 | 25 | ** current time of the build. We normally want |
| 21 | 26 | ** this to be different on each build, as the |
| @@ -26,10 +31,11 @@ | ||
| 26 | 31 | ** |
| 27 | 32 | ** MANIFEST_DATE The date/time of the source-code check-in |
| 28 | 33 | ** MANIFEST_YEAR in various formats. |
| 29 | 34 | ** MANIFEST_NUMERIC_DATE |
| 30 | 35 | ** MANIFEST_NUMERIC_TIME |
| 36 | +** DESCRIPTION_DATE | |
| 31 | 37 | ** |
| 32 | 38 | ** RELEASE_VERSION The version number (from the VERSION source |
| 33 | 39 | ** RELEASE_VERSION_NUMBER file) in various format. |
| 34 | 40 | ** RELEASE_RESOURCE_VERSION |
| 35 | 41 | ** |
| @@ -93,12 +99,12 @@ | ||
| 93 | 99 | int j = 0, x = 0, d = 0; |
| 94 | 100 | size_t n; |
| 95 | 101 | int vn[3]; |
| 96 | 102 | char b[1000]; |
| 97 | 103 | char vx[1000]; |
| 98 | - if( argc!=4 ){ | |
| 99 | - fprintf(stderr, "Usage: %s manifest.uuid manifest VERSION\n", argv[0]); | |
| 104 | + if( argc!=4 && argc!=5 ){ | |
| 105 | + fprintf(stderr, "Usage: %s manifest.uuid manifest VERSION [manifest.descr]\n", argv[0]); | |
| 100 | 106 | exit(1); |
| 101 | 107 | } |
| 102 | 108 | memset(b,0,sizeof(b)); |
| 103 | 109 | memset(vx,0,sizeof(vx)); |
| 104 | 110 | u = open_for_reading(argv[1]); |
| @@ -190,10 +196,28 @@ | ||
| 190 | 196 | } |
| 191 | 197 | } |
| 192 | 198 | printf("#define RELEASE_RESOURCE_VERSION %s", vx); |
| 193 | 199 | while( d<3 ){ printf(",0"); d++; } |
| 194 | 200 | printf("\n"); |
| 201 | + FILE *dd = fopen(argv[4], "r"); | |
| 202 | + if( dd!=0 ){ | |
| 203 | + if( fgets(b, sizeof(b)-1,dd) ){ | |
| 204 | + for(z=b; z[0] && z[0]!='\r' && z[0]!='\n'; z++){} | |
| 205 | + *z = 0; | |
| 206 | + printf("#define MANIFEST_DESCRIPTION \"[%s]\"\n",b); | |
| 207 | + if( strstr(b, "dirty") ){ | |
| 208 | + /* If dirty, use current time. Another option would be | |
| 209 | + to use the latest mtime among the modified files. */ | |
| 210 | + time_t now = time(0); | |
| 211 | + struct tm* tm_now = gmtime(&now); | |
| 212 | + char zNow[20]; | |
| 213 | + strftime(zNow, sizeof(zNow), "%Y-%m-%d %H:%M:%S", tm_now); | |
| 214 | + printf("#define DESCRIPTION_DATE \"%s\"\n", zNow); | |
| 215 | + } | |
| 216 | + } | |
| 217 | + fclose(dd); | |
| 218 | + } | |
| 195 | 219 | #if defined(__DMC__) /* e.g. 0x857 */ |
| 196 | 220 | d = (__DMC__ & 0xF00) >> 8; /* major */ |
| 197 | 221 | x = (__DMC__ & 0x0F0) >> 4; /* minor */ |
| 198 | 222 | i = (__DMC__ & 0x00F); /* revision */ |
| 199 | 223 | printf("#define COMPILER_VERSION \"%d.%d.%d\"\n", d, x, i); |
| 200 | 224 |
| --- tools/mkversion.c | |
| +++ tools/mkversion.c | |
| @@ -1,21 +1,26 @@ | |
| 1 | /* |
| 2 | ** This C program generates the "VERSION.h" header file from information |
| 3 | ** extracted out of the "manifest", "manifest.uuid", and "VERSION" files. |
| 4 | ** Call this program with three arguments: |
| 5 | ** |
| 6 | ** ./a.out manifest.uuid manifest VERSION |
| 7 | ** |
| 8 | ** Note that the manifest.uuid and manifest files are generated by Fossil. |
| 9 | ** |
| 10 | ** The output becomes the "VERSION.h" file. The output is a C-language |
| 11 | ** header that contains #defines for various properties of the build: |
| 12 | ** |
| 13 | ** MANIFEST_UUID These values are text strings that |
| 14 | ** MANIFEST_VERSION identify the Fossil check-in to which |
| 15 | ** the source tree belongs. They do not |
| 16 | ** take into account any uncommitted edits. |
| 17 | ** |
| 18 | ** FOSSIL_BUILD_HASH A hexadecimal string that is a strong hash |
| 19 | ** of the MANIFEST_UUID together with the |
| 20 | ** current time of the build. We normally want |
| 21 | ** this to be different on each build, as the |
| @@ -26,10 +31,11 @@ | |
| 26 | ** |
| 27 | ** MANIFEST_DATE The date/time of the source-code check-in |
| 28 | ** MANIFEST_YEAR in various formats. |
| 29 | ** MANIFEST_NUMERIC_DATE |
| 30 | ** MANIFEST_NUMERIC_TIME |
| 31 | ** |
| 32 | ** RELEASE_VERSION The version number (from the VERSION source |
| 33 | ** RELEASE_VERSION_NUMBER file) in various format. |
| 34 | ** RELEASE_RESOURCE_VERSION |
| 35 | ** |
| @@ -93,12 +99,12 @@ | |
| 93 | int j = 0, x = 0, d = 0; |
| 94 | size_t n; |
| 95 | int vn[3]; |
| 96 | char b[1000]; |
| 97 | char vx[1000]; |
| 98 | if( argc!=4 ){ |
| 99 | fprintf(stderr, "Usage: %s manifest.uuid manifest VERSION\n", argv[0]); |
| 100 | exit(1); |
| 101 | } |
| 102 | memset(b,0,sizeof(b)); |
| 103 | memset(vx,0,sizeof(vx)); |
| 104 | u = open_for_reading(argv[1]); |
| @@ -190,10 +196,28 @@ | |
| 190 | } |
| 191 | } |
| 192 | printf("#define RELEASE_RESOURCE_VERSION %s", vx); |
| 193 | while( d<3 ){ printf(",0"); d++; } |
| 194 | printf("\n"); |
| 195 | #if defined(__DMC__) /* e.g. 0x857 */ |
| 196 | d = (__DMC__ & 0xF00) >> 8; /* major */ |
| 197 | x = (__DMC__ & 0x0F0) >> 4; /* minor */ |
| 198 | i = (__DMC__ & 0x00F); /* revision */ |
| 199 | printf("#define COMPILER_VERSION \"%d.%d.%d\"\n", d, x, i); |
| 200 |
| --- tools/mkversion.c | |
| +++ tools/mkversion.c | |
| @@ -1,21 +1,26 @@ | |
| 1 | /* |
| 2 | ** This C program generates the "VERSION.h" header file from information |
| 3 | ** extracted out of the "manifest", "manifest.uuid", "VERSION", and |
| 4 | ** optionally "manifest.descr" files. |
| 5 | ** Call this program with three or four arguments: |
| 6 | ** |
| 7 | ** ./a.out manifest.uuid manifest VERSION ?manifest.descr? |
| 8 | ** |
| 9 | ** Note that the manifest.uuid, manifest, and manifest.descr files are |
| 10 | ** generated by Fossil. |
| 11 | ** |
| 12 | ** The output becomes the "VERSION.h" file. The output is a C-language |
| 13 | ** header that contains #defines for various properties of the build: |
| 14 | ** |
| 15 | ** MANIFEST_UUID These values are text strings that |
| 16 | ** MANIFEST_VERSION identify the Fossil check-in to which |
| 17 | ** the source tree belongs. They do not |
| 18 | ** take into account any uncommitted edits. |
| 19 | ** MANIFEST_DESCRIPTION This value gives a description relative to |
| 20 | ** the youngest tagged ancestor and takes into |
| 21 | ** account possilbe uncommitted edits. |
| 22 | ** |
| 23 | ** FOSSIL_BUILD_HASH A hexadecimal string that is a strong hash |
| 24 | ** of the MANIFEST_UUID together with the |
| 25 | ** current time of the build. We normally want |
| 26 | ** this to be different on each build, as the |
| @@ -26,10 +31,11 @@ | |
| 31 | ** |
| 32 | ** MANIFEST_DATE The date/time of the source-code check-in |
| 33 | ** MANIFEST_YEAR in various formats. |
| 34 | ** MANIFEST_NUMERIC_DATE |
| 35 | ** MANIFEST_NUMERIC_TIME |
| 36 | ** DESCRIPTION_DATE |
| 37 | ** |
| 38 | ** RELEASE_VERSION The version number (from the VERSION source |
| 39 | ** RELEASE_VERSION_NUMBER file) in various format. |
| 40 | ** RELEASE_RESOURCE_VERSION |
| 41 | ** |
| @@ -93,12 +99,12 @@ | |
| 99 | int j = 0, x = 0, d = 0; |
| 100 | size_t n; |
| 101 | int vn[3]; |
| 102 | char b[1000]; |
| 103 | char vx[1000]; |
| 104 | if( argc!=4 && argc!=5 ){ |
| 105 | fprintf(stderr, "Usage: %s manifest.uuid manifest VERSION [manifest.descr]\n", argv[0]); |
| 106 | exit(1); |
| 107 | } |
| 108 | memset(b,0,sizeof(b)); |
| 109 | memset(vx,0,sizeof(vx)); |
| 110 | u = open_for_reading(argv[1]); |
| @@ -190,10 +196,28 @@ | |
| 196 | } |
| 197 | } |
| 198 | printf("#define RELEASE_RESOURCE_VERSION %s", vx); |
| 199 | while( d<3 ){ printf(",0"); d++; } |
| 200 | printf("\n"); |
| 201 | FILE *dd = fopen(argv[4], "r"); |
| 202 | if( dd!=0 ){ |
| 203 | if( fgets(b, sizeof(b)-1,dd) ){ |
| 204 | for(z=b; z[0] && z[0]!='\r' && z[0]!='\n'; z++){} |
| 205 | *z = 0; |
| 206 | printf("#define MANIFEST_DESCRIPTION \"[%s]\"\n",b); |
| 207 | if( strstr(b, "dirty") ){ |
| 208 | /* If dirty, use current time. Another option would be |
| 209 | to use the latest mtime among the modified files. */ |
| 210 | time_t now = time(0); |
| 211 | struct tm* tm_now = gmtime(&now); |
| 212 | char zNow[20]; |
| 213 | strftime(zNow, sizeof(zNow), "%Y-%m-%d %H:%M:%S", tm_now); |
| 214 | printf("#define DESCRIPTION_DATE \"%s\"\n", zNow); |
| 215 | } |
| 216 | } |
| 217 | fclose(dd); |
| 218 | } |
| 219 | #if defined(__DMC__) /* e.g. 0x857 */ |
| 220 | d = (__DMC__ & 0xF00) >> 8; /* major */ |
| 221 | x = (__DMC__ & 0x0F0) >> 4; /* minor */ |
| 222 | i = (__DMC__ & 0x00F); /* revision */ |
| 223 | printf("#define COMPILER_VERSION \"%d.%d.%d\"\n", d, x, i); |
| 224 |
+1
-1
| --- win/Makefile.dmc | ||
| +++ win/Makefile.dmc | ||
| @@ -91,11 +91,11 @@ | ||
| 91 | 91 | $(TCC) -o$@ -c $** |
| 92 | 92 | |
| 93 | 93 | $(OBJDIR)\cson_amalgamation.h : $(SRCDIR_extsrc)\cson_amalgamation.h |
| 94 | 94 | cp $@ $@ |
| 95 | 95 | |
| 96 | -VERSION.h : mkversion$E $B\manifest.uuid $B\manifest $B\VERSION | |
| 96 | +VERSION.h : mkversion$E $B\manifest.uuid $B\manifest $B\VERSION $B\manifest.descr | |
| 97 | 97 | +$** > $@ |
| 98 | 98 | |
| 99 | 99 | page_index.h: mkindex$E $(SRC) |
| 100 | 100 | +$** > $@ |
| 101 | 101 | |
| 102 | 102 |
| --- win/Makefile.dmc | |
| +++ win/Makefile.dmc | |
| @@ -91,11 +91,11 @@ | |
| 91 | $(TCC) -o$@ -c $** |
| 92 | |
| 93 | $(OBJDIR)\cson_amalgamation.h : $(SRCDIR_extsrc)\cson_amalgamation.h |
| 94 | cp $@ $@ |
| 95 | |
| 96 | VERSION.h : mkversion$E $B\manifest.uuid $B\manifest $B\VERSION |
| 97 | +$** > $@ |
| 98 | |
| 99 | page_index.h: mkindex$E $(SRC) |
| 100 | +$** > $@ |
| 101 | |
| 102 |
| --- win/Makefile.dmc | |
| +++ win/Makefile.dmc | |
| @@ -91,11 +91,11 @@ | |
| 91 | $(TCC) -o$@ -c $** |
| 92 | |
| 93 | $(OBJDIR)\cson_amalgamation.h : $(SRCDIR_extsrc)\cson_amalgamation.h |
| 94 | cp $@ $@ |
| 95 | |
| 96 | VERSION.h : mkversion$E $B\manifest.uuid $B\manifest $B\VERSION $B\manifest.descr |
| 97 | +$** > $@ |
| 98 | |
| 99 | page_index.h: mkindex$E $(SRC) |
| 100 | +$** > $@ |
| 101 | |
| 102 |
+2
-2
| --- win/Makefile.mingw | ||
| +++ win/Makefile.mingw | ||
| @@ -1049,12 +1049,12 @@ | ||
| 1049 | 1049 | # build is done from, i.e. the checkout belongs to. Do not sync/push |
| 1050 | 1050 | # the repository after running the tests. |
| 1051 | 1051 | test: $(OBJDIR) $(APPNAME) |
| 1052 | 1052 | $(TCLSH) $(SRCDIR)/../test/tester.tcl $(APPNAME) |
| 1053 | 1053 | |
| 1054 | -$(OBJDIR)/VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(MKVERSION) $(OBJDIR)/phony.h | |
| 1055 | - $(MKVERSION) $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(SRCDIR)/../VERSION >$@ | |
| 1054 | +$(OBJDIR)/VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(MKVERSION) $(SRCDIR)/../manifest.descr $(OBJDIR)/phony.h | |
| 1055 | + $(MKVERSION) $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(SRCDIR)/../VERSION $(SRCDIR)/../manifest.descr >$@ | |
| 1056 | 1056 | |
| 1057 | 1057 | $(OBJDIR)/phony.h: |
| 1058 | 1058 | # Force rebuild of VERSION.h every time "make" is run |
| 1059 | 1059 | |
| 1060 | 1060 | # The USE_SYSTEM_SQLITE variable may be undefined, set to 0 or 1. |
| 1061 | 1061 |
| --- win/Makefile.mingw | |
| +++ win/Makefile.mingw | |
| @@ -1049,12 +1049,12 @@ | |
| 1049 | # build is done from, i.e. the checkout belongs to. Do not sync/push |
| 1050 | # the repository after running the tests. |
| 1051 | test: $(OBJDIR) $(APPNAME) |
| 1052 | $(TCLSH) $(SRCDIR)/../test/tester.tcl $(APPNAME) |
| 1053 | |
| 1054 | $(OBJDIR)/VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(MKVERSION) $(OBJDIR)/phony.h |
| 1055 | $(MKVERSION) $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(SRCDIR)/../VERSION >$@ |
| 1056 | |
| 1057 | $(OBJDIR)/phony.h: |
| 1058 | # Force rebuild of VERSION.h every time "make" is run |
| 1059 | |
| 1060 | # The USE_SYSTEM_SQLITE variable may be undefined, set to 0 or 1. |
| 1061 |
| --- win/Makefile.mingw | |
| +++ win/Makefile.mingw | |
| @@ -1049,12 +1049,12 @@ | |
| 1049 | # build is done from, i.e. the checkout belongs to. Do not sync/push |
| 1050 | # the repository after running the tests. |
| 1051 | test: $(OBJDIR) $(APPNAME) |
| 1052 | $(TCLSH) $(SRCDIR)/../test/tester.tcl $(APPNAME) |
| 1053 | |
| 1054 | $(OBJDIR)/VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(MKVERSION) $(SRCDIR)/../manifest.descr $(OBJDIR)/phony.h |
| 1055 | $(MKVERSION) $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(SRCDIR)/../VERSION $(SRCDIR)/../manifest.descr >$@ |
| 1056 | |
| 1057 | $(OBJDIR)/phony.h: |
| 1058 | # Force rebuild of VERSION.h every time "make" is run |
| 1059 | |
| 1060 | # The USE_SYSTEM_SQLITE variable may be undefined, set to 0 or 1. |
| 1061 |
+2
-2
| --- win/Makefile.mingw.mistachkin | ||
| +++ win/Makefile.mingw.mistachkin | ||
| @@ -1049,12 +1049,12 @@ | ||
| 1049 | 1049 | # build is done from, i.e. the checkout belongs to. Do not sync/push |
| 1050 | 1050 | # the repository after running the tests. |
| 1051 | 1051 | test: $(OBJDIR) $(APPNAME) |
| 1052 | 1052 | $(TCLSH) $(SRCDIR)/../test/tester.tcl $(APPNAME) |
| 1053 | 1053 | |
| 1054 | -$(OBJDIR)/VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(MKVERSION) $(OBJDIR)/phony.h | |
| 1055 | - $(MKVERSION) $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(SRCDIR)/../VERSION >$@ | |
| 1054 | +$(OBJDIR)/VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(MKVERSION) $(SRCDIR)/../manifest.descr $(OBJDIR)/phony.h | |
| 1055 | + $(MKVERSION) $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(SRCDIR)/../VERSION $(SRCDIR)/../manifest.descr >$@ | |
| 1056 | 1056 | |
| 1057 | 1057 | $(OBJDIR)/phony.h: |
| 1058 | 1058 | # Force rebuild of VERSION.h every time "make" is run |
| 1059 | 1059 | |
| 1060 | 1060 | # The USE_SYSTEM_SQLITE variable may be undefined, set to 0 or 1. |
| 1061 | 1061 |
| --- win/Makefile.mingw.mistachkin | |
| +++ win/Makefile.mingw.mistachkin | |
| @@ -1049,12 +1049,12 @@ | |
| 1049 | # build is done from, i.e. the checkout belongs to. Do not sync/push |
| 1050 | # the repository after running the tests. |
| 1051 | test: $(OBJDIR) $(APPNAME) |
| 1052 | $(TCLSH) $(SRCDIR)/../test/tester.tcl $(APPNAME) |
| 1053 | |
| 1054 | $(OBJDIR)/VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(MKVERSION) $(OBJDIR)/phony.h |
| 1055 | $(MKVERSION) $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(SRCDIR)/../VERSION >$@ |
| 1056 | |
| 1057 | $(OBJDIR)/phony.h: |
| 1058 | # Force rebuild of VERSION.h every time "make" is run |
| 1059 | |
| 1060 | # The USE_SYSTEM_SQLITE variable may be undefined, set to 0 or 1. |
| 1061 |
| --- win/Makefile.mingw.mistachkin | |
| +++ win/Makefile.mingw.mistachkin | |
| @@ -1049,12 +1049,12 @@ | |
| 1049 | # build is done from, i.e. the checkout belongs to. Do not sync/push |
| 1050 | # the repository after running the tests. |
| 1051 | test: $(OBJDIR) $(APPNAME) |
| 1052 | $(TCLSH) $(SRCDIR)/../test/tester.tcl $(APPNAME) |
| 1053 | |
| 1054 | $(OBJDIR)/VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(MKVERSION) $(SRCDIR)/../manifest.descr $(OBJDIR)/phony.h |
| 1055 | $(MKVERSION) $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(SRCDIR)/../VERSION $(SRCDIR)/../manifest.descr >$@ |
| 1056 | |
| 1057 | $(OBJDIR)/phony.h: |
| 1058 | # Force rebuild of VERSION.h every time "make" is run |
| 1059 | |
| 1060 | # The USE_SYSTEM_SQLITE variable may be undefined, set to 0 or 1. |
| 1061 |
+2
-2
| --- win/Makefile.msc | ||
| +++ win/Makefile.msc | ||
| @@ -1062,12 +1062,12 @@ | ||
| 1062 | 1062 | $(TCC) /Fo$@ /Fd$(@D)\ -c $** |
| 1063 | 1063 | |
| 1064 | 1064 | "$(OX)\pikchr$O" : "$(SRCDIR_extsrc)\pikchr.c" |
| 1065 | 1065 | $(TCC) /Fo$@ /Fd$(@D)\ -c $** |
| 1066 | 1066 | |
| 1067 | -"$(OX)\VERSION.h" : "$(OBJDIR)\mkversion$E" "$(B)\manifest.uuid" "$(B)\manifest" "$(B)\VERSION" "$(B)\phony.h" | |
| 1068 | - "$(OBJDIR)\mkversion$E" "$(B)\manifest.uuid" "$(B)\manifest" "$(B)\VERSION" > $@ | |
| 1067 | +"$(OX)\VERSION.h" : "$(OBJDIR)\mkversion$E" "$(B)\manifest.uuid" "$(B)\manifest" "$(B)\VERSION" "$(B)\manifest.descr" "$(B)\phony.h" | |
| 1068 | + "$(OBJDIR)\mkversion$E" "$(B)\manifest.uuid" "$(B)\manifest" "$(B)\VERSION" "$(B)\manifest.descr" > $@ | |
| 1069 | 1069 | |
| 1070 | 1070 | "$(B)\phony.h" : |
| 1071 | 1071 | rem Force rebuild of VERSION.h whenever nmake is run |
| 1072 | 1072 | |
| 1073 | 1073 | "$(OX)\cson_amalgamation$O" : "$(SRCDIR_extsrc)\cson_amalgamation.c" |
| 1074 | 1074 |
| --- win/Makefile.msc | |
| +++ win/Makefile.msc | |
| @@ -1062,12 +1062,12 @@ | |
| 1062 | $(TCC) /Fo$@ /Fd$(@D)\ -c $** |
| 1063 | |
| 1064 | "$(OX)\pikchr$O" : "$(SRCDIR_extsrc)\pikchr.c" |
| 1065 | $(TCC) /Fo$@ /Fd$(@D)\ -c $** |
| 1066 | |
| 1067 | "$(OX)\VERSION.h" : "$(OBJDIR)\mkversion$E" "$(B)\manifest.uuid" "$(B)\manifest" "$(B)\VERSION" "$(B)\phony.h" |
| 1068 | "$(OBJDIR)\mkversion$E" "$(B)\manifest.uuid" "$(B)\manifest" "$(B)\VERSION" > $@ |
| 1069 | |
| 1070 | "$(B)\phony.h" : |
| 1071 | rem Force rebuild of VERSION.h whenever nmake is run |
| 1072 | |
| 1073 | "$(OX)\cson_amalgamation$O" : "$(SRCDIR_extsrc)\cson_amalgamation.c" |
| 1074 |
| --- win/Makefile.msc | |
| +++ win/Makefile.msc | |
| @@ -1062,12 +1062,12 @@ | |
| 1062 | $(TCC) /Fo$@ /Fd$(@D)\ -c $** |
| 1063 | |
| 1064 | "$(OX)\pikchr$O" : "$(SRCDIR_extsrc)\pikchr.c" |
| 1065 | $(TCC) /Fo$@ /Fd$(@D)\ -c $** |
| 1066 | |
| 1067 | "$(OX)\VERSION.h" : "$(OBJDIR)\mkversion$E" "$(B)\manifest.uuid" "$(B)\manifest" "$(B)\VERSION" "$(B)\manifest.descr" "$(B)\phony.h" |
| 1068 | "$(OBJDIR)\mkversion$E" "$(B)\manifest.uuid" "$(B)\manifest" "$(B)\VERSION" "$(B)\manifest.descr" > $@ |
| 1069 | |
| 1070 | "$(B)\phony.h" : |
| 1071 | rem Force rebuild of VERSION.h whenever nmake is run |
| 1072 | |
| 1073 | "$(OX)\cson_amalgamation$O" : "$(SRCDIR_extsrc)\cson_amalgamation.c" |
| 1074 |