Login
History of src/cx.c of 12b3603cd3ac8b14
Login

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

History of file src/cx.c at check-in 12b3603cd3ac8b14

2024-12-11
06:43
A slightly more robust check for is-this-a-checkout-db, analog to upstream [fossil:36f916c504c525c72f48]. file: [742b0f36ad] check-in: [37dacc1787] user: stephan branch: trunk, size: 73265
2024-09-28
00:31
Do not clear the fsl_cx error state in the db hooks, as that hides propagating info like a merge failure report. file: [757b2234b5] check-in: [08ed83fecc] user: stephan branch: trunk, size: 72804
2024-09-16
22:31
Simplify fsl__cx_db_hook_transaction() a bit. file: [7d71d691ac] check-in: [40d724d923] user: stephan branch: trunk, size: 72827
21:22
Remove some debug output. Update some docs. file: [119c9a821a] check-in: [ccd8bc3369] user: stephan branch: db-hooks, size: 73136
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: [8d9b2b1c3a] check-in: [f00a5025f5] user: stephan branch: db-hooks, size: 73030
17:41
More work towards moving fsl_cx-specific pieces of fsl_db internals into fsl_cx-side hooks. file: [11a9ee524d] check-in: [7fce228983] user: stephan branch: db-hooks, size: 72995
17:06
More work on the db hooks. file: [d68698ce35] check-in: [12b3603cd3] user: stephan branch: db-hooks, size: 73337
16:02
Initial work on adding some hooks to the fsl_db API, the goal being to eliminate the hard dependency of fsl_cx in fsl_db internals. This compiles but is untested (not counting this commit, which will do at least a minimal test) but other matters require attention so this is being stashed for later development. file: [8414a88c9d] check-in: [1c4ec95d75] user: stephan branch: db-hooks, size: 71559
11:22
Rework the tags to support both ctags and etags. Use the --etags and/or --ctags configure flag to opt in to tags generation. They're off by default because they can be slow and aren't commonly used. file: [3b8dd12bd8] check-in: [ec5d660e8f] user: stephan branch: trunk, size: 70557
2024-09-02
03:05
Do a better job of determining the default fossil user name, first extracting it from the checkout (if available), then the repo (if available), then the environment. Automatically do this when opening a repo and/or checkout and clear the name when the SCM dbs are closed. file: [9a71aac8fa] check-in: [20e4e80b87] user: stephan branch: trunk, size: 70558
2024-06-20
11:01
Correct lookup of the checkout db file in fsl_ckout_db_search() when checkParentDirs is false. It was aborting the loop prematurely, before checking all db file name options. file: [caaa3926f8] check-in: [f0a970b0dc] user: stephan branch: trunk, size: 70425
2024-04-16
08:21
Gotta tap save before checking in. file: [19ffdbf5ce] check-in: [2efbe19541] user: stephan branch: sqlite-see, size: 70220
08:07
Add support for binary-format SEE keys. file: [fa62284c87] check-in: [b35914490e] user: stephan branch: sqlite-see, size: 70213
07:02
Add support for --see-textkey to fcli. file: [1d2e32e481] check-in: [fe27725d07] user: stephan branch: sqlite-see, size: 69586
06:06
More work on adding library-level SEE support. It seems to basically work but it's not complete. file: [9f4d79135c] check-in: [3d4d0d3a05] user: stephan branch: sqlite-see, size: 69550
2024-02-03
16:18
More tinkering with the SEE integration, but this reveals that we have to(?), for portability's sake, limit encryption to repositories and checkouts, and keep the global config from being encrypted (else we risk breaking fossil(1)'s use of the config db). It also begs the question of whether arbitrary databases opened via the fossil API should get this support (which would require a different API, as the db API can be used without a fsl_cx object). file: [64d1fcdb6f] check-in: [f226dbd76a] user: stephan branch: sqlite-see, size: 68162
2023-04-19
02:26
Apply a set of missing f(void) and assigned-but-unused vars from Mark J. file: [654642bff4] check-in: [b96f5840ea] user: stephan branch: no-common-ancestor, size: 67922
2023-02-02
10:04
Correct FTS index check handling and ensure the cached value of the check is invalidated on open/close of the repo. file: [ffa0794a43] check-in: [8f60ec4138] user: stephan branch: trunk, size: 67918
2022-07-31
21:16
Removed some extraneous is-NULL checks. Minor internal cleanups in error reporting. file: [023d54dfe1] check-in: [53f847261b] user: stephan branch: buffer-errcode, size: 67860
2022-06-06
06:08
Converted an assertion to a proper error check. Triggered when trying to fetch the checkout version from a checkout where the repo db is not accessible. file: [7bec61371a] check-in: [eeb3a1b2af] user: stephan branch: trunk, size: 67979
2022-05-14
07:50
Ported over Windows impl of fsl_config_global_preferred_name(), but it's untested (even for compilability) for lack of a Windows intallation. file: [39c0063991] check-in: [46ffac840d] user: stephan branch: trunk, size: 67978
2022-04-09
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: [c3a633c511] check-in: [84154036a0] user: stephan branch: trunk, size: 67189
2022-03-08
07:00
Do not clear fsl_cx error state in fsl__ckout_version_fetch(), as that can lead to a rollback eliminating any pending error message. file: [7cb931fac9] check-in: [0a11ddd8bc] user: stephan branch: trunk, size: 67017
2022-01-20
09:38
Replace calls to the deprecated fsl_ckout_close(f) routine. Replace with fsl_close_scm_dbs(f). file: [ee76c3ba3c] check-in: [f876a65bef] user: mark branch: trunk, size: 67040
2022-01-03
19:38
Added a "hard cached" fsl_stmt for fsl_content_blob(), shaving a few allocs and a small bit of memory from a rebuild. file: [9725aed1e9] check-in: [a7de183cd0] user: stephan branch: trunk, size: 67038
2022-01-01
14:58
More work on the db handle redux. Seems to work okay. file: [280358a08c] check-in: [71f5f09817] user: stephan branch: cx-db-handle-reorg-redux, size: 67017
13:34
fsl_cx db handle reorg redux, step one. Significantly simplifies how dbs are closed, always treating them as an inseparable pair. Basic sanity checks pass, but more testing is needed and lots of docs to update. file: [c74600de82] check-in: [fa7c56d0ca] user: stephan branch: cx-db-handle-reorg-redux, size: 70150
11:15
Renaming of some internal fsl_xyz... APIs to fsl__xyz... (two underscores). Minor constness tweaks. file: [9c32ffd956] check-in: [736abef2cc] user: stephan branch: trunk, size: 66301
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: [72a9dd3873] check-in: [ac15c8d1d4] user: stephan branch: trunk, size: 66182
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: [6bda6e7d74] check-in: [51d4b05f5c] user: stephan branch: trunk, size: 66169
2021-12-31
22:19
Ported over more general-purposes pieces from the cx-db-handle-reorg branch in prep for taking a fresh whack at that. file: [d846dc923a] check-in: [39645644a7] user: stephan branch: trunk, size: 66339
21:54
Cherrypicked [6f2027aeb4], [74964a09a5], and part of [d290f6375c]. file: [b3f34fe3db] check-in: [211eaecfcf] user: stephan branch: trunk, size: 66206
21:30
Extended fsl__cx_attach_role() to be able to create a new db if needed (required for fsl_repo_create()) but (regardless of this change) discovered that ATTACH, when run through the new fsl_cx::dbMain handle, can no longer create new db files, which means that f-open cannot create a checkout. COMPLETELY stumped as to why that is. Edit: closing because this branch is failing in inexplicable ways and has a horrid mix of branch-relevant and branch-irrelevant changes. Pulling in the branch-irrelevant ones separately into trunk before taking another whack at the branch-relevant ones. file: [6731abda51] check-in: [a67b757dc0] user: stephan branch: cx-db-handle-reorg, size: 66890
15:10
Renamed fsl_db_role_label() to fsl_db_role_name(). Doc touchups related to the db handle restructuring. file: [23e774babc] check-in: [d290f6375c] user: stephan branch: cx-db-handle-reorg, size: 66426
15:00
fsl_ckout_open_dir() now treats a NULL dir name as ".". Updated C++ and s2 bindings for the new db changes. file: [996595d951] check-in: [05c1da0fb0] user: stephan branch: cx-db-handle-reorg, size: 66474
13:29
Eliminated fsl_cx::dbMem in-memory/temp db and (again) use the first of the repo/ckout dbs which is opened as the MAIN db (aliasing it to its well-defined libf schema name). This has a high potential for fallout, so it's in a branch pending more thorough testing. file: [bf7adc06f4] check-in: [aebf241ab5] user: stephan branch: cx-db-handle-reorg, size: 66393
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: [d81c7a80dc] check-in: [1d7a6d2b96] user: stephan branch: trunk, size: 66212
2021-12-27
15:00
When performing a fsl_db rollback, clear the associated fsl_cx's manifest- and blob-content caches in order to ensure that they do not contain any RIDs which are part of the being-rolled-back transaction. Remove fsl_cx::cache::deltaIds as it was determined that the recursion involving that cache could have broken things (but, rather curiously, had not done so thus far). Might want to revisit that cache someday and account for the new effective tail of the array on each recursion. file: [9b9403fcf7] check-in: [35dca27909] user: stephan branch: trunk, size: 65946
2021-12-21
20:21
Removed the fossil- name prefix from include/fossil-scm/*.h. file: [bad17f52d5] check-in: [43a9bea8d5] user: stephan branch: trunk, size: 65989
2021-12-14
15:52
More work on the merge port and adjacent code. file: [bc3d5e0bd9] check-in: [b9c2a05cfe] user: stephan branch: trunk, size: 66017
08:55
Ported in a variant of the temp-filename generation bits from fossil because it's needed for the next merge steps. file: [4326862adc] check-in: [dd3acff665] user: stephan branch: trunk, size: 65473
05:23
More work on the merge API port. Still lots to do. file: [1fa98b0fb9] check-in: [7d626b574d] user: stephan branch: trunk, size: 65325
2021-12-04
07:39
Internal restructuring of crosslink callback handling, such that registered listeners are called at a later phase for ticket artifacts. This should allow client-side listeners to overwrite timeline entries for tickets without too much hassle (that wasn't possible at all before this change). file: [5d7ea6e132] check-in: [8349911eb6] user: stephan branch: trunk, size: 65094
06:36
(Finally) implemented ticket crosslinking. file: [d11c2f1597] check-in: [d8e8c16cc4] user: stephan branch: trunk, size: 65092
2021-12-03
06:23
Moved most of the fsl_cx-specific code out of fsl_db and into the new src/udf.c. file: [4b1ff85564] check-in: [84a59c6833] user: stephan branch: trunk, size: 65027
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: [40e3153464] check-in: [76d7f8f4eb] user: stephan branch: trunk, size: 64011
2021-11-30
15:43
Added fsl__cx_clear_cached_stmt() to forcibly clear ALL cached fsl_stmt handles held by a fsl_cx and use that from fsl_repo_rebuild() to ensure that the cache is cleared before beginning work. This is a hypothetical/proactive fix for a problem which has not yet been seen in the wild but seems very likely, given recent locking issues reported by Mark. Branching this for now because i cannot reproduce similar locking problems which fsl_repo_rebuild() should hypothetically trigger without this addition. file: [997b4ff4fd] check-in: [f9d39435cf] user: stephan branch: clear-cached-stmt, size: 64383
2021-11-23
03:27
Improved fsl_reserved_fn_check()'s handling of the manifest setting. Added fsl_reserved_fn_check() to f-ciwoco. Made wet-run the default in f-ciwoco. Replaced some magic values with their corresponding enum entry references. Removed a long-since-implemented TODO note. file: [3b693e3745] check-in: [09094cea7b] user: stephan branch: trunk, size: 63914
2021-11-20
17:43
Reworked how the caching is handled for several of the very-frequently-prepared SQL statements, cutting the fsl_repo_rebuild() time by more than half (within 100ms of fossil's own speed, with the minor caveat that we don't yet rebuild tickets). A non-debug build of f-rebuild can now rebuild this repo in 900-odd milliseconds, and a debug build in roughly twice that. A non-debug build can rebuild fossil's own repo in 44s, down from 111s (but still almost twice what fossil itself needs). Edit: LOL, it turns out that the tremendous speed was due to a bug fixed in [3e2c083d8014a0fa]. Now it's back to approximately the speed it was before this checkin. Oh, well. file: [19710aa69a] check-in: [9f3a868d35] user: stephan branch: trunk, size: 63791
15:02
Cut number of rebuild allocations by another 15k via refactoring of fsl_buffer_uncompress() to be smarter about reusing the output buffer's memory, plus much more modest gains via addition of a cached buffer for building and applying deltas. file: [40649f5bf6] check-in: [88757e5411] user: stephan branch: trunk, size: 63625
12:09
Shaved another 11.5k allocations off of rebuild (of the libfossil repo) by caching the chain of blob delta children IDs and applying the external buffer approach to fsl_content_blob()'s pre-uncompress result. file: [4e082ead11] check-in: [e9d92f12a6] user: stephan branch: trunk, size: 63539
2021-11-19
09:40
Added some of the missing bits for crosslinking tickets. Still more to do, though. file: [7e8c0416da] check-in: [94e7cd6207] user: stephan branch: trunk, size: 63503
2021-11-18
18:03
Tighten up the interruption flag handling and fcli's inclusion (or not) of sigaction(). file: [50dfc42ea8] check-in: [2c0147b596] user: stephan branch: trunk, size: 63500
17:40
Proof-of-concept handling of SIGINT via fsl_cx_interrupt() by way of fcli. Currently only honored by fsl_repo_rebuild() but "should" eventually be honored by any unusually-long-running operations. file: [b66d3a49d2] check-in: [2a405470c0] user: stephan branch: trunk, size: 63475
16:10
Diverse minor internal cleanups. file: [961c8e8fd7] check-in: [c46efd6b8d] user: stephan branch: trunk, size: 63136
15:04
f-rebuild seems to work but needs more testing before moving it into the library. file: [92c0266609] check-in: [45126ee491] user: stephan branch: trunk, size: 63129
13:47
Added an is-interrupted flag for fsl_cx as a way to interrupt long-running operations but it is not yet being applied anywhere. file: [3d8f31f61b] check-in: [74aab40d54] user: stephan branch: trunk, size: 63128
09:04
Internal API renaming: fsl__acache ==> fsl__bccache. file: [c1c0c692f8] check-in: [7aaf02031e] user: stephan branch: trunk, size: 62653
07:58
More work on fsl_repo_rebuild(). It seems to work, with the caveat that ticket crosslinking is mostly unimplemented (and will remain so for the foreseeable future), but it's dog, dog slow (about 1/10th of fossil's speed). Needs more testing before moving from f-rebuild.c into the library. file: [1098683902] check-in: [ae8d020e4f] user: stephan branch: trunk, size: 62645
2021-11-11
09:49
Fixed two semi-incorrect compiler warnings about potentially (but not) uninitialized vars. file: [109eb87bfa] check-in: [000005d8be] user: stephan branch: trunk, size: 62096
2021-11-10
03:53
When detaching a db from a fsl_cx, only clear the it-is-attached state if detaching succeeds. file: [9b97063de4] check-in: [66923b26f0] user: stephan branch: trunk, size: 62092
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: [8ce33a4f20] check-in: [3bff6eddc1] user: stephan branch: trunk, size: 61730
12:44
Removed incorrect if() blocks which caused repo/ckout/config db strings to not get cleared in some cases. file: [c0c53588f8] check-in: [09a6b48de5] user: stephan branch: trunk, size: 61708
11:48
When detaching a db role, finalize any cached statements which are known (or believed) to be mapped to that role to avoid that detaching fails due to a lock held by opened statements. file: [53b6a23802] check-in: [d00587179e] user: stephan branch: trunk, size: 61738
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: [486030a1cb] check-in: [4e81e07c57] user: stephan branch: trunk, size: 61247
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: [34d26417a5] check-in: [83917b7b45] user: stephan branch: trunk, size: 61205
14:09
Further tweaking of buffer memory ownership for fsl_deck_parse(). Minor adjacent tweaking. file: [3976bb7e85] check-in: [7948748ba0] user: stephan branch: trunk, size: 61105
00:21
More work on rebuild and adjacent code. Removed 'restrict' keyword from fsl_strlcpy() and fsl_strlcat() because they break in C++ compilation mode. Renamed fsl_guess_user_name() to fsl_user_name_guess() (consistency) and added fsl_cx_user_guess(). file: [6621fedd7c] check-in: [3bcb631b4f] user: stephan branch: trunk, size: 60954
2021-11-01
21:44
Updated fsl_cx_uplift_db_error2() docs to match its semantics. Removed some superfluous is-NULL-arg checks. file: [63685bb5ae] check-in: [b4d072b53b] user: stephan branch: trunk, size: 60672
21:25
More work on f-rebuild and related crosslinking bits. file: [fd9fc0d7af] check-in: [8c51e45f8f] user: stephan branch: trunk, size: 60606
2021-10-21
10:04
Insignificant internal tweaks. file: [1bffb92075] check-in: [65ae37ae14] user: stephan branch: trunk, size: 60637
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: [bdad227572] check-in: [1dc391289c] user: stephan branch: remove-deck-uuid, size: 60581
2021-10-19
10:03
Doc updates and minor internal code reorgs. file: [b41ab6312a] check-in: [9542202a90] user: stephan branch: trunk, size: 60578
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: [c0986e0c77] check-in: [496acd50a1] user: stephan branch: trunk, size: 59819
03:54
Doc and constness updates. Removed the old code related to the long-obsolete open-or-attach mode of fsl_cx db handle management, now using only the attach mode. file: [ce9d99274b] check-in: [386039e135] user: stephan branch: trunk, size: 58669
2021-10-18
12:07
Changed signature of fsl_db_close() to return void. Removed some dead code. file: [972c35fd80] check-in: [0c32e3185e] user: stephan branch: trunk, size: 66893
2021-10-17
10:38
Added variants of fsl_cx_exec() (fsl_db_exec() proxy) and changed error propagation semantics of fsl_cx_prepare() to be more useful. file: [38bb4e572e] check-in: [9abdf965ac] user: stephan branch: port-merge, size: 67870
2021-10-13
09:51
Changed return semantics of fsl_cx_flag_set(). Seems more useful this way. file: [ecefe52483] check-in: [d509da4728] user: stephan branch: trunk, size: 67011
09:42
Simplified fsl_outputer by removing one level of indirection, replacing its state member (of type fsl_state) with a simple void pointer. The older level of indirection has never proven to be useful. file: [f336c5d622] check-in: [4bc926851e] user: stephan branch: trunk, size: 66978
2021-10-09
07:54
Minor diff API renaming. f-vdiff now accepts filename arguments as well as globs. Added fsl_cx_has_ckout(). file: [f310b2dab0] check-in: [78e6f53d8a] user: stephan branch: trunk, size: 67595
2021-10-08
21:51
Moved from code from f-vdiff into the public API. Several fixes in f-vdiff. file: [7a142abb26] check-in: [39180d2fe8] user: stephan branch: trunk, size: 67505
03:15
Added an #if to protect a var made unused by the previous checkin. file: [3c985304c3] check-in: [acbd39275f] user: stephan branch: trunk, size: 67471
02:58
Build: delay build of libfossil.c/h/o until needed. Disabled inclusion of the as-yet-unused regexp sqlite3 module because of mysterious link errors triggered by the build reordering. file: [4a77d02f3d] check-in: [a5fa64f558] user: stephan branch: trunk, size: 67434
2021-10-06
21:23
Initial port of annotate/praise op is working but final results differ considerably from fossil's, so leaving it in a branch for now. The selected range of versions match, but the end results do not. file: [6300b7d902] check-in: [150bb5b77c] user: stephan branch: port-annotate, size: 67263
16:18
fsl_ckout_fingerprint_check() now returns 0 if no checkout is opened. file: [aecd544267] check-in: [1fb9a31f45] user: stephan branch: trunk, size: 67060
2021-10-02
18:12
More work on the annotate interface, plus far too many nearby-yet-unrelated tweaks such as costness changes. file: [7f7d8a4fd6] check-in: [b601f20cff] user: stephan branch: trunk, size: 67077
2021-08-24
18:55
Removed a senseless result code check. file: [3c3f5f5d31] check-in: [5209050f47] user: stephan branch: trunk, size: 67016
18:31
Per /chat discussion, refactored [043c2667c95e] to internally fall back to the v0 fingerprint check, instead of exposing that as part of the API. Resolved libfossil.{c,h} build deps bug. file: [fdeba638e1] check-in: [15c135de66] user: stephan branch: trunk, size: 67022
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: [a8075f9902] check-in: [043c2667c9] user: mark branch: trunk, size: 67149
2021-08-05
15:44
Another build-fix to account for a recently-removed file. file: [acdea53387] check-in: [23a5d44c08] user: stephan branch: trunk, size: 66999
2021-04-16
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: [5280ada955] check-in: [8c9cf48702] user: stephan branch: trunk, size: 67040
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: [3fa9f73b6f] check-in: [755c059371] user: stephan branch: trunk, size: 65651
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: [6fe5ea3f4a] check-in: [7501bb92f9] user: stephan branch: trunk, size: 65649
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: [f27d29aa85] check-in: [ea6074b8ad] user: stephan branch: trunk, size: 65648
2021-04-13
13:20
Fixed a broken assert() in fsl_ckout_manage() when current rid==0. Fixed duplicate mlink entries for an initial commit with no parent. Finally realized that the dbs cannot be detached when a transaction is pending and adjusted the fsl_cx db-close interfaces to be able to report that. Started work on a demo app which creates and populates a repo without using a checkout, but it's incomplete - got sidetracked chasing down those bugs. file: [0f74d522bc] check-in: [fcdeddd18a] user: stephan branch: deck-reworking, size: 65486
2021-03-26
20:00
Added a flag to enable/disable the fsl_cx manifest cache. f-parseparty now uses that flag and now clears out the leaf table before re-crosslinking checkins (noting that crosslinking checkins without crosslinking tags may lead to different leaf list results). file: [8195f4e405] check-in: [1da8255567] user: stephan branch: manifest-cache, size: 65077
08:00
Minor cleanups. file: [04e39497cc] check-in: [c60d9b4435] user: stephan branch: manifest-cache, size: 65125
07:17
Initial go at a manifest cache similar to fossil's, except that we don't use malloc'd fsl_deck instances. This shaves almost a full second off of (f-parseparty -t c -c -q) and has a hit rate of almost exactly 1 in 3 during that party, but it now accounts for more than half of sizeof(fsl_cx). file: [87dedc2f01] check-in: [6bb1262768] user: stephan branch: manifest-cache, size: 65018
2021-03-24
08:33
Doc updates, some char-to-bool API signature updates, and renamed a deeply internal API func. file: [236280cc98] check-in: [6a6b5d1e43] user: stephan branch: trunk, size: 64982
06:23
Refactored the remove-empty-dirs APIs a bit. Revert now tries to remove empty dirs of renames. Fixed path handling in revert - was using relative paths which only worked from the top of the tree. Added missing outer transaction in f-revert which could cause a failed revert to leave vfile in a partially-reverted state. file: [40638a8926] check-in: [62c2d986fb] user: stephan branch: trunk, size: 64979
2021-03-22
17:54
Added fsl_ckout_manifest_setting(). fsl_reserved_fn_check() now honors the various manifest files as being forbidden for addition into the repo (but will allow them if they're already in the vfile table). Swapped 2 params in fsl_ckout_file_add_f() signature. file: [30f03afa67] check-in: [2c4a018200] user: stephan branch: trunk, size: 62315
13:45
Added f-revert, analog to (fossil revert). Fixed f-rm to handle the filename '.' sensibly. Numerous tweaks in adjacent code along the way. file: [0e81ab3ee3] check-in: [8cc33e4e8a] user: stephan branch: trunk, size: 61093
2021-03-20
05:08
Experimentally doing fsl_ckout_manifest_write() from fsl_ckout_version_write(). file: [b4051bd9a2] check-in: [ac3204cf35] user: stephan branch: trunk, size: 60884
04:19
Several cleanups in/around open/checkout/checkin. file: [ad80b7cfc5] check-in: [2c56bac8e2] user: stephan branch: trunk, size: 60775
2021-03-19
10:01
fsl_ckout_manifest_write() now deletes the manifest files which it does not create unless they are part of the current checkout. More work on/towards the update op. file: [a48ce3e460] check-in: [9d86e51a31] user: stephan branch: trunk, size: 60518
05:19
Added fsl_ckout_write_manifest() to optionally write out the (manifest, manifest.uuid, manifest.tags) files for a checkout. fsl_ckout_calc_update_version(): removed the preferLatest parameter and it now reports the list of ambiguous candidates in its error string. file: [407bc5e4f8] check-in: [07fd8c1f33] user: stephan branch: trunk, size: 60521
2021-03-18
23:36
f-update can now figure out which version to update to, but... baby steps. file: [139546292d] check-in: [7a11d37185] user: stephan branch: trunk, size: 60160
16:30
Doc clarifications. Removed an unnecessary fsl_strlen() call to fetch a length we already had. file: [b4ca6049a6] check-in: [f3e995febf] user: stephan branch: trunk, size: 59973
2021-03-17
00:29
Minor internal doc tweaks. file: [a4e65d5bf6] check-in: [9f11809db4] user: stephan branch: trunk, size: 59972
00:15
Removed an extraneous parameter from a few functions. Stopped senselessly checking for NULL fsl_cx arg in fsl_ckout_version_info(). file: [5a6ca6b2d8] check-in: [8c212df490] user: stephan branch: trunk, size: 59967
2021-03-15
18:50
Considerable refactoring in/around fsl_repo_open_ckout() to move some of the functionality of f-open into the library and some into fcli. file: [2b349e5a52] check-in: [15425f1d4c] user: stephan branch: trunk, size: 60944
12:12
Swapped order of 2 parameters to fsl_confirm_callback_f - just seems more consistent that way. file: [7425d79de8] check-in: [26191854cd] user: stephan branch: trunk, size: 65327
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: [b2dd722b4f] check-in: [ccc0fef970] user: stephan branch: trunk, size: 65327
04:25
Globally renamed _checkout to _ckout, as some of these names are getting a bit long. file: [0ba480bf78] check-in: [bc9e88ee2c] user: stephan branch: trunk, size: 65215
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: [ac216edadb] check-in: [e81048d148] user: stephan branch: trunk, size: 65389
01:09
Swapped out f-s2sh's shell.c with shell2.c (s2sh2 instead of s2sh classic). file: [5820f3ff4a] check-in: [e20cc9720f] user: stephan branch: trunk, size: 65317
2021-03-12
19:31
The hashing routines were responsible for the unexpected buffer resizing, as they were explicitly resizing their output buffers to fit. file: [5f4d9aee2a] check-in: [06f5974d60] user: stephan branch: cx-scratchpad-rework, size: 65087
17:28
Added a new file which had gotten lost in local stash saves/pops. Removed now-incorrect assert(). file: [837e7f6535] check-in: [4b0a66807f] user: stephan branch: cx-scratchpad-rework, size: 64955
17:26
Completely reworked how fsl_cx manages scratch buffers but it's leading, rather inexplicably, to double the number of allocs and memory use in f-sanity. Checking in due to paranoia of losing this work. file: [a6e2e9886c] check-in: [01c1cff578] user: stephan branch: cx-scratchpad-rework, size: 65148
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: [1cf2042ed7] check-in: [fd313baef4] user: stephan branch: trunk, size: 61067
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: [48eeef4d63] check-in: [61d3e64e6f] user: stephan branch: trunk, size: 60776
2021-03-10
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: [4e73083100] check-in: [c1199e807f] user: stephan branch: trunk, size: 60784
2021-03-09
06:01
Minor confirmer cleanups and docs. file: [c166c551c9] check-in: [d58d30707f] user: stephan branch: confirmer-co, size: 60761
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: [f687a2565e] check-in: [ed0fa2b56a] user: stephan branch: confirmer-co, size: 60663
00:13
Minor tweaks of the confirmer bits. file: [452a34c7fd] check-in: [13fb58bfdd] user: stephan branch: confirmer-co, size: 60621
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: [b06e06ad9c] check-in: [735e9e32ab] user: stephan branch: confirmer-co, size: 60611
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: [e9a7842b56] check-in: [c8b25fe30f] user: stephan branch: trunk, size: 60603
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: [328eee4939] check-in: [9a6bb6834f] user: stephan branch: trunk, size: 60599
03:49
Internal tweaking of the removed-from-checkout file deletion bits. file: [d940573ee5] check-in: [3ebdc1dfba] user: stephan branch: trunk, size: 59681
2021-03-07
16:49
Minor internal cleanups. file: [1525dbac08] check-in: [7666cd3214] user: stephan branch: trunk, size: 59681
11:40
Removed dangling bits left over from the previous commit. file: [f54e1ad06f] check-in: [23a5dfe46a] user: stephan branch: trunk, size: 59405
2021-03-06
16:27
Improved handling of deleted-by-checkin files via fsl_repo_checkout() and their reporting via f-co. file: [bf32f4a153] check-in: [038cd076ae] user: stephan branch: trunk, size: 60748
2021-03-05
04:29
More tinkering with the f-co/f-open-related infrastructure. file: [5d124165ab] check-in: [13194b49eb] user: stephan branch: trunk, size: 60681
00:07
Got f-co working, but am not sure that the --keep semantics are useful. More refactoring in/around f-open and f-co. file: [98807194a9] check-in: [eeb7706e6e] user: stephan branch: trunk, size: 60896
2021-03-04
21:07
Started factoring the extract-to-checkout code from f-open into lib-level fsl_repo_checkout(). This loses a feature or two which will have to be reworked into the lib API but it seems to work. file: [bf6cf5a975] check-in: [5fd71c1b87] user: stephan branch: trunk, size: 60351
19:29
Renamed fsl_repo_open_opt to the unfortunately verbose fsl_repo_open_checkout_opt to avoid confusion about the options being for fsl_repo_open() (which they're not). Fixed chdir()-back behavior in fsl_repo_open_checkout() when opt->targetDir is NULL. file: [dd7a04c70a] check-in: [ea0bfdc56d] user: stephan branch: trunk, size: 60222
19:12
fsl_repo_open_checkout() now chdir's back to its starting directory. file: [dce6b64cbb] check-in: [fb7e54a710] user: stephan branch: trunk, size: 60088
19:06
Minor API tweaks. Corrected --setmtime handling of f-open (broken by my refactoring). file: [7c719b3b2f] check-in: [3e996ceab5] user: stephan branch: trunk, size: 59801
17:45
f-open: removed unnecessary content load and added some library-level functions to help streamline transaction handling. file: [370ada8280] check-in: [5c988bf424] user: stephan branch: trunk, size: 59732
14:27
Added FSL_RC_MISSING_INFO. Minor internal doc cleanups and API result value changes. Reworked how fsl_cx_hash_buffer() returns when its alternative hash option conflicts with the current hash policy. file: [e268f3de9f] check-in: [d1428d5a93] user: stephan branch: trunk, size: 59413
12:28
Numerous cleanups and fixes in/around the infrastructure used by f-open. file: [171941c8bb] check-in: [b67129bbb9] user: stephan branch: trunk, size: 58754
2021-03-03
09:27
When creating a new checkout db via fsl_repo_open_checkout() we write default checkout=0, checkout-hash=NULL values so that downstream code does not see this as a non-repo when it cannot find those. file: [092ebfb64d] check-in: [e8b25ce3bc] user: stephan branch: trunk, size: 57901
08:38
Lots of bending and hammering related to smoothing out f-open. There's still an issue when opening an empty checkout (it's seen as not a checkout by other apps), but that's on the to-fix list. file: [a0658da8ce] check-in: [2a04a6818c] user: stephan branch: trunk, size: 57140
2021-03-02
11:53
Replaced hard tabs. Fixed corrupted dir name (uninitialized var). file: [89299e3efa] check-in: [4216a1dcd3] user: stephan branch: open-ckout-wip, size: 54879
10:32
A round of minor cleanups in getting f-open working for me. Time for a break, though. file: [05ddeac6b4] check-in: [ba432bca3a] user: stephan branch: open-ckout-wip, size: 54880
09:48
Remove an unneeded(?) parameter from fsl_vfile_load_from_rid(). file: [0f563eeff9] check-in: [0ba7388df1] user: stephan branch: open-ckout-wip, size: 54879
09:18
Temporary workarounds for set-but-not-yet-used var warnings. file: [aab1790845] check-in: [06f1db287f] user: stephan branch: open-ckout-wip, size: 54872
08:49
Implement f-open and f-checkout roughly ported from db.c::cmd_open() and checkout.c::checkout_cmd() in Fossil using a draft implementation of the fsl_repo_open_checkout API designed by Stephan. This is a work in progress and is missing a few critical pieces but will open and checkout a given repository. Only tested on OpenBSD and macOS and may not work on Windows yet. file: [33799fc853] check-in: [4897fa7285] user: mark branch: open-ckout-wip, size: 54834
2021-03-01
16:21
Arguably a typo fix in the new header. Thank goodness for stream editors. file: [12a0d72723] check-in: [386316db07] user: stephan branch: trunk, size: 52556
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: [a8e3d9d795] check-in: [fa5fb24496] user: stephan branch: trunk, size: 52548
2021-02-27
05:17
Fixed checkin merge integration, hashing of decks when saving (was hard-coded to SHA1), and improved determination of which hash policy to use based on the hash-property config setting. file: [5cc06f0e41] check-in: [65b9309997] user: stephan branch: trunk, size: 52799
2021-02-26
06:03
Some doc touchups, enum renaming, and removed some dead code. file: [1847131085] check-in: [473fd8718c] user: stephan branch: trunk, size: 52354
2021-02-25
08:22
Some API renaming. Modified how fsl_deck_parse() determines the deck's RID/UUID. Introduced fsl_repo_blob_lookup(). file: [4f070776c5] check-in: [467b9e1c18] user: stephan branch: trunk, size: 52354
02:48
Removed some dead code. file: [dbd30a5150] check-in: [b024494e7e] user: stephan branch: trunk, size: 52358
2021-02-21
16:52
Ported in fsl_search_doc_touch() from fossil and call it at the appropriate points in the crosslinking steps, but it's disabled because one of the queries mysteriously fails with 'SQL logic error' when run from this context (but works fine in the fossil shell). Some more char-to-bool conversions. file: [ee64d8f951] check-in: [5a3d4bceb3] user: stephan branch: trunk, size: 52683
2021-02-15
03:24
Renamed src/fsl_cx.c → src/cx.c. Renamed src/fsl_XYZ.c to src/XYZ.c. f-checkin vfile dump now includes renames. file: [3fc5dbf6f7] check-in: [ed3183170a] user: stephan branch: trunk, size: 52725
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: [3fc5dbf6f7] check-in: [8837671e83] user: stephan branch: trunk, size: 52725
2021-02-14
01:38
Renamed fsl_tag_rid() to fsl_tag_an_rid() to help avoid confusion with fsl_tag_id(), which does something much different. Split the crosslinkers into core/timeline-update bits. Fixed a reallocation bug in the crosslink callback list. Added --crosslink option to f-parseparty. Enabled output of empty P-card on checkin manifests with no parents (initial checkin) to please f-mfparse tests (empty P's are harmless, just slightly unsightly). file: [b0454514e6] check-in: [63893e6c12] user: stephan branch: trunk, size: 51130
2021-02-13
21:49
Changed crosslink listener interface and started porting the parts which update the timeline into user-overrideable listeners, which will allow clients to 100% customize timeline content without having to deal with the rest of the crosslinking schema updates. Honor fossil's forbid-delta-manifests setting. Fixed fsl_deck_output() usage in f-apps, as called for by previous commit [ac9b034f79]. file: [2f220b876c] check-in: [911afa1bcc] user: stephan branch: trunk, size: 51102
13:03
Made the fsl_deck object in fsl_deck_output() and crosslink listeners non-const, the former to avoid forcing the client to do much up-front work and the latter because it's necessary for such code to be able to traverse F-cards. That had a bit of a rat's tail of side effects to clean up. Edit: reminder: this caused a sync problem because we added an attachment artifact file which is itself an export of an artifact from the db, leading to a unique constraint violation when pushing. Deleting the attachment table entries, syncing, then rebuilding, resolved it. Hopefully this duplicate artifact won't cause any similar downstream problems. file: [288ffac9a1] check-in: [ac9b034f79] user: stephan branch: trunk, size: 50825
2021-02-12
15:22
Implemented crosslink begin/end steps, minus still-pending ticket/wiki-specific features. Crosslinking wiki pages updated to use fossil's newer wiki timeline comment format and updated f-timeline to recognize it as well. file: [cfff70654e] check-in: [31c8bddf22] user: stephan branch: trunk, size: 50826
07:41
Header file reorgs. file: [d181214ac2] check-in: [c1681af460] user: stephan branch: trunk, size: 50620
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: [0c87731968] check-in: [dec0670fb2] user: stephan branch: trunk, size: 50506
2021-02-09
18:06
Fixed creation of new repository (fsl_repo_new() and f-new.c). Added checkin message mimetype to repo creation options. file: [79799a841b] check-in: [162d4ba4c8] user: stephan branch: trunk, size: 50249
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: [fcc25a4e8c] check-in: [631fb3f69a] user: stephan branch: trunk, size: 50082
2021-02-08
23:32
Added deck support for forum posts, except that crosslinking them is currently unimplemented (requires more infrastructure). file: [82392a3bc1] check-in: [b0ac77411e] user: stephan branch: sha3-port, size: 50040
20:35
Ported in more of the fossil(1) hashing-related infrastructure. file: [96e3a175ac] check-in: [033d78f03f] user: stephan branch: sha3-port, size: 49416
16:03
Baby steps towards dual sha1/sha3 support. This does not yet compile but i'm nervous about losing work done so far. It's been painless but tedious, which is not bad, all things considered. file: [6f6c5d1d8e] check-in: [240701a6ec] user: stephan branch: sha3-port, size: 47864
06:11
Fixed a swapped value check in fsl_cx_db_name_for_role(). file: [218918d9f0] check-in: [a6a15065e1] user: stephan branch: trunk, size: 47695
2021-02-07
14:31
Globally replaced http://... URLs with https://.... Most of them probably still work, too. file: [f6e181efa8] check-in: [6af7b3b7c8] user: stephan branch: trunk, size: 47695
2014-11-20
15:02
altered 'change notification' printf parameters from %x to %p in hopes of getting some 32/64 bit compatibility for cheap. We'll see if this works and if it's xplat.... file: [78841305c9] check-in: [1660df6669] user: dave branch: feech-VerSetVtblXtnCbk, size: 49085
2014-11-10
19:30
fix parsing bug for hex address; change notification order to be after creates/updates, and before deletes. inhibit 'dtor' notification for the time being; it seems to get invoked twice for some unknown reason (like sqlite has two copies of the vtable object, or something). file: [217bbfcf53] check-in: [e80ed55cdf] user: dave branch: feech-VerSetVtblXtnCbk, size: 48524
18:58
changed data separator for CHNGCBK to ':', because ',' would interfere with processing. added stub callback implementation in fsl_cx file: [078eb9c510] check-in: [a022b2905b] user: dave branch: feech-VerSetVtblXtnCbk, size: 48516
2014-11-08
10:30
added a few asserts. file: [28e95ea575] check-in: [8f17cf8228] user: stephan branch: trunk, size: 47694
10:01
minor error handling improvement. file: [71f0c541fd] check-in: [f837fcb4cc] user: stephan branch: trunk, size: 47604
2014-11-03
17:56
As discussed with Dave: moved the vtable/regex headers into src, as they are private impl details. Patched amalgamation build for this change. file: [c30c356db5] check-in: [cd9d570464] user: stephan branch: trunk, size: 47369
2014-10-28
13:50
recovered a lost change, enter/exit mutex properly, and cope with a sqlite auto-init glitch around the static mutex. file: [0e37bef1b2] check-in: [fb5b9d15f9] user: dave branch: trunk, size: 47391
08:48
merged in dave. reminder to selves: the merge initially elides some of the content dave previously merged from trunk, and we are not sure why (required manual merge intervention, despite not having any conflicts). file: [021ffcb988] check-in: [61233f6026] user: stephan branch: trunk, size: 47179
03:02
need stdlib.h for the unices file: [2d8bf10c11] check-in: [6e12a39c1a] user: dave branch: dave, size: 45899
02:14
merged in stephan's various changes file: [1bcd596904] check-in: [c2d7402366] user: dave branch: dave, size: 45878
2014-10-27
20:42
Switched from :memory: to "" (temp) DB for the main db, other minor cleanups. file: [900b71c593] check-in: [6c18a25f11] user: stephan branch: trunk, size: 45922
17:46
added atexit() call to sqlite3_reset_auto_extension() to silence valgrind. It is arguable to do this at the library level, but seems safe enough for the time being. file: [e576eeb02a] check-in: [1ac213d0b6] user: stephan branch: trunk, size: 45747
17:28
fsl_cx now (again) uses a ':memory:' DB as its 'main' and ATTACHes the repo/ckout/config to that one, to avoid locking problems Dave discovered with regards to attaching or opening a single DB file multiple times. Sanity tests work without changes and the s2 bindings required only assertion fixes, but probably needs some re-working of the 'db' property to account for the new, always-there handle. file: [889657e03c] check-in: [898c0acbff] user: stephan branch: trunk, size: 45547
2014-10-25
19:52
correct silly position of assert(); correct a comment; correct for sqlite3 not auto-initing around mutex code (for reasons unknown to me) file: [48a0dc3e85] check-in: [455133309f] user: dave branch: dave, size: 45713
18:46
previous idempotency with atomic inc/dec isn't really enough; the action being protected needs to be guarded as well. plus there were link issues on linux, the resolution of which is machine architecture specific, so I ditched that approach. file: [b23813b302] check-in: [1be04c571a] user: dave branch: dave, size: 45378
18:17
add atomic functions around refcounted init of sqlite extensions; unregister extensions when last one is freed file: [9100fbf611] check-in: [31a1e741ae] user: dave branch: dave, size: 45085
10:29
Replaced sqlite3_exec() calls with fsl_db_exec(). file: [b2c60942ab] check-in: [8f4b2c59c8] user: stephan branch: trunk, size: 44176
10:17
error handling cleanups and doc tweaks. file: [7e3092dff2] check-in: [f50b9815e8] user: stephan branch: trunk, size: 45017
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: [2047cde1c6] check-in: [8a439f91d5] user: stephan branch: trunk, size: 44369
09:43
error check fix after opening a checkout/repo db. file: [04f5dd9118] check-in: [116ad4ab7e] user: stephan branch: trunk, size: 42415
2014-10-23
05:05
can't use FSL_CKOUT_DIR() to coin the name of the versioned settings path, because sql evaluation is inhibited in the parameter list to a CREATE VIRTUAL TABLE, so I needed to coin the path manually. file: [5073ba212f] check-in: [7f14cc89a4] user: dave branch: feech-versionedsettingsupport, size: 44180
03:33
fix a few dreaded // comments file: [3b3604283f] check-in: [d4426ffe90] user: dave branch: feech-versionedsettingsupport, size: 43604
2014-10-22
21:48
first attempt at wiring in virtual tables for settings metadata and versioned setting support. Also, added an aliased column 'value' to 'default_value' for the settings metadata, to allow existing query scheme to work consistently with that table as well. file: [ef067231c0] check-in: [ddb939fd3f] user: dave branch: feech-versionedsettingsupport, size: 43594
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: [45ca21486d] check-in: [10f613f805] user: stephan branch: trunk, size: 42245
2014-07-24
17:02
doc/comment updates. file: [fd577975de] check-in: [c87df19c32] user: stephan branch: trunk, size: 41648
15:15
removed to bogus assert()s. file: [6fd437caef] check-in: [b8d182779d] user: stephan branch: trunk, size: 41226
15:00
a minor expansion on that last commit: now set db->name to the proper (role) name instead of "main". file: [99e0e18143] check-in: [f998037762] user: stephan branch: trunk, size: 41393
14:49
Eureka: Simon Slavin found a way to apply a concrete name to the main db. Seems to work. file: [75cac10969] check-in: [5abda43115] user: stephan branch: trunk, size: 41119
2014-06-22
02:25
typo file: [d1c1db9949] check-in: [b3c70a06b8] user: bch branch: trunk, size: 40800
2014-04-01
17:04
Minor milestone: f-vdiff basically works. Just need to add diff-vs-checkout support. Added fsl_isatty() b/c it is needed by a couple of apps (could alternately go in fcli). file: [749d8a5833] check-in: [ab6bf194c2] user: stephan branch: trunk, size: 40802
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: [f227a2dfe2] check-in: [48eec586a9] user: stephan branch: trunk, size: 40626
2014-03-28
21:33
All sorts of minor warning fixes revealed by compiling the amalgamation in Qt Creator. fsl_delta.c is not warning-free yet b/c my attempts to fix the signedness complaints have broken it. file: [dc72e9d7a0] check-in: [cb99e115a4] user: stephan branch: trunk, size: 40587
20:41
Fixed a broken assertion. file: [39a12a1514] check-in: [a227bb265b] user: stephan branch: trunk, size: 40524
19:45
fsl_checkin_commit() now works on an empty repo (version RID==0). file: [40e0be709e] check-in: [41f65654ce] user: stephan branch: trunk, size: 40522
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: [7d8cee241e] check-in: [aa8f7bd1be] user: stephan branch: trunk, size: 40307
2014-03-27
20:13
Added fsl_cx::cache::projectCode to store the project-code setting, needed for up-coming authentication-related hashing. file: [9a0424e6c6] check-in: [1b07ec684c] user: stephan branch: trunk, size: 38934
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: [283e3470ef] check-in: [7a0759a0a4] user: stephan branch: trunk, size: 38933
2014-03-20
20:46
Fixed a memleak in fsl_cx_init() when passed a client-fsl_cx_malloc()'d context instance. file: [8b7113f59a] check-in: [ab654844a0] user: stephan branch: trunk, size: 38021
19:21
Added the basic fsl::Context class. Some minor additions to the C API to support the C++ api a bit. Refactored fsl::Db so that it can proxy handles without taking over ownership (needed by the Context's 3 db handles). file: [554db56db4] check-in: [f9ff5a4b8d] user: stephan branch: trunk, size: 37890
2014-03-18
22:10
A long evening of minor generic cleanups. Added missing output support for Attachment artifacts. Still missing crosslinking support for them. file: [8782cee846] check-in: [0bf60903ea] user: stephan branch: trunk, size: 37475
2014-03-15
15:02
added a NULL guard. file: [3e04343e21] check-in: [3e6f247357] user: stephan branch: trunk, size: 37214
2014-03-14
14:25
a long morning of refactoring and cleanups. file: [9d020e252b] check-in: [c71f986d35] user: stephan branch: trunk, size: 37207
2014-03-13
15:39
Seems i forgot to check in last night, which caused an accidental fork today. Finally get to test f-checkin with a merge. Wish us luck... file: [312751013c] check-in: [bc0e000199] user: stephan branch: trunk, size: 36909
11:36
Make some files compile on MinGW. Ongoing. file: [0245c27e45] check-in: [7e5ca27c8c] user: jan.nijtmans branch: trunk, size: 36909
2014-03-12
19:44
Swaped fsl_checkout_version_info() arg order, for consistency. More work on the checkin bits. file: [c4cede490a] check-in: [ccb9a1e941] user: stephan branch: trunk, size: 36877
2014-03-09
16:19
Fixed some weirdness in fsl_checkout_open_dir(). file: [53bae02caf] check-in: [a675c3422b] user: stephan branch: trunk, size: 36877
2014-03-08
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: [4374d3e15d] check-in: [1a0ee6b693] user: stephan branch: trunk, size: 36828
12:35
more work on the checkin bits. file: [9ce4b4913f] check-in: [8fbda636dd] user: stephan branch: trunk, size: 36791
11:50
Started work on some internals needed for doing a checkin. file: [3b8e3d32e0] check-in: [c77b3cb7fb] user: stephan branch: trunk, size: 39437
2014-02-20
21:20
Expanded the db API and script bindings a bit. Unit test tweaks. file: [a03129302b] check-in: [d74cd1950d] user: stephan branch: trunk, size: 37463
2014-02-15
18:50
minor internal refactoring. file: [f3840d5df3] check-in: [27c4f25cc6] user: stephan branch: trunk, size: 37156
2014-02-14
19:45
fsl_cx now sets the SQL-level db name on its db instances, with the hopes that that can help solve some of the problems generating fully-db-qualified strings. file: [5aa5e56eb5] check-in: [8937e04c53] user: stephan branch: trunk, size: 37229
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: [cf4b1ea9aa] check-in: [a2cbd2e343] user: stephan branch: trunk, size: 36788
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: [795c6d621c] check-in: [2d81857ed2] user: stephan branch: trunk, size: 36788
2014-02-10
22:07
Some minor reworking of how fsl_cx::fsScratch is used/abused (a minor malloc() optimization). file: [6fc5be733b] check-in: [ae189b3dba] user: stephan branch: trunk, size: 36826
18:09
Some reworking of how trailing slashes are handled in fsl_checkout_filename_check(), fsl_cx_stat(), and friends. As a general rule, trailing slashes are kept if present because this vastly simplifies handling of input from the CLI, but is up for debate (or a flag parameter) because it will probably lead to workarounds later on. file: [c0c89cbff3] check-in: [5bf66bef9e] user: stephan branch: trunk, size: 36627
2014-02-08
15:26
fsl_cx_stat() now accepts a NULL fsl_fstat, analog to fsl_stat(). Minor doc fixes. file: [99fcff04db] check-in: [fb87e8ed7e] user: stephan branch: trunk, size: 36508
14:34
Re-did some of the APIs to allow (require!) the caller to specify whether to use the checkout dir or the current working dir as the root for filename canonicalization. Was needed to bring sanity to the file-add bits. file: [b92eceecaf] check-in: [1a0796075f] user: stephan branch: trunk, size: 36516
13:52
Initial implementation of the add-file op is working, but it has revealed a hole in the API vis-a-vis distinguishing cwd from ckout root in some contexts. PS: the file f-add.c was added using this API. file: [6ea7ff8778] check-in: [21f1db7f80] user: stephan branch: trunk, size: 36413
2014-02-06
22:09
Reworked fsl_file_canonical_name() to able to apply any arbitrary root prefix. Moved some code around, some of which, in hindsight, could not be moved. fsl_checkout_filename_check() now canonicalizes relative to the checkout root, not the cwd. Added fsl_deck_load_name(). Removed some __func__ references (portability concerns, possibly overblown). Added skeleton f-diff app. file: [92c4c43a3a] check-in: [19845c101c] user: stephan branch: trunk, size: 35792
17:56
changes fsl_cx::ckout::dir from a fsl_buffer to a (char*). file: [aae6f76691] check-in: [4873ba360f] user: stephan branch: trunk, size: 35859
17:26
Added fsl_confirm() family of functions for up-coming features. Fixed overwrite-repo in fsl_repo_create() (it previous didn't do anything useful). Changed how fsl_cx stores its default user name, and it now takes the default user name from a repo when opening it (where user.id==1). Other minor cleanups and tweaks. file: [5d3481edbd] check-in: [ebda4a36e3] user: stephan branch: trunk, size: 35806
2014-02-05
20:49
Replaced a couple gratuitous structs with (char *). Other minor tinkering. file: [d85f18a5d6] check-in: [a94b263ba1] user: stephan branch: trunk, size: 35450
2014-02-03
19:38
another round of minor internal tweaks. file: [28fbcfadde] check-in: [5a477d1471] user: stephan branch: trunk, size: 34950
2014-02-01
23:47
Fixed: fsl_repo_open_for_checkout() was failing for checkouts where 'repository' is stored as an absolute path. It now makes relative paths relative to the ckout root and uses absolute paths as-is. file: [688f248f75] check-in: [ba68a0b797] user: stephan branch: trunk, size: 35258
14:19
minor round of tinkering and refactoring. Moved fsl_config_xxx() decls into fossil-confdb.h. file: [380081b7eb] check-in: [ad2a0cb933] user: stephan branch: trunk, size: 34969
2014-01-31
23:57
Ported in a public domain strftime() impl, for potential use with the checkout-related functionality. Fixed a clang warning. file: [9c4dc176c1] check-in: [615b6d29bc] user: stephan branch: trunk, size: 34927
22:34
fsl_cx_stat() now accepts non-simple paths and runs them through fsl_checkout_filename_check(), which still has its unfortunate name. Added fsl_file_set_mtime(). file: [b5b8657d7b] check-in: [b991749bca] user: stephan branch: trunk, size: 34906
2014-01-30
21:43
fsl_stat() now accepts a NULL stat buffer. Internal refactoring of fsl_checkout_open_dir(). file: [7d323e4b47] check-in: [f082da6718] user: stephan branch: trunk, size: 34736
20:36
Re-thought/implemented fsl_repo_dir_names() to return all dir names when given an RID, use the checkout if rid==0, and all versions if rid is negative. Other minor refactoring/renaming. Fixed fsl_cx_filename_collation() to return the right string. file: [9f5d402607] check-in: [22ce993a61] user: stephan branch: trunk, size: 34285
2014-01-29
17:10
A number of minor tweaks (e.g. more cached statements), refactoring of fsl_cx internals. file: [2d509ed74f] check-in: [1d59e4291a] user: stephan branch: untested-tinkering, size: 34370
2014-01-28
22:43
some untested tinkering i need to back up. file: [372b04097e] check-in: [26374bba60] user: stephan branch: untested-tinkering, size: 33882
2014-01-26
17:04
Started adding support for 'selected' files. file: [d664743efa] check-in: [a50c5953d1] user: stephan branch: trunk, size: 32827
13:18
More tinkering with the config bits. fsl_config_open() can now initialize an empty db. Started adding basic f-config app. file: [42171efc56] check-in: [9e72b41cdc] user: stephan branch: trunk, size: 31963
11:31
More refactoring/consolidation of the disparate config-db APIs. file: [c61e64dbe6] check-in: [3551ebfb6b] user: stephan branch: trunk, size: 32016
10:33
refactoring and code consolidation. file: [92d63ae735] check-in: [e6654f2651] user: stephan branch: trunk, size: 31960
2013-09-19
16:03
minor docs and comments. file: [fbe1d2deb7] check-in: [35cd9d6c6c] user: stephan branch: trunk, size: 31596
2013-09-08
15:39
Lots of minor additions and tweaks, mainly in support of app-level code. file: [a84d38809c] check-in: [7bfbc3dba6] user: stephan branch: trunk, size: 31555
2013-09-07
12:23
more renaming and doc tweaks. file: [1708dedc3e] check-in: [3f79146785] user: stephan branch: trunk, size: 31058
11:58
another round of API renaming. file: [5bc42ba184] check-in: [200d1cd898] user: stephan branch: trunk, size: 31058
11:00
Another round of API renaming/shortening. Added fsl_cx_stat(). file: [a913dcb94e] check-in: [4bd2202448] user: stephan branch: trunk, size: 31002
2013-09-03
16:24
more work on the tickets bits (loading field list). file: [f2936179b5] check-in: [0e80952975] user: stephan branch: trunk, size: 30438
15:40
More ticket bits. Minor API tweaks. file: [fa78177e4b] check-in: [5a47293811] user: stephan branch: trunk, size: 30437
14:12
Started porting in some of the ticket-handling bits. Added lots more (truly unnecessary) card validation on deck output. Minor fixes. file: [0a41536f67] check-in: [8e88708563] user: stephan branch: trunk, size: 29997
2013-09-02
21:43
Started porting in vfile bits. Added fsl_needs_checkout(). fsl_XXX_close() now explicitly closes all other dbs if XXX is the current main db. file: [957580cc90] check-in: [7bb0a64e7e] user: stephan branch: trunk, size: 29946
18:01
fsl_cx::dirChkout now includes the trailing slash because v1's g.zLocalRoot does it that way (very possibly for a good reason) and this simplifies porting. file: [015e9a45bf] check-in: [1127674cc0] user: stephan branch: trunk, size: 29322
2013-09-01
12:29
minor cleanups/fixes in crosslink callback handling. file: [9fd5d9283e] check-in: [510aecf972] user: stephan branch: trunk, size: 29074
2013-08-30
18:26
consistency: s|fsl_cx_init_param|fsl_cx_init_opt|g file: [ed5c01e72a] check-in: [d155bafd28] user: stephan branch: trunk, size: 29046
2013-08-29
16:40
s/fsl_init_param/fsl_cx_init_param/ file: [f9a0dbab83] check-in: [c611b4e1a1] user: stephan branch: trunk, size: 29052
15:24
minor API renaming/shortening, doc additions, removed some dead code. file: [dabddca3bd] check-in: [135fb8b36c] user: stephan branch: trunk, size: 29043
2013-08-28
16:45
Creation of new repos is more or less finished. fossil(1) seems to be happy with them. file: [83c200f069] check-in: [859846313d] user: stephan branch: trunk, size: 29332
2013-08-27
19:55
Started work on creating a new repo. Several related minor cleanups and additions. Simplified a couple APIs. file: [ab6de56a2c] check-in: [184bdcf4a4] user: stephan branch: trunk, size: 28677
2013-08-25
18:01
added a name to the xlink callbacks, so that we have a mechanism we cau use to swap out specific ones. file: [fc84904efc] check-in: [e1a9699a62] user: stephan branch: trunk, size: 28981
14:15
First draft of artifact crosslink callbacks, to allow us to farm out the crosslinking work. file: [aa9ecf9e9b] check-in: [fb18a52241] user: stephan branch: trunk, size: 28509
2013-08-24
15:54
more wiki work file: [0143694a18] check-in: [7df0b1de78] user: stephan branch: trunk, size: 27266
2013-08-22
18:26
Ported in the "verify before commit" code, which ensures that all new content can be extracted from the db before it commits the transaction doing the adding. Fixed a memlink in fsl_repo_tag_symbol(). Added fsl_deck_save() and refactored fsl_repo_tag_rid() to use it. file: [7ffd7f9b87] check-in: [57107f6bd2] user: stephan branch: trunk, size: 27045
13:44
fsl_internal.h ==> fossil-internal.h file: [da9ec325ac] check-in: [2cae867331] user: stephan branch: trunk, size: 27005
2013-08-18
20:45
minor API renamings (consistency). file: [032967c075] check-in: [5a37f7d1f0] user: stephan branch: trunk, size: 27002
14:35
Split the code into some new files. Shortened fsl_cx_repo_xxx() and fsl_cx_checkout_xxx(), removing the _repo/_checkout part. file: [eacc684fd6] check-in: [2acbc2f85e] user: stephan branch: trunk, size: 26821
12:45
Extended fsl_fopen() to support '-' as an alias for stdin/stdout, added fsl_fclose(), changed all fsl_fopen() calls to use fsl_fclose() instead of fclose(). file: [911f7af9e2] check-in: [2cc00a131c] user: stephan branch: trunk, size: 25683
03:32
Fixed a bug in T-card parsing of the '*' special UUID. Added a couple workarounds for manifest #1, which violates the R- and P-card conventions laid out in the docs. Fixed a broken error check in fsl_repo_sym_to_uuid() which caused a statement to be left unfinalized (and a wrong result). file: [dde83dd2ae] check-in: [106aaf6898] user: stephan branch: trunk, size: 25717
01:31
Added deck baseline file iteration and reworked R-card calc to use it. Works for baselines but i am seeing a delta-application bug in a specific tcl commit, but it is not yet clear where my bug is there (the repo passes all integrity tests, so the bug is on my end). Added error-reporting forms of delta application routines. Started porting in some of the filename table funcs. file: [5b7eea34ad] check-in: [f94ea8a168] user: stephan branch: trunk, size: 25383
2013-08-17
19:48
another round of API renamings for consistency purposes. file: [ee61e7f742] check-in: [f0ceea7dd2] user: stephan branch: trunk, size: 24834
13:11
Added: Renamed some functions, started moving the fsl_cx-specific code into fsl_cx.c. Added fsl_fatal(). file: [8117fe9cb5] check-in: [cd522883eb] user: stephan branch: trunk, size: 24840