Login
All files named "f-apps/f-sanity.c"
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

History for f-apps/f-sanity.c

2024-11-22
09:16
Myriad miniscule modifications - space removals. file: [844e3af6e9] check-in: [8a3bc44c30] user: brickviking branch: trunk, size: 84249
2024-09-26
16:27
EOL cleanups and fix an age-old stack overwrite discovered via Martin's QNX. Edit: the stack-overwrite of 18 bytes traces back to [896ea2a01b33de25]. file: [a831b15d02] check-in: [f6812e43bd] user: stephan branch: trunk, size: 84295
2024-09-24
15:58
Remove some stray debug output added in [71fbbe959b34]. file: [5bebeabb00] check-in: [57771ce4fc] user: stephan branch: trunk, size: 84232
15:47
Remove some auto.def debug output and add a comment explaining the new test in f-sanity.c. file: [b50c9a282e] check-in: [b096fe0978] user: stephan branch: trunk, size: 84350
15:43
Extend fsl_mtime_of_manifest_file() to be able to return the mtime of any artifact type if given a file ID of 0 or less. Simplify its internal impl a bit. file: [701c29eee0] check-in: [71fbbe959b] user: stephan branch: trunk, size: 84233
2024-09-23
10:43
include limits.h header for LONG_MAX on darwin While here, change buf->cursor precondition comparison check to ensure it is not greater than buf->used. It may be an unreachable state but we must guard it nonetheless. And expand getdelim() regress by covering the empty or end-of-buffer precondition path, and the no matching delimiter found in the stream path. file: [08be4df392] check-in: [322452cb8b] user: mark branch: trunk, size: 83639
2024-09-22
15:38
implement fsl_buffer_get{delim,line}() and regress test This API provides the same semantics as POSIX.1-2024 getdelim(3), which the fsl_buffer structure conveniently facilitates. A new regress test case is also added to f-sanity. Briefly discussed in /chat with Stephan. https://pubs.opengroup.org/onlinepubs/9799919799/functions/getdelim.html file: [43b89068cb] check-in: [efb25dec6f] user: mark branch: trunk, size: 82885
2024-09-21
01:27
zap deadstore via missing break statement in switch block I suspect this fallthrough attribute was incorrectly added to silence a compiler warning that was in this case warranted. We don't want to clobber c; `c = offset` is correct for SEEK_SET. Incidentally, this routine's regress test was not failing the SEEK_SET case[0] because bin->cursor is at 0 so the fallthrough to the SEEK_CUR case[1] equates to `c = 0 + offset`. As such this commit also reorders test cases for a more rigorous regresssion test of fsl_buffer_seek(). [0]: assert(0==fsl_buffer_seek(&bin, 0, FSL_BUFFER_SEEK_SET)); [1]: case FSL_BUFFER_SEEK_CUR: c = (int64_t)b->cursor + offset; break; file: [acab6eef90] check-in: [5d2f636c0c] user: mark branch: trunk, size: 81446
2024-09-16
20:34
Remove the fsl_db::f (fsl_cx*) member. This touches a lot of code lines but was not anywhere near as invasive as expected. file: [377b2c11d0] check-in: [f00a5025f5] user: stephan branch: db-hooks, size: 81446
17:06
More work on the db hooks. file: [8944bfbaaa] check-in: [12b3603cd3] user: stephan branch: db-hooks, size: 81464
2022-07-31
20:29
Initial work on fsl_buffer::errCode, for propagating buffer-API error codes to simplify (primarily) series of append operations such that we do not have to check for an OOM error until the end of the series. Essentially works but more testing and making use of it in the core API is needed. file: [3f71a757e5] check-in: [b5a98f8a9e] user: stephan branch: buffer-errcode, size: 81466
2022-04-10
00:17
Reimplemented fcli_sync() with a more flexible interface, including the ability to suppress the system()'d command's output, so fnc can potentially use this without hosing the screen state. f-update now does a pull-sync before updating if autosync is on. file: [21f3bb3d55] check-in: [0afca69968] user: stephan branch: trunk, size: 80719
2022-04-09
21:50
Added an f-sanity test for the FSL_RC_LOCKED case of fcli_sync(). file: [4b9cbb2ba6] check-in: [dcadf02e6c] user: stephan branch: trunk, size: 80690
21:36
Moved the internal fsl_cx cache-clearing to the public fsl_cx_caches_reset() so that it can be used like fcli does (after shelling out an external app which might change the db). Fixed a deck F-card search bug introduced by the cache reset (thank goodness an existing unit test tripped over that). file: [d03739c083] check-in: [84154036a0] user: stephan branch: trunk, size: 80468
07:41
Ported fsl_system() from fossil and added fcli_sync(). file: [59d8978ad3] check-in: [5fb49bf7c4] user: stephan branch: trunk, size: 80335
06:49
Ported in infrastructure for tokenizing PATH-style strings, added fsl_pathfinder_split() to quickly populate a fsl_pathfinder() from path strings, and added fcli_fossil_binary() to find the system's fossil binary. file: [5e35ae3038] check-in: [f15f9d8414] user: stephan branch: trunk, size: 80092
2022-03-10
03:38
For the fsl_ckout_rename()-related bits, rename the fsMvFile option to doFsMv. file: [a011113131] check-in: [b85863a91d] user: stephan branch: trunk, size: 80039
2022-03-09
04:04
Completely reimplemented fsl_ckout_rename() using fossil(1)'s impl as a basis. The code is now arguably more legible and is more behavior-compatible with fossil. file: [fe17deb060] check-in: [bc7bfb06e3] user: stephan branch: trunk, size: 80043
2022-03-08
07:07
Refactored fsl_ckout_rename() to use an options object and callback. Discovered a discrepancy in how renames are handled compared to fossil(1) when the source is a single dir name: fossil includes that dir name in the target whereas we do not. That might be subject to change, pending /chat discussions. file: [38d9727eee] check-in: [80c84abba6] user: stephan branch: trunk, size: 81422
05:03
Initial (somewhat unsightly) impl of refactoring fsl_ckout_rename() to be able to handle origin filenames which are SCM-known directories. i.e. fsl_ckout_rename() can now move directory foo/bar, recursively, to a new directory. file: [5a24afee9d] check-in: [52318ca911] user: stephan branch: trunk, size: 81052
2022-03-07
01:44
Added fsl_ckout_rename_revert() and unit tests. file: [cf3b92f81e] check-in: [aa34eddd93] user: stephan branch: trunk, size: 79475
2022-03-05
10:09
Added fsl_ckout_rename(), the core impl of a rename/move operation for SCM-managed files. file: [373265173c] check-in: [4d2e43a8f6] user: stephan branch: trunk, size: 78954
2022-02-05
04:45
Got foci working and added a basic test for it in f-sanity.c. file: [ec0b6483bc] check-in: [c33ddf9c91] user: stephan branch: wip-foci, size: 76878
2022-01-12
04:46
Added another test for fsl_tkt_id_to_rids(). file: [b200f92320] check-in: [a8d5615853] user: stephan branch: trunk, size: 75919
2022-01-08
05:45
Per /chat discussion, changed semantics of fsl_tkt_id_to_rids() to be able to handle an unambiguous ticket ID prefix. file: [3f7fba6381] check-in: [2bdb6c668f] user: stephan branch: trunk, size: 75809
03:56
Replaced the fundamentally flawed fsl_tkt_id_to_blob() with fsl_tkt_id_to_rids(). file: [511ea0d6a4] check-in: [7b2cbb1669] user: stephan branch: trunk, size: 75643
2022-01-07
23:40
Added fsl_deck_foreach(). file: [c3902f0045] check-in: [0741f4d194] user: stephan branch: trunk, size: 75767
19:06
Added fsl_tkt_id_to_blob() for Brad. file: [049875a944] check-in: [7d64642d36] user: stephan branch: trunk, size: 74685
2022-01-04
22:02
Added fsl_randomness(). Changed fsl_deck_K_set() semantics such that a NULL ticket ID is interpreted as a new (random) ID. file: [c86494207d] check-in: [896ea2a01b] user: stephan branch: trunk, size: 73993
2022-01-01
10:53
fsl_db_open() no longer automatically applies the create-if-not-exists flag to in-memory or anonymous temp dbs, as this was at the root of a great deal of confusion the past 24 hours. Documented the propagation behaviour of the CREATE flag from an OPEN'd db to other dbs ATTACHed via that handle. See [https://sqlite.org/forum/forumpost/76963f0026b6b12a], and its top-level post, for more details. file: [9836b9a0d3] check-in: [ac15c8d1d4] user: stephan branch: trunk, size: 76615
01:13
More cleanups moving towards taking another whack at the fsl_cx db handle reorg. Added a test case to f-sanity.c demonstrating the ATTACH-cannot-create error (whereas the sqlite3 shell can create new files that way). file: [82e0d5d77c] check-in: [51d4b05f5c] user: stephan branch: trunk, size: 76546
2021-12-30
13:49
Global config db now uses its own fsl_db handle, no longer ATTACHed with the repo/checkout handle. fsl_ckout_open_dir() now canonicalizes the passed-in directory name (simplifies usage). Added f-query -g/--config flag to query against the global config db. Various code-adjacent tweaks. file: [70ac79dafd] check-in: [1d7a6d2b96] user: stephan branch: trunk, size: 73778
05:37
Replaced f-apps fcli_setup() calls with fcli_setup_v2(). file: [88e84bf2ca] check-in: [313b59841e] user: stephan branch: trunk, size: 74526
2021-12-21
20:38
Corrected f-apps broken by previous checkin. file: [8f183f20f0] check-in: [5427afd00d] user: stephan branch: trunk, size: 74558
14:54
Added fsl_ckout_dbnames() and fsl_is_top_of_ckout(), prompted by recent fossil forum traffic. file: [c2954d285c] check-in: [7a9a409695] user: stephan branch: trunk, size: 74565
12:34
Expanded fsl_ckout_unmanage()'s callback interface to facilitate client-side unlinking of newly-unmanaged files. Added f-rm --unlink option. file: [7f4f504925] check-in: [9be228a605] user: stephan branch: trunk, size: 74714
08:28
Moved fossil-scm/fossil.h to ../libfossil.h so that client code can build from both the canonical tree and amalgamation using the same include name. file: [2f7970c694] check-in: [76d6359435] user: stephan branch: trunk, size: 74693
04:26
Found a not-too-terrible way of enabling partial builds, provided they're run from the appropriate subdir. Fixed assertions in f-sanity caused by __FILE__ now resolving differently and the Makefiles being reorged. file: [36d90ede26] check-in: [2a32d4ba97] user: stephan branch: toplevel-make, size: 74843
2021-12-14
11:19
Added fsl_file_copy(), fsl_symlink_read(), and fsl_file_isexec() as part of the merge op effort. Expanded fsl_file_tempname() to be able to accept a NULL list of directories in order to return just the name without a directory prefix. file: [5fcb9109a6] check-in: [6dca54dfde] user: stephan branch: trunk, size: 74715
09:16
Minor allocation optimization and tweak to how the filename prefix is applied in fsl_file_tempname(). file: [0bafff3c58] check-in: [b89b9e0058] user: stephan branch: trunk, size: 73644
08:55
Ported in a variant of the temp-filename generation bits from fossil because it's needed for the next merge steps. file: [1697858823] check-in: [dd3acff665] user: stephan branch: trunk, size: 73645
04:17
Tweaks to the return semantics of fsl_db_exec() and fsl_stmt_step(). Doesn't/shouldn't affect any existing code. Added a test to ensure that fsl_stmt_step() behaves as expected in the face of a RETURNING clause. file: [a48dc2d28c] check-in: [ad7ef26207] user: stephan branch: trunk, size: 73078
2021-12-10
12:11
As a special case, fsl_file_simplify_name() now always resolves to '/' if its input resolves to that, regardless of whether or not it is told to retain a trailing slash. The alternative would be to resolve to an empty string if it were told to strip the trailing slash for that case. file: [fff593df03] check-in: [3ad71dbc66] user: stephan branch: trunk, size: 72041
11:35
Fixed bug which caused fsl_file_simplify_name() to not honor its trailing backslash policy. file: [46bdf98a4f] check-in: [14fffb4e82] user: stephan branch: trunk, size: 72091
2021-12-03
03:52
Experimentally change the journal_mode to OFF for the main (temp) DB, noting that we don't actually store anything in that db handle - it's only used as an ATTACH point for the other dbs. Added a note about being able to rename the MAIN db, which might be useful in eliminating the current middle-man MAIN db (barring one corner case for the global config db). file: [6d43ca3b21] check-in: [76d7f8f4eb] user: stephan branch: trunk, size: 71491
2021-11-20
10:16
Added semantics for safely directing fsl_buffer instances to use "external" memory (owned elsewhere, possibly const), using copy-on-write if any API would modify such buffers. This mimics a feature of fossil(1)'s Blob class but implements it differently. Applied this feature to low-hanging fruit in fsl_repo_rebuild(), reducing the number of allocations for rebuilding the libfossil repo by 10048 (not coincidentally exactly the same as the number of deltas in the repo). file: [9244562ca3] check-in: [d6ace632d7] user: stephan branch: trunk, size: 71367
2021-11-19
05:50
Moved fsl_repo_rebuild() into the public API and added some new state to fsl_rebuild_step and new metrics to f-rebuild. Rebuild adds a few more entries in the event table than fossil does (investigation is TODO) but otherwise seems to behave. file: [dd15b2b733] check-in: [c389ae9908] user: stephan branch: trunk, size: 69908
2021-11-16
05:40
Cosmetic test header tweak. file: [5b233bc37c] check-in: [8a6835b3d9] user: stephan branch: trunk, size: 69924
2021-11-13
04:13
Fixed HTML decoding (%T appendf specifier) range problem reported at [https://fossil-scm.org/forum/forumpost/cb564acd01] and fix adjacent string-length bugs. file: [45a7a4a329] check-in: [70f66a328d] user: stephan branch: trunk, size: 69959
2021-11-10
06:00
Added fsl_configs_XYZ() APIs, which provided features similar to fsl_config_XYZ() but enable checking multiple config sources in an order specified by the caller. file: [45d01ed7e2] check-in: [8d7b8f50c4] user: stephan branch: trunk, size: 69508
2021-11-09
14:27
Tracked down and documented the locking error Mark was experiencing: we cannot detach while any stepped-but-not-reset-or-finalized statements are active. file: [9c0751a4a0] check-in: [3bff6eddc1] user: stephan branch: trunk, size: 68268
13:29
Linked list iteration fixes for the previous commit. file: [f48274ba47] check-in: [c9b2992de4] user: stephan branch: trunk, size: 68006
12:44
Removed incorrect if() blocks which caused repo/ckout/config db strings to not get cleared in some cases. file: [f43a264508] check-in: [09a6b48de5] user: stephan branch: trunk, size: 67961
2021-11-08
10:20
fsl_config_open() is now a no-op if passed a NULL/empty file name and a global config is already opened. Reordered some internals calls to hit expected if/else cases earlier. file: [98af9e81b4] check-in: [4e81e07c57] user: stephan branch: trunk, size: 67484
2021-11-02
23:52
Mass renaming of many internal APIs from fsl_X to fsl__X (two underscores) and several adjacent const cleanups. file: [bf2bb4b9fe] check-in: [83917b7b45] user: stephan branch: trunk, size: 67465
2021-10-22
02:48
Refactored appendf %q/%Q/%B to use a static buffer instead of dynamic allocation. This saves counting the output length in advance and allocation of that output buffer but requires one call to the callback per 512-ish bytes of the string. file: [3bcd5e7db2] check-in: [5739c3cbd3] user: stephan branch: trunk, size: 67458
2021-10-21
20:42
Added %!Q form of %Q appendf modifier to take the place of the undocumented/unused %w: wraps result in double quotes instead of single, for use with identifiers. file: [b41a90d2c4] check-in: [d92aae901d] user: stephan branch: trunk, size: 67441
04:41
Reduced fsl_buffer_reserve() calls by about 90% for f-parseparty (2.8m down to 300k), largely via addition of a db-level buffer for cached SQL preparation. Added a simpl hash to cached fsl_stmt instances to speed up fsl_db_prepare_cached() and reduce fsl_buffer_cmp() calls by 90%+. Record how many times any given caches fsl_stmt is reused and emit that via the new fcli_dump_stmt_cache() function. This reduces f-sanity allocations from 39k to 29k but slightly increases total allocated memory. file: [6bb05e3915] check-in: [c812573f26] user: stephan branch: trunk, size: 67401
2021-10-20
13:11
Removed fsl_deck::uuid and the fsl_deck_parse() step which tries to map its inputs to an existing db record. While convenient for downstream code, it's a huge performance hit. Checking in to a branch for f-parseparty speed testing compared to the current trunk. file: [57945ed47b] check-in: [1dc391289c] user: stephan branch: remove-deck-uuid, size: 67845
2021-10-19
09:05
Added the FSL_GLOB() SQL UDF and infrastructure to support it, to enable operations which make use of the configurable glob lists to access those via SQL. file: [76447184b5] check-in: [496acd50a1] user: stephan branch: trunk, size: 67813
2021-10-11
02:53
Minor internal doc and test updates. file: [f06a886756] check-in: [7933b213f4] user: stephan branch: trunk, size: 67073
2021-10-10
13:24
Minor cleanups in the new f-sanity.c %#-related tests. file: [166af32c37] check-in: [b380db5e3f] user: stephan branch: trunk, size: 67051
13:09
Added '#' format modifier for fsl_appendf() %s, which causes it to count width and precision in UTF8 characters instead of bytes. This allows the split-mode diff renderer to measure its columns in characters instead of bytes and avoid truncating multibyte characters. file: [011b3b183e] check-in: [4432b1f97a] user: stephan branch: trunk, size: 67524
2021-10-02
18:39
Expanded fsl_vpath_shortest_store_in_ancestor()'s interface a bit. file: [74886bdfaf] check-in: [8ad0b44715] user: stephan branch: trunk, size: 66161
18:12
More work on the annotate interface, plus far too many nearby-yet-unrelated tweaks such as costness changes. file: [ed8ea35946] check-in: [b601f20cff] user: stephan branch: trunk, size: 65932
2021-09-26
16:32
Ported over, but have only lightly tested, fossil's JSON-format diff builder. file: [49e2df8b61] check-in: [14267d8d3a] user: stephan branch: trunk, size: 64942
2021-08-24
17:12
Enhance repo fingerprint check to cover old repositories. This commit adds an extra check to match repository fingerprints using the original algorithm that some old repositories in the wild may need. file: [75b603f65d] check-in: [043c2667c9] user: mark branch: trunk, size: 64881
2021-08-09
20:07
Added fcli_progname() as a portable substitute(?) for BSD's getprogname(). file: [2fc0a7168b] check-in: [3d0057a245] user: stephan branch: trunk, size: 64874
2021-04-16
16:24
Added a negative test for the repo/checkout fingerprint check. file: [45d5fbcd7d] check-in: [27433d3e1c] user: stephan branch: trunk, size: 64814
16:17
Implemented repo/checkout fingerprint check and added a check for it in f-status, f-timeline, and f-ci (failing fatally on a mismatch, instead of just warning like fossil does). We now update the fingerprint in the ckout db whenever we update the ckout version. We do not yet have an automatic recovery mechanism analog to fossil's vfile.c:vfile_rid_renumbering_event(). file: [799bfe2c6e] check-in: [8c9cf48702] user: stephan branch: trunk, size: 64456
2021-04-14
04:10
Renamed fsl_cx_forbids_delta_manifests() to fsl_repo_forbids_delta_manifests() because it's really a repo-level setting. file: [3dc3097ed7] check-in: [755c059371] user: stephan branch: trunk, size: 63869
03:53
Renamed fsl_cx_forbid_delta_manifests() to fsl_cx_forbids_delta_manifests() so that it doesn't sound like a setter function. file: [2f9554480c] check-in: [7501bb92f9] user: stephan branch: trunk, size: 63865
03:38
fsl_deck_save() now honors the forbid-delta-manifests policy, rejecting any delta manifests. fsl_deck_derive() now converts any delta manifest to a baseline in order to avoid certain corner cases. Added some f-sanity tests for these new cases. file: [3b5efa6c55] check-in: [ea6074b8ad] user: stephan branch: trunk, size: 63863
2021-04-13
05:28
Removed fsl_deck::error, relying on fsl_deck::f::error instead. Added fsl_deck_F_set() in prep for APIs to simplify creating new checkins without requiring a checkout. Fixed a U-card validation bug in fsl_deck_output(). file: [708bc11853] check-in: [f839ab3edd] user: stephan branch: deck-reworking, size: 65753
2021-04-12
15:48
Fixed, i believe, the checkin process not properly tagging the new leaf, caused by swapped handling of the is-it-a-leaf result. Need to make a commit to actually test it, though. Edit: worked :). file: [33715199dd] check-in: [2791e665cc] user: stephan branch: trunk, size: 65038
2021-04-10
11:14
API doc cleanups, removed some extraneous is-NULL checks on function arguments, and added a couple assert()s to f-sanity.c. file: [12ee0fa0e1] check-in: [e314f2f9df] user: stephan branch: trunk, size: 64847
2021-04-05
10:23
Minor generic cleanups in fcli and related app-side code. file: [db05e51183] check-in: [c62ffa1046] user: stephan branch: trunk, size: 64740
2021-04-04
05:07
f-apps: modernized/simplified usage of exit-on-help. Removed some bogus CLI flag entries from f-config. file: [503c044969] check-in: [1d3192c82b] user: stephan branch: trunk, size: 64729
04:58
f-apps: use fcli_cx() instead of accessing fcli.f directly. file: [0b2c220071] check-in: [9c7cf37828] user: stephan branch: trunk, size: 64779
2021-03-29
02:39
Internal tweak in the fsl_db API to take advantage of SQLITE_PREPARE_PERSISTENT. Doc fix in fsl_buffer_stream_lines(). file: [78aab3c876] check-in: [230e3ff6f6] user: stephan branch: trunk, size: 64734
2021-03-27
15:14
Doc updates and added another fsl_checkin_dequeue() test. file: [970d5517a1] check-in: [9c2f72f751] user: stephan branch: trunk, size: 64736
15:01
Fixed a test assert() broken by the previous checkin. file: [1f586cabad] check-in: [1bc0bdd204] user: stephan branch: trunk, size: 64583
14:54
Renamed and refactored fsl_checkin_enqueue() and fsl_checkin_dequeue() to use an options object and altert the user about exactly which files are enqueued/dequeued via a callback. file: [acf0bb9730] check-in: [8abd63ab1c] user: stephan branch: trunk, size: 64565
12:02
Minor API cleanups. file: [cab0f0f80b] check-in: [259329f627] user: stephan branch: trunk, size: 63901
2021-03-24
15:05
Refactored how the checkin manifest R-card is calculated, to simplify recalculating and verifying it from higher-level code. Renamed f-mfparse to f-aparse. Renamed fsl_hash_types_t to fsl_hash_types_e for naming consistency. file: [5df8e8e955] check-in: [81cbf6794f] user: stephan branch: trunk, size: 63895
2021-03-23
00:49
Refactored the rm op to use a callback to report removals, similar to add and revert. Renamed fsl_ckout_file_add/rm... to fsl_ckout_manage/unmanage... Sidebar: used f-revert and the stash to recover from a fatal perl-regex refactoring mishap while working on this. file: [a0502b6996] check-in: [09300fddd6] user: stephan branch: trunk, size: 63852
2021-03-22
19:38
Fixed a test assert broken by the previous commit. file: [c3d804cc15] check-in: [541e4fd2d7] user: stephan branch: trunk, size: 63470
10:01
Changed the signature of fsl_ckout_file_rm(). file: [0d4ca2fb34] check-in: [356e3783c9] user: stephan branch: trunk, size: 63360
2021-03-15
12:12
Swapped order of 2 parameters to fsl_confirm_callback_f - just seems more consistent that way. file: [e237dbb50c] check-in: [26191854cd] user: stephan branch: trunk, size: 63303
11:14
Extended the fsl_confirmer API to be able to ask, and get responses to, simple multiple-choice questions. This will be needed, e.g., for performing an update operation when multiple versions are equally viable candidates. file: [41c65e4e3d] check-in: [ccc0fef970] user: stephan branch: trunk, size: 63315
05:53
fsl_appendf(): ported in comma-separated decimals from [fossil:2cdbdbb1c9b7ad2b]. file: [d1a18b626f] check-in: [5f6954fc89] user: stephan branch: trunk, size: 62765
04:25
Globally renamed _checkout to _ckout, as some of these names are getting a bit long. file: [4b1061b5bc] check-in: [bc9e88ee2c] user: stephan branch: trunk, size: 62645
2021-03-14
21:23
Moved some config-settings-related stuff out of the public API for the time being. file: [519f3fc79f] check-in: [2c6c7eda48] user: stephan branch: trunk, size: 62756
15:50
Considerable hammering on the config db APIs to make handling of versionable settings work like the other modes. Eliminated the versionable-specific config get/set APIs. file: [fb11d6024f] check-in: [a2cd19f640] user: stephan branch: trunk, size: 63229
2021-03-13
06:17
Minor fsl_cx_confirmer() API changes. Removed the extraneous xvfile temp table used by the checkout process and instead use a dual-versioned vfile table. file: [12ec56d3a4] check-in: [e81048d148] user: stephan branch: trunk, size: 62365
05:27
Several minor changes moving us slightly closer to be able to add update support. file: [3c2906d1cd] check-in: [1329430a6a] user: stephan branch: trunk, size: 62250
04:10
Added total/current file counters to fsl_repo_extract_state so that clients can calculate progress percentage. file: [d8d943e7af] check-in: [356da76d92] user: stephan branch: trunk, size: 62395
01:09
Swapped out f-s2sh's shell.c with shell2.c (s2sh2 instead of s2sh classic). file: [44b596dbc3] check-in: [e20cc9720f] user: stephan branch: trunk, size: 62303
2021-03-12
19:56
Commented out an assert which prohibits running f-sanity on a non-leaf build. file: [47d2fa55df] check-in: [f2f1612a0c] user: stephan branch: trunk, size: 61797
13:48
Minor API renaming, for consistency. file: [46963fec0d] check-in: [f2fc1f3efd] user: stephan branch: trunk, size: 61795
13:06
Moved some code around and renamed a struct member for consistency with similar structs. file: [d8bc3047fa] check-in: [9bd1cfea4b] user: stephan branch: trunk, size: 61786
2021-03-11
23:05
Doc updates. Changed default checkin deltaPolicy to 0. Corrected a falsehood about Chuck Norris. Refactored checkout's rm-empty-dirs bits into fsl_rm_empty_dirs(). Fixed mis-reset of fsl_checkout_file_add_opt::counts. Minor malloc optimization in the post-checkout file removal bits. file: [dcaecb94f0] check-in: [fd313baef4] user: stephan branch: trunk, size: 61779
18:56
Minor doc updates and added a couple TODOs related removing now-unmanaged files after an rm op. file: [c1df137330] check-in: [419099b063] user: stephan branch: trunk, size: 61397
18:15
Ported f-add's dir-recursion and ignore-glob capabilities into fsl_checkout_file_add() and expanded that function's feature/option set considerably. file: [1b820af998] check-in: [61d3e64e6f] user: stephan branch: trunk, size: 61399
2021-03-10
17:36
Minor fcli API usage modernization. file: [95051676d8] check-in: [c04ce8aaf1] user: stephan branch: trunk, size: 61147
16:41
Refactored fsl_dircrawl_f() to take a fsl_dircrawl_state struct as an argument and added current recursion depth to the passed-on state. file: [d5e67e904f] check-in: [4a70a0dd17] user: stephan branch: trunk, size: 61185
15:47
Added fsl_dircrawl() for recursively crawling directories and added recursive dir and ignore-glob support to f-add. fsl_buffer_reuse() now returns its argument. file: [ef88424c9c] check-in: [c1199e807f] user: stephan branch: trunk, size: 61265
08:25
Renamed the 'F2' F-card temporary porting name back to F. file: [72689cde0f] check-in: [63e886fff0] user: stephan branch: f-card-array, size: 60640
08:06
New F-card list model is working but the savings for it are underwhelming to say the least. At most, 10-15% alloc count savings on f-parseparty runs, with a slightly higher RAM total. Disabled delta checksum self-test, as it's a big time hit and fossil also disables that by default. (Edit: but this changes cuts the time needed for f-parseparty to process the core fossil repo by a bit more than half. It's still dog slow compared to a fossil rebuild, though.) file: [c417ca4876] check-in: [2440c84b01] user: stephan branch: f-card-array, size: 60643
2021-03-09
06:01
Minor confirmer cleanups and docs. file: [e4952fad61] check-in: [d58d30707f] user: stephan branch: confirmer-co, size: 60670
05:17
It seems we just about have the confirmer bits working for f-co. Had to change the semantics of --keep, but the older semantics feel really weird. Needs a bit more testing. file: [6eb75ebb57] check-in: [ed0fa2b56a] user: stephan branch: confirmer-co, size: 60680
00:13
Minor tweaks of the confirmer bits. file: [596bf229d9] check-in: [13fb58bfdd] user: stephan branch: confirmer-co, size: 60018
2021-03-08
23:42
Optimizations in fsl_repo_checkout() to reduce fsl_content_get() calls, only writing files which vfile says have changed. Cuts alloc counts by approx. 3-4x and memory cost by 5-8x in basic tests. f-co now has a blank status square for files which were not modified, to make it easier to spot the real changes. file: [b83d86260a] check-in: [735e9e32ab] user: stephan branch: confirmer-co, size: 59910
13:23
Renamed FSL_CANSWER_xxx to FSL_CRESPONSE_xxx. Changed some queries from cached to non-cached. Added /*__func__()*/ to the end of many queries to make them easy to track down via sqlite trace output. file: [776389ec20] check-in: [c8b25fe30f] user: stephan branch: trunk, size: 59888
11:14
Initial go at a new interactive confirmation API (not yet connected to checkout op). Removed a functionally-duplicated API. Added __func__() to some cached SQL statements in order to simplify tracking their origin (though this keeps those statements from being reused across multiple functions). file: [3a229c3220] check-in: [9a6bb6834f] user: stephan branch: trunk, size: 59590
03:48
Resolved an intermittently flaky sanity check which relied on specific timing. Added a couple fsl_cx_stat2() tests. file: [8873c22578] check-in: [e6cab89089] user: stephan branch: trunk, size: 58133
2021-03-07
09:43
Renamed a cryptically-named struct member from fc to fCard. file: [f1ff5b8d63] check-in: [ae428e47b0] user: stephan branch: trunk, size: 57525
2021-03-05
07:43
More char-to-bool conversions. Moved fsl_stmt_bind_fmt() into the public API and added a basic test for it. file: [fed5e09f07] check-in: [d386e0d741] user: stephan branch: trunk, size: 57519
2021-03-04
22:46
Refactored fsl_repo_checkout() to take a different options type and callback, and provided that callback with more interesting state. Restored f-open functionally which was disabled due to the lack of that state. file: [0f81af7098] check-in: [ea7a0da420] user: stephan branch: trunk, size: 57027
18:19
Refactored fsl_repo_extract() to take a struct and added an option to specify whether or not the file content should be extracted. Fixed fsl_mkdir_for_file() for 1-letter filenames. file: [086f6d4913] check-in: [0e31c5674e] user: stephan branch: trunk, size: 57019
2021-03-03
16:44
Restored f-sanity's -1 flag. file: [5ce873ee76] check-in: [9fc41dba87] user: stephan branch: trunk, size: 56865
16:41
Renamed fsl_path API to fsl_vpath to avoid any confusion with fsl_pathfinder. file: [1841cde4d2] check-in: [a8d1262cc1] user: stephan branch: trunk, size: 56838
11:42
Renamed fsl_buffer_reset() to fsl_buffer_reuse() to try to reduce the confusion between its semantics contrasted with fsl_buffer_clear(). file: [59f0537cf0] check-in: [0584c1b6e2] user: stephan branch: trunk, size: 56824
2021-03-01
16:21
Arguably a typo fix in the new header. Thank goodness for stream editors. file: [9c9b4a4c77] check-in: [386316db07] user: stephan branch: trunk, size: 56824
15:46
Replaced the overwhelming majority of license headers with the new project-standard one. Left a few as they were for files which were imported essentially unchanged from Fossil or, in the case of SHA1/SHA3/MD5 bits, other 3rd-party sources. file: [3c486680c8] check-in: [fa5fb24496] user: stephan branch: trunk, size: 56816
2021-02-28
17:10
Started porting in fossil's merge algorithm. It looks like the support algos are all in place, just the main merge is missing. First some sleep, though. file: [4faa6ce464] check-in: [2cfc9d6ae9] user: stephan branch: trunk, size: 57062
04:57
fcli now uses its own FCLI_RC_HELP, instead of hijacking FSL_RC_BREAK, to indicate that --help was triggered. file: [a1dfd771a9] check-in: [d0edf4583f] user: stephan branch: trunk, size: 56363
2021-02-27
14:29
Finished porting the f-apps to the new CLI handling bits. Replaced fcli::appHelp with what was formerly fcli::appHelp2. file: [af10091db3] check-in: [ca464b5b74] user: stephan branch: trunk, size: 56225
10:43
More CLI flags handling changes. Completely re-did how f-tag handles its arguments. fcli --help now only shows global options when using --verbose. file: [215e785d12] check-in: [75e5fd2467] user: stephan branch: trunk, size: 56226
2021-02-26
14:04
Reworking how fcli flag handling is done. file: [9b1fbef7d7] check-in: [dad2f76f30] user: stephan branch: fcli-flag-rework, size: 56167
2021-02-24
20:41
Removed a now-incorrect comment. file: [9888ba52ce] check-in: [ce331bf419] user: stephan branch: trunk, size: 56161
19:34
fsl_appendf() %j now emits "null" (always without quotes) when passed a NULL pointer. file: [9e5b551dfc] check-in: [b1e8da4fa7] user: stephan branch: trunk, size: 56274
09:28
Removed some dead code. Added %j (JSON string) encoding to fsl_appendf() using a streaming approach (no allocation). file: [78314b44c9] check-in: [a008179c2d] user: stephan branch: trunk, size: 56213
2021-02-21
15:10
Renamed FSL_CATYPE... (CA=Control Artifact) to FSL_SATYPE... (SA=Structural Artifact) so that they correspond to the terms as set out by the fossil file format docs. file: [5d6dc6612a] check-in: [8728796601] user: stephan branch: trunk, size: 54907
2021-02-18
05:11
Replaced the extraneous fsl_double_t typedef with double. file: [ae137fa947] check-in: [b359548620] user: stephan branch: trunk, size: 54907
2021-02-15
03:24
Renamed src/fsl_XYZ.c to src/XYZ.c. f-checkin vfile dump now includes renames. file: [fcbe1ed97e] check-in: [ed3183170a] user: stephan branch: trunk, size: 54955
00:21
Reimplemented fsl_config_file_reset() to account for schema prefixes. fsl_file_size() now returns type fsl_int_t instead of fsl_size_t, to simplify the -1-on-error return checking. Added fsl_config_global_preferred_name(), which performs the global config file lookup algo used by fossil, and changed fsl_config_open() to use that. file: [b06343772d] check-in: [8837671e83] user: stephan branch: trunk, size: 54979
2021-02-12
22:09
libfossil is now C99, rather than C89, per discussion at [https://fossil.wanderinghorse.net/r/libfossil-forum/forumpost/e02ff0e8d0]. fsl_int{16,32,64}_t have been replaced by the standard uint{16,32,64}_t, FSL_xxx_T_PFMT/SFMT replaced with PRIx32 and friends, and auto.def now checks for -std=c99 capability (but that check could probably be done differently/improved). fsl_int_t and fsl_uint_t are retained, as they're more about documentation/intent than fixed sizes. file: [98c259d44b] check-in: [ee070353b9] user: stephan branch: trunk, size: 54822
2021-02-11
18:38
Moved around and tinkered with some of the hash policy code. Added f-new --hash option to set the policy when creating a new repo. file: [9306a88aac] check-in: [dec0670fb2] user: stephan branch: trunk, size: 54876
2021-02-09
00:18
Updated license text in almost all C/H to claim copyright while attributing all of the files as heavily derived from DRH's work. file: [2faf1b25a7] check-in: [631fb3f69a] user: stephan branch: trunk, size: 54887
2015-12-28
21:47
fixed broken (swapped) logic in fsl_rid_is_leaf(). file: [27e90e16f8] check-in: [2273183275] user: stephan branch: trunk, size: 54849
2014-12-04
15:43
Latest s2, fixed ticket [dee8469f4b] by removing the (unused) chroot() feature from fsl_chdir(), accommodated an older libf API change in the th1ish bindings. file: [0bfa946c3f] check-in: [09fb223f65] user: stephan branch: trunk, size: 54777
2014-10-25
09:51
merged in dave's branch, fixed a merge conflict, made f-sanity not fail a specific test fatally because it rightfully fails on a merge-modified checkout. file: [ac8b8ef783] check-in: [8a439f91d5] user: stephan branch: trunk, size: 54783
2014-10-18
11:00
Factored out the find-a-db part of fsl_checkout_open_dir() to fsl_checkout_db_search() and added option to search parent dirs or not, both in support of up-coming code. file: [542729988f] check-in: [10f613f805] user: stephan branch: trunk, size: 54676
2014-10-02
03:12
amalgamation support for msvc; #undef'ed a couple macros that collided with Windowsian things; added a project for my testing porpoises; put in a conditional compile switch in f-sanity.c to support an amalgamation build with ease. file: [53222ee4d4] check-in: [0d2451c9c2] user: dave branch: dave, size: 54675
2014-09-30
15:35
minor; workaround fact that VC6 doesn't know how to convert a uint64_t to a double, but it does know how to convert a int64_t to a double; haha. I didn't bother to put it under conditional compilation, since it is harmless on other platforms (and you can't get enough precision out of a double to ever have it matter about the highest bits). file: [7e9746f2cd] check-in: [4627c84c02] user: dave branch: feech-dave-msvcsupport001, size: 54606
13:06
corrected a bug in test_fs_cx_stat() that I introduced by commenting out an ureferenced local, simply to suppress a warning. It is unreferenced in Win32 builds, but it is used in Linux, so I uncommented it out, and I will just disregard the warning in Win32, since this is a test app anyway. Maybe I'll fix it better later with a conditional compile, or something, but it's pretty innocuous. file: [e908b727da] check-in: [4814bd4e5c] user: dave branch: feech-dave-msvcsupport001, size: 54591
12:50
a peculiarity of Microsoft's AMD-64 compiler is that __FILE__ resolves to a relative path correct at compile-time. but incorrect at runtime if you are running in a different directory. (The x86 compiler resolves to fully-qualified paths, which can create a different problem if you were on a different machine, but these are just test apps anyway). The net result was to cause tests to fail when __FILE__ was used as a object of the test. There were two test apps that did this, and they were modified to use a manhandled self name in the case of microsoft's compilers. file: [ce68eded52] check-in: [9834d60958] user: dave branch: feech-dave-msvcsupport001, size: 54602
2014-08-26
17:26
accommodated API changes. file: [b6347341d9] check-in: [acc01d60c7] user: stephan branch: trunk, size: 53865
2014-05-29
16:56
Portability fixes (broken char signedness assumptions) for Raspberry Pi. file: [f388d17c39] check-in: [9fb7bcf2a9] user: stephan branch: trunk, size: 53795
2014-05-01
14:01
path test code tinkering. time for a break. file: [7721694fa4] check-in: [dad7c554ab] user: stephan branch: trunk, size: 53751
12:42
More work on the path porting. Related refactoring to make some more bits visible. file: [22f56d576f] check-in: [35cef04dcd] user: stephan branch: trunk, size: 53616
2014-04-22
20:11
Added an sqlite3 commit hook to abort the app if COMMIT is used while an API-controlled transaction is in progress. Added a fsl_str_is_date2() test which should have been in the previous commit. file: [e3e2132706] check-in: [83c08406ea] user: stephan branch: trunk, size: 51912
2014-04-06
17:44
moved a test. file: [03904da0c8] check-in: [c779eec8e4] user: stephan branch: trunk, size: 51548
13:15
Added fsl_repo_import_blob() fsl_repo_import_blob(). One of the tests may fail first after the commit... we'll see if there's a follow-up commit to fix it. file: [0897ed8f7f] check-in: [4a39e3e670] user: stephan branch: trunk, size: 51546
2014-04-03
17:02
Renamed fsl_glob_list_clean() to fsl_glob_list_clear() for consistency with similar APIs. file: [ee4c61279f] check-in: [1075d15a5f] user: stephan branch: trunk, size: 50883
16:43
Renamed fsl_repo_filename_fnid() to fsl_repo_filename_fnid2(), kept it internal, and added fsl_repo_filename_fnid() as a simplified form safe for general-purpose client-side use. file: [ad115241c5] check-in: [f18878c6b4] user: stephan branch: trunk, size: 50883
2014-03-31
17:35
Removed the reportDeletions option from fsl_repo_extract(). Cuts the code size in half and does away with a number of corner cases and inconsistencies in the reporting of deletions. Deleted files are no longer reported by that routine. file: [c6da0c0d71] check-in: [63d94544ed] user: stephan branch: trunk, size: 50881
16:36
Fixed a mis-free() in fsl_repo_extract(). file: [94206971ea] check-in: [f0b9e29b44] user: stephan branch: trunk, size: 50907
2014-03-30
10:37
Added caching of versionable config results but then removed it because it introduces inconsistencies in string ownership vis-a-vis non-versioned config. Various little cleanups and additions along the way. file: [115f3b974a] check-in: [48eec586a9] user: stephan branch: trunk, size: 50901
2014-03-29
10:09
Introducing the highly arguable fsl_simplify_sql() utility routine. file: [3ac193dc13] check-in: [7b0022b9a5] user: stephan branch: trunk, size: 50885
2014-03-28
15:27
Added infrastructure for the various xxx-glob config options. fsl_cx now caches them when a repo/checkout is opened and provides APIs for querying them. file: [d79506c968] check-in: [aa8f7bd1be] user: stephan branch: trunk, size: 50425
2014-03-27
20:15
Moved versionable settings tests to the standard test battery. file: [44a38dd4b5] check-in: [9f64472a1d] user: stephan branch: trunk, size: 49819
20:10
Added basic infrastructure for reading versionable settings. file: [6275cd0ec4] check-in: [5f501363c4] user: stephan branch: trunk, size: 49819
2014-03-26
14:29
Added an assertion. file: [4afa7cd2dc] check-in: [03019c5871] user: stephan branch: trunk, size: 48931
14:27
Added --cached-sql flag to dump cached statements at end of tests. file: [57b54cddfa] check-in: [01e5816534] user: stephan branch: trunk, size: 48913
2014-03-25
18:16
A big round of renaming and touchups. More tinkering with the F-card generation. Seems to work how i want it now. This commit is partially a test of said functionality... seems we are not quite at a delta/baseline rollover point. file: [6400abcb7f] check-in: [7a0759a0a4] user: stephan branch: trunk, size: 48520
2014-03-17
21:12
Ported in fsl_gradient_color(). Added fsl_rgb_encode/decode(). Minor comment changes in f-tag. file: [93cf8a20d5] check-in: [a508afba51] user: stephan branch: trunk, size: 48272
2014-03-16
17:28
Discovered a crash case involving ordering of the sanity tests. To investigate later. file: [d2b9411515] check-in: [c0b8ce3c1d] user: stephan branch: trunk, size: 47996
2014-03-15
17:28
Tweaked some test code. file: [83ff94ecf1] check-in: [439762f205] user: stephan branch: trunk, size: 47898
15:39
Fixed the quirk of fsl_checkout_file_rm() caring whether a dir name ends with a slash or not. file: [ae4044db14] check-in: [9664c64ba3] user: stephan branch: trunk, size: 47898
13:35
Minor cleanups, code consolidation/removal. file: [28c3bdb828] check-in: [a92bffdddf] user: stephan branch: trunk, size: 47658
2014-03-14
14:25
a long morning of refactoring and cleanups. file: [6a4f261c87] check-in: [c71f986d35] user: stephan branch: trunk, size: 47552
11:10
another round of minor cleanups. file: [35522e9ee3] check-in: [7e8d0ecfe2] user: stephan branch: trunk, size: 47177
2014-03-13
19:42
accommodated internal restructurings. file: [2bc9193aa0] check-in: [4740bce980] user: stephan branch: trunk, size: 48263
2014-03-12
19:44
Swaped fsl_checkout_version_info() arg order, for consistency. More work on the checkin bits. file: [6270f886ec] check-in: [ccb9a1e941] user: stephan branch: trunk, size: 48264
2014-03-08
22:21
More work on the checkin bits. Reimplemented how baseline manifests get their F-cards calculated. Not yet sure how best to implement a delta manifest. file: [de88fb3485] check-in: [1cd70042f1] user: stephan branch: trunk, size: 48264
18:29
Lots more tinkering with the checkin stuff. About to try a different F-list generation algo, though, because the ported-in one has historical baggage due to the enforced ordering of names in how it generates the manifest. file: [d982afe091] check-in: [1a0ee6b693] user: stephan branch: trunk, size: 48039
12:35
more work on the checkin bits. file: [52b6031e1e] check-in: [8fbda636dd] user: stephan branch: trunk, size: 47129
11:50
Started work on some internals needed for doing a checkin. file: [f98c65ca59] check-in: [c77b3cb7fb] user: stephan branch: trunk, size: 46830
2014-03-04
10:16
switch from local time to gmt in one test. file: [0e7e8af336] check-in: [2d5f825f68] user: stephan branch: trunk, size: 45510
2014-02-25
21:19
Changed fsl_repo_filename_to_fnid() semantics a tiny bit. file: [13fdf6744d] check-in: [3438cbb4bd] user: stephan branch: trunk, size: 45513
2014-02-23
11:24
fsl_mtime_of_manifest_file() now accepts a 0 fileId to fetch the time of the manifest. zip-repo now sets the root dir time to that of the manifest. file: [6e8c39a6b5] check-in: [90f3f7bd40] user: stephan branch: trunk, size: 45123
2014-02-22
10:33
Ported in fossil's system timer APIs. file: [60c5f45efc] check-in: [91471dde81] user: stephan branch: trunk, size: 45006
2014-02-15
18:52
Added a unit test. file: [68f63e8bbc] check-in: [a93fd5de89] user: stephan branch: trunk, size: 44692
2014-02-14
18:17
minor output tweak. file: [8b3027d20b] check-in: [ffa6fb17c9] user: stephan branch: trunk, size: 44613
12:05
Refactored fsl_repo_extract() to provide more info to the callback. Added fsl_strftime_unix(). file: [300d84a446] check-in: [38d3dd2086] user: stephan branch: trunk, size: 44565
10:36
Reordered some arguments. Implemented fsl_repo_extract(), which will be the basis of checkout-like behaviours. file: [e4252a9392] check-in: [e713b48c83] user: stephan branch: trunk, size: 44797
09:05
Globally changes the API docs from fossil/sqlite-style '**' to Doxygen-friendly format because the extra stars hinder writability/changability and require an extra filter at the doxygen-processing level. file: [9bd18d07e7] check-in: [a2cbd2e343] user: stephan branch: trunk, size: 43313
2014-02-12
20:42
Moved ZIP-creation code into the public API. Expanded and fixed it considerably. Added f-zip tool. file: [1c469b7c3f] check-in: [54a3117046] user: stephan branch: trunk, size: 43313
2014-02-11
15:57
Moved the overlooked test.c and moved much of its code into f-sanity.c. Minor tweak to fsl_cx_err_reset() to avoid a potential error propagation corner case. file: [e4c9e5683e] check-in: [2d81857ed2] user: stephan branch: trunk, size: 43166
14:31
Renamed and modified f-sanity.c → f-apps/f-sanity.c. Build cleanups. Moved f-* apps to f-apps/ subdir. Now builds a shared (instead of static) lib by default because that now (since the file move) simplifies the linking of the f-apps (and th1ish). Adapted f-sanity.c tests to the new directory structure. file: [5093abcb7f] check-in: [e85b45eda2] user: stephan branch: trunk, size: 39899