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 | |