Login
History of include/fossil-scm/fossil-repo.h of da6bcc64ba6f10e5
Login

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

History of file include/fossil-scm/fossil-repo.h at check-in da6bcc64ba6f10e5

2025-03-25
16:04
Add fsl_artifact_to_json() UDF. file: [1e1c2e4ee8] check-in: [2c5339b85c] user: stephan branch: artifact-to-json, size: 164000
15:37
Implement fsl_deck_to_json(). Corresponding UDF is still TODO. file: [ab51c4ad47] check-in: [9023ab840a] user: stephan branch: artifact-to-json, size: 163917
13:49
Initial work for porting over [fossil:/timeline?r=artifact-to-json]. The API skeleton is in place but the core to-json is not. file: [deb2cbf574] check-in: [0c7c6d665d] user: stephan branch: artifact-to-json, size: 163483
2024-09-24
21:13
Add --private flag to f-ci. It seems to work, too. file: [7fc31e5a25] check-in: [f511d7e632] user: stephan branch: trunk, size: 163275
18:22
Comment and doc cleanups. file: [a17b56ead2] check-in: [6c21831158] user: stephan branch: trunk, size: 163276
15:43
Extend fsl_mtime_of_manifest_file() to be able to return the mtime of any artifact type if given a file ID of 0 or less. Simplify its internal impl a bit. file: [47ce686b69] check-in: [71fbbe959b] user: stephan branch: trunk, size: 163106
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: [f108fb5032] check-in: [f226dbd76a] user: stephan branch: sqlite-see, size: 163007
2023-04-19
02:26
Apply a set of missing f(void) and assigned-but-unused vars from Mark J. file: [bc0f694141] check-in: [b96f5840ea] user: stephan branch: no-common-ancestor, size: 163008
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: [9279547009] check-in: [8f60ec4138] user: stephan branch: trunk, size: 162976
2022-10-18
13:50
Merge in trunk. file: [f466a0486e] check-in: [24a840f9cf] user: stephan branch: dev-blame-ignore, size: 163249
2022-06-27
07:03
Make sure that #defines for prototypical "empty" structs are complete. file: [1ba9292895] check-in: [029c225df6] user: bch branch: trunk, size: 162940
2022-05-12
10:37
Merged in trunk. file: [3eefa9b905] check-in: [1ba4514284] user: stephan branch: dev-blame-ignore, size: 163226
2022-04-21
10:58
Ported in [fossil:c92fb60ba9e1829a], which adds the "start:" prefix option for fsl_sym_to_rid() lookups. file: [dd54e85ce9] check-in: [bfd34748e6] user: stephan branch: trunk, size: 162917
2022-03-10
04:50
Minor constness tweaks and removed a superfluous NULL arg check. file: [e97a8849e5] check-in: [420a8985e1] user: stephan branch: trunk, size: 162554
2022-02-15
14:46
As per Stephan's suggestion in /chat, pluralise ignoreRid(s). file: [8ae7b18df7] check-in: [36b2799c8e] user: mark branch: dev-blame-ignore, size: 162843
14:33
Enable ignoring specific commits when annotating file. Add flag to annotate options struct to ignore all merge commits. Similarly, provide array to assign rid values of specific versions to ignore specified commits. If either are set, any changed lines from the ignored version(s) will be annotated from the previous commit in the file history. file: [863e57bbc4] check-in: [79fd090adb] user: mark branch: dev-blame-ignore, size: 162841
2022-02-04
14:22
Initial port of Fossil's files-of-checkin (foci) vtable. First pass of porting fossil(1) src/foci.c to libfossil; it's pretty much a 1:1 port using libf's ADTs. This builds, but the implementation isn't used anywhere so that's not a surprise. There is no test yet either, so branching this for further review. file: [e2547cddd0] check-in: [677d51061d] user: mark branch: wip-foci, size: 162646
2022-01-26
18:04
Corrected an argument type in fsl_branch_of_rid() which broke variadic arg handling in that function on platforms where fsl_int_t and fsl_id_t are different sizes. file: [f3df947e8b] check-in: [bcbfb21894] user: stephan branch: trunk, size: 162534
2022-01-08
05:45
Per /chat discussion, changed semantics of fsl_tkt_id_to_rids() to be able to handle an unambiguous ticket ID prefix. file: [028ca428a6] check-in: [2bdb6c668f] user: stephan branch: trunk, size: 162535
03:56
Replaced the fundamentally flawed fsl_tkt_id_to_blob() with fsl_tkt_id_to_rids(). file: [2f8a235ab5] check-in: [7b2cbb1669] user: stephan branch: trunk, size: 162469
2022-01-07
23:40
Added fsl_deck_foreach(). file: [29fcc514ad] check-in: [0741f4d194] user: stephan branch: trunk, size: 162413
19:06
Added fsl_tkt_id_to_blob() for Brad. file: [4c8929a6a2] check-in: [7d64642d36] user: stephan branch: trunk, size: 160680
06:28
reference fsl_deck_C_set() in comment-notes file: [06da371f8d] check-in: [70abc44543] user: bch branch: trunk, size: 159520
2022-01-04
22:02
Added fsl_randomness(). Changed fsl_deck_K_set() semantics such that a NULL ticket ID is interpreted as a new (random) ID. file: [03a2dccc9d] check-in: [896ea2a01b] user: stephan branch: trunk, size: 159495
21:38
Replaced a couple remaining char-as-bool references with bool. file: [db5dba5e19] check-in: [1ac20eeb41] user: stephan branch: trunk, size: 159331
03:08
ncurses diff view: add keybindings to jump to next/previous file in the diff list. file: [5c80a56c3a] check-in: [aa723e9a15] user: stephan branch: trunk, size: 159331
00:44
Minor doc tweaks. file: [c0398fa462] check-in: [a7861ad0da] user: stephan branch: trunk, size: 159324
2022-01-01
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: [24a30bb5f5] check-in: [fa7c56d0ca] user: stephan branch: cx-db-handle-reorg-redux, size: 159500
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: [741526d18e] check-in: [39645644a7] user: stephan branch: trunk, size: 160340
21:36
Cherrypicked [74964a09a5] (doxygen tag fix). file: [ecc59bcec2] check-in: [326482e519] user: stephan branch: trunk, size: 151869
15:50
Corrected names of several @file doxygen tags. file: [36abfe8112] check-in: [74964a09a5] user: stephan branch: cx-db-handle-reorg, size: 160375
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: [040e86209f] check-in: [aebf241ab5] user: stephan branch: cx-db-handle-reorg, size: 160382
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: [70a51d6fa5] check-in: [1d7a6d2b96] user: stephan branch: trunk, size: 151876
2021-12-23
07:01
Added fsl_cidiff() API and f-test-cidiff test app. file: [9ff248e289] check-in: [1c6aeaf5ce] user: stephan branch: trunk, size: 151858
2021-12-21
20:21
Renamed and modified include/fossil-scm/fossil-repo.h → include/fossil-scm/repo.h. Removed the fossil- name prefix from include/fossil-scm/*.h. file: [cad60b6d1a] check-in: [43a9bea8d5] user: stephan branch: trunk, size: 144274
2021-12-17
18:35
Minor constness tweaks. Added a note about how fsl_repo_rebuild() handles corruption such as that reported at [https://fossil-scm.org/forum/forumpost/f4cc31863179f843]. Removed a completed TODO comment. file: [55bc3c1b59] check-in: [9886240dfc] user: stephan branch: trunk, size: 144288
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: [d9fff671e2] check-in: [8349911eb6] user: stephan branch: trunk, size: 144275
06:36
(Finally) implemented ticket crosslinking. file: [0148302559] check-in: [d8e8c16cc4] user: stephan branch: trunk, size: 143352
2021-12-03
08:36
Minor internal cleanups and costness tweaks. file: [0ad93c481e] check-in: [8541d31570] user: stephan branch: trunk, size: 143322
2021-11-30
22:40
Changed several internal temp tables to use (create if not exists/delete) instead of (create/drop) in the hope of proactively avoiding locking issues. This will slightly increase long-term memory usage for certain long-running apps but should ease locking pains for those same apps. file: [4d5384cfc1] check-in: [cbaafebf22] user: stephan branch: trunk, size: 143174
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: [2c2e8cd3f6] check-in: [f9d39435cf] user: stephan branch: clear-cached-stmt, size: 143048
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: [1b6be62225] check-in: [09094cea7b] user: stephan branch: trunk, size: 143024
2021-11-22
05:31
Added f-extract tool, per suggestion in [https://fossil-scm.org/forum/forumpost/fcca51d3eb2757f7|fossil forum post fcca51d3eb2757f7]. file: [4763b442f9] check-in: [f7fdf3db10] user: stephan branch: trunk, size: 143004
2021-11-21
16:21
Moved fsl_branch_of_rid() into the public API. Added several new options to f-ciwoco. file: [1edd25c43d] check-in: [2b33b91772] user: stephan branch: trunk, size: 142992
14:23
Added initial versino of the f-ciwoco app. Several minor API tweaks, including changing semantics of NULL args to fsl_deck_save() and the return semantics of fcli_fax(). file: [4115cefeda] check-in: [618d1b864a] user: stephan branch: trunk, size: 141784
10:02
Constness tweaks. Added a fsl_is_simple_pathname() check to fsl_deck_F_set_content(). file: [c45143b2cf] check-in: [e45da773a8] user: stephan branch: trunk, size: 141269
04:26
Remove dated comment from the annotate API options doc. stephan@ implemented the timer-based limit option to the annotate operation in [35b8297bc34b]. file: [8d01407e71] check-in: [70ee710a3d] user: mark branch: trunk, size: 140779
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: [09eb9315c0] check-in: [9f3a868d35] user: stephan branch: trunk, size: 140945
16:17
Corrected wiki-listing queries to skip over tags named wiki-... which are not actually wiki pages. Constness cleanups. file: [118dc89107] check-in: [23c2d4d185] user: stephan branch: trunk, size: 140939
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: [20d922aa0b] check-in: [e9d92f12a6] user: stephan branch: trunk, size: 140909
2021-11-19
11:15
Tightented the lexical sorting check of T-tags in fsl_deck_parse2(). file: [4fb928733f] check-in: [710313321a] user: stephan branch: trunk, size: 140844
09:40
Added some of the missing bits for crosslinking tickets. Still more to do, though. file: [0adf18b6fd] check-in: [94e7cd6207] user: stephan branch: trunk, size: 140847
08:10
Diverse generic internal and doc cleanups. file: [cc8836d692] check-in: [06f92b7689] user: stephan branch: trunk, size: 140624
05:50
Moved fsl_repo_rebuild() into the public API and added some new state to fsl_rebuild_step and new metrics to f-rebuild. Rebuild adds a few more entries in the event table than fossil does (investigation is TODO) but otherwise seems to behave. file: [928b0e31df] check-in: [c389ae9908] user: stephan branch: trunk, size: 139170
2021-11-18
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: [af20a83bc6] check-in: [ae8d020e4f] user: stephan branch: trunk, size: 133303
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: [fe6131d3b5] check-in: [83917b7b45] user: stephan branch: trunk, size: 133275
14:09
Further tweaking of buffer memory ownership for fsl_deck_parse(). Minor adjacent tweaking. file: [d904eedeb7] check-in: [7948748ba0] user: stephan branch: trunk, size: 133270
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: [8d0d6bb376] check-in: [3bcb631b4f] user: stephan branch: trunk, size: 132896
2021-11-01
21:25
More work on f-rebuild and related crosslinking bits. file: [3aa8335f4d] check-in: [8c51e45f8f] user: stephan branch: trunk, size: 132192
2021-10-21
17:42
A pile of constness and char-as-bool tweaks in the db API. file: [0fbef644e4] check-in: [d571c6f692] user: stephan branch: trunk, size: 133747
16:28
Added a timer-based limit option to the annotate operation, much like fossil's, allowing the user to limit it to X milliseconds (CPU time) of work. Added f-annotate --ms flag to make use of this. file: [784189995f] check-in: [35b8297bc3] user: stephan branch: trunk, size: 133467
2021-10-20
14:26
Doc updates related to the removal of fsl_deck::uuid. Fixed a mismatched transaction start/end in one particular error case in fsl_deck_crosslink() (when loading baseline of a delta manifest failed). file: [32063af58f] check-in: [1742cabfde] user: stephan branch: trunk, size: 132781
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: [fcca0cda41] check-in: [1dc391289c] user: stephan branch: remove-deck-uuid, size: 132650
2021-10-19
10:03
Doc updates and minor internal code reorgs. file: [d9a17bbe00] check-in: [9542202a90] user: stephan branch: trunk, size: 131327
2021-10-18
14:03
Numerous minor doc and constness tweaks. Starting to use markdown formatting for API docs, now that it's been discovered that Doxygen can do that. file: [9be58a5674] check-in: [77e8ee40f8] user: stephan branch: trunk, size: 131197
2021-10-16
13:28
More work on porting over merge infrastructure. file: [4af5cd8a6e] check-in: [bc66e6a73a] user: stephan branch: trunk, size: 131225
12:09
More work on the merge operation infrastructure. file: [e562946574] check-in: [a6b6f083cb] user: stephan branch: trunk, size: 130925
2021-10-14
07:06
Replaced fsl_annotate_step::ymd (string) with fsl_annotate_step::mtime (Julian Day) and moved its formatting into the client-specified callback. This saves one allocation per version in an annotation and frees the user to use whatever time precision they care to. file: [2be7972ded] check-in: [8e98360ec3] user: stephan branch: trunk, size: 130919
02:17
Extended fsl_annotate_step interface with a stepType member to tell the callee what type of annotation step is happening. Changed semantics of fsl_annotate_step::stepNumber. Added more annotation docs. file: [2695ec96fe] check-in: [be38221c82] user: stephan branch: trunk, size: 131432
2021-10-13
09:58
Renamed fsl_annotate_step_f_output_f() to fsl_annotate_step_f_fossilesque(). file: [f26f199e1e] check-in: [7e9f766bc5] user: stephan branch: trunk, size: 130142
09:35
Initial implementation of a new callback interface for fsl_annotate() which moves the burnden of formatting to the caller (with an implementation provided which formats like fossil does). file: [08866d5495] check-in: [24bc694bf8] user: stephan branch: trunk, size: 130116
2021-10-08
21:51
Moved from code from f-vdiff into the public API. Several fixes in f-vdiff. file: [ee4f58616e] check-in: [39180d2fe8] user: stephan branch: trunk, size: 126589
2021-10-07
03:27
Resolved the mind-numbing diff problem, caused by having used an (unsigned int) where a uint64_t was needed for the fsl_dline::h member (hash value overflow led to mismatches between this impl and fossil's). Annotate, at least in its basic form, now works (testing with ignoring whitespace and such is pending). file: [58332df8f1] check-in: [e456c5ab39] user: stephan branch: port-annotate, size: 126352
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: [d71bd8862e] check-in: [150bb5b77c] user: stephan branch: port-annotate, size: 126054
2021-10-03
09:04
Fixed a segfault in f-zip when trying to zip an unnamed project. Fixed fsl_repo_manifest_write() to not require an opened checkout so long as it is given an RID to work with. file: [8c8d181ea1] check-in: [b7282cdbdc] user: stephan branch: trunk, size: 125281
2021-10-02
18:12
More work on the annotate interface, plus far too many nearby-yet-unrelated tweaks such as costness changes. file: [79e726267b] check-in: [b601f20cff] user: stephan branch: trunk, size: 125177
14:11
Started work on the annotate/praise/blame interfaces but they're not yet even remotely implemented. file: [16c63d6634] check-in: [434ede2046] user: stephan branch: trunk, size: 124492
2021-09-05
16:42
Added fsl_repo_manifest_write(). fsl_repo_zip_sym_to_filename() now writes (manifest, manifest.uuid, manifest.tags) to the zip unconditionally. It should probably only do so if no file matching those names is actually part of the repo content, but we'll fix that if it ever becomes a problem. file: [4149a9f8c4] check-in: [395518ff88] user: stephan branch: trunk, size: 122405
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: [80b8e47bf4] check-in: [755c059371] user: stephan branch: trunk, size: 121222
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: [df1111c826] check-in: [7501bb92f9] user: stephan branch: trunk, size: 121218
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: [7c07c19133] check-in: [ea6074b8ad] user: stephan branch: trunk, size: 121179
2021-04-13
15:18
Added fsl_deck_branch_set() and f-test-ciwoco now uses it. Fixed a _potential_ error-catching bug in the %j fsl_appendf() handler (which is still pending a port to fsl_output_f() return semantics). file: [15d6f17a2d] check-in: [e9aed30c66] user: stephan branch: trunk, size: 120090
07:33
More work on the fsl_deck_derive()-related bits. Internal API modernization in fsl_content_put_ex(). file: [b00ca47421] check-in: [64b07ff5a8] user: stephan branch: deck-reworking, size: 119554
05:28
Removed fsl_deck::error, relying on fsl_deck::f::error instead. Added fsl_deck_F_set() in prep for APIs to simplify creating new checkins without requiring a checkout. Fixed a U-card validation bug in fsl_deck_output(). file: [cbe534b563] check-in: [f839ab3edd] user: stephan branch: deck-reworking, size: 118243
2021-04-12
15:48
Fixed, i believe, the checkin process not properly tagging the new leaf, caused by swapped handling of the is-it-a-leaf result. Need to make a commit to actually test it, though. Edit: worked :). file: [e99fc2096e] check-in: [2791e665cc] user: stephan branch: trunk, size: 114681
2021-04-10
11:14
API doc cleanups, removed some extraneous is-NULL checks on function arguments, and added a couple assert()s to f-sanity.c. file: [ae44cd1279] check-in: [e314f2f9df] user: stephan branch: trunk, size: 114521
2021-04-09
11:07
fsl_deck_F_foreach() signature changed to remove the option which caused looping to behave differently for delta manifests, as that difference is an internal detail. Fixed the FSL_RC_BREAK return case of fsl_deck_F_foreach(). file: [6dd5e7718b] check-in: [176d9af72a] user: stephan branch: trunk, size: 114119
2021-03-24
22:56
Minor doc tweaks and added auto.def check for libreadline for the sake of f-s2sh. file: [f8b38848ec] check-in: [252a8c3327] user: stephan branch: trunk, size: 114739
15:05
Refactored how the checkin manifest R-card is calculated, to simplify recalculating and verifying it from higher-level code. Renamed f-mfparse to f-aparse. Renamed fsl_hash_types_t to fsl_hash_types_e for naming consistency. file: [704745d75c] check-in: [81cbf6794f] user: stephan branch: trunk, size: 114726
2021-03-20
21:01
More work in/around the update process. f-update and f-co now only list "noteworthy" changes instead of all files unless the new -Q|--not-quiet flag is used. file: [5a9a8fad49] check-in: [0815bc50d7] user: stephan branch: trunk, size: 112772
09:05
Barring one missing piece of to-port infrastructure and a boatload of testing, the update mechanism is in place and seems to be doing its thing. file: [70d868ee0e] check-in: [9b9b989b2c] user: stephan branch: trunk, size: 112189
2021-03-19
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: [38a5bf6a0b] check-in: [07fd8c1f33] user: stephan branch: trunk, size: 111826
2021-03-18
23:36
f-update can now figure out which version to update to, but... baby steps. file: [fd5ddc8cf2] check-in: [7a11d37185] user: stephan branch: trunk, size: 111586
19:29
Pedantic doc tweaks. file: [2a59585674] check-in: [ccc528b363] user: stephan branch: trunk, size: 109730
19:19
Moved the code for listing ambiguous hash prefixes from f-resolve to fcli. More work on the infrastructure needed for f-update. file: [d362f651cf] check-in: [b50971a43e] user: stephan branch: trunk, size: 109729
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: [21b6d8f696] check-in: [15425f1d4c] user: stephan branch: trunk, size: 108409
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: [4d58f18a6f] check-in: [ccc0fef970] user: stephan branch: trunk, size: 122985
04:25
Globally renamed _checkout to _ckout, as some of these names are getting a bit long. file: [96686c6504] check-in: [bc9e88ee2c] user: stephan branch: trunk, size: 122980
03:35
Moved a couple functions out of the public API. file: [2e401908e8] check-in: [40c2c455fc] user: stephan branch: trunk, size: 123151
2021-03-14
21:23
Moved some config-settings-related stuff out of the public API for the time being. file: [9bb28ad6e2] check-in: [2c6c7eda48] user: stephan branch: trunk, size: 124602
11:48
Renamed fsl_repo_checkout_state::xState to extractState. file: [13b76305e9] check-in: [9c08a8a4ac] user: stephan branch: trunk, size: 124568
2021-03-13
19:18
Doc touchups and replaced a few stray %d refs with % FSL_ID_T_PFMT. (Pedantic, i know, but it might as well be done right.) file: [9c7ac18423] check-in: [6cb2db9cf2] user: stephan branch: trunk, size: 124532
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: [8feb469f5b] check-in: [e81048d148] user: stephan branch: trunk, size: 124554
04:10
Added total/current file counters to fsl_repo_extract_state so that clients can calculate progress percentage. file: [e227e72fed] check-in: [356da76d92] user: stephan branch: trunk, size: 124292
2021-03-12
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: [1f06361375] check-in: [01c1cff578] user: stephan branch: cx-scratchpad-rework, size: 123997
13:48
Minor API renaming, for consistency. file: [9277aa0082] check-in: [f2fc1f3efd] user: stephan branch: trunk, size: 123113
13:06
Moved some code around and renamed a struct member for consistency with similar structs. file: [27e946c3a7] check-in: [9bd1cfea4b] user: stephan branch: trunk, size: 123039
2021-03-11
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: [6d0fe27d18] check-in: [61d3e64e6f] user: stephan branch: trunk, size: 122498
15:29
Added fsl_deck_clean2(). Minor iprovements in f-parseparty, most notably to run the leaf rebuild after crosslinking checkins and/or tags, to avoid having (only sometimes) incorrect is-leaf markings (the reason why that happens, and whether it's an actual mistake or a side-effect of unfortunate parse ordering) is unclear). Other trivial internal cleanups. file: [3ce938ef76] check-in: [6bdb294442] user: stephan branch: trunk, size: 122360
2021-03-10
08:32
Merged in f-card-array branch. Not the huge performance win i was hoping for but an overall win. file: [fe51306526] check-in: [0626035798] user: stephan branch: trunk, size: 121619
08:25
Renamed the 'F2' F-card temporary porting name back to F. file: [502d80a0d2] check-in: [63e886fff0] user: stephan branch: f-card-array, size: 121378
06:20
Lib compiles now but the f-apps, and maybe the other language bindings, are still out of date. Lol - that means i can't check this in with f-ci. file: [67be768955] check-in: [e484d5f96e] user: stephan branch: f-card-array, size: 121418
06:02
Initial work on refactoring fsl_deck::F from an array of pointers to an array of objects to speed up (potentially drastically) artifact parsing by cutting F-card (de)allocations by 99% or more. Does not yet compile. file: [fa6df16c0f] check-in: [725c13c0d0] user: stephan branch: f-card-array, size: 121436
2021-03-09
14:03
Fixed a memleak in f-tag. Added --tag flag to f-ci. Tightened validation of tags at output-time (as opposed to parse-time) such that it is no longer legal to add the same tag name/target combination twice in the same artifact, even if they have different types (add/cancel/propagate). file: [28573c3e95] check-in: [200bddbb8a] user: stephan branch: trunk, size: 121132
06:01
Minor confirmer cleanups and docs. file: [d1ac5d80da] check-in: [d58d30707f] user: stephan branch: confirmer-co, size: 121115
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: [3a076e88af] check-in: [ed0fa2b56a] user: stephan branch: confirmer-co, size: 122072
01:22
Fixed a couple broken error checks. f-co --quiet --verbose now lists only files which actually changed, rather than all files. file: [e3b45838a9] check-in: [85113ee198] user: stephan branch: confirmer-co, size: 122392
00:13
Minor tweaks of the confirmer bits. file: [337e42f0ce] check-in: [13fb58bfdd] user: stephan branch: confirmer-co, size: 122331
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: [e4c81194bc] check-in: [735e9e32ab] user: stephan branch: confirmer-co, size: 122274
19:36
Initial work on integrating fsl_cx_confirm() with the checkout process. It basically seems to work but has several notable TODOs and FIXMEs. file: [5e1bf60fda] check-in: [6dd8166303] user: stephan branch: confirmer-co, size: 121487
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: [0b260ee5ed] check-in: [c8b25fe30f] user: stephan branch: trunk, size: 121078
2021-03-07
12:35
Implemented f-co --manifest. file: [bf436d3cf6] check-in: [91a9c30303] user: stephan branch: trunk, size: 121078
11:40
Removed dangling bits left over from the previous commit. file: [1209e5774c] check-in: [23a5dfe46a] user: stephan branch: trunk, size: 121067
10:55
Minor doc cleanups and API renaming. file: [ab5ed349a6] check-in: [8425dbc02c] user: stephan branch: trunk, size: 121387
09:43
Renamed a cryptically-named struct member from fc to fCard. file: [10fcc4c92a] check-in: [ae428e47b0] user: stephan branch: trunk, size: 121148
08:48
Moved some f-ci always-output into verbose-only output, which coincidentally uncovered... Fixed the duplicate crosslinking which was being performed via fsl_checkin_commit() and made fsl_deck_save() change how it crosslinks depending on whether fsl_crosslink_begin() is active, which (in turn) fixed the fsl_repo_has_mlink_mid() discrepancy vis a vis fossil for checkin crosslinking. file: [cbf851300b] check-in: [0c3df4194e] user: stephan branch: trunk, size: 121145
08:27
Replaced Q-card magic values with an enum. file: [45c595b7ef] check-in: [b81f4c29c9] user: stephan branch: trunk, size: 121164
2021-03-06
17:35
fsl_checkout_changes_visit() now treats a callback return of FSL_RC_BREAK like most iteration API do. Doc touchups. file: [cbe03de9b9] check-in: [0bdf51b375] user: stephan branch: trunk, size: 120669
16:27
Improved handling of deleted-by-checkin files via fsl_repo_checkout() and their reporting via f-co. file: [41c3ab4a71] check-in: [038cd076ae] user: stephan branch: trunk, size: 120534
11:29
fsl_repo_checkout() deletion of empty dirs now walks up parent dirs to catch those strays left over by the previous commit. To see this in action, do (f-co tip) then (f-co rid:1), which should leave an empty dir except for .fslckout. file: [d36a747115] check-in: [6c174db6f3] user: stephan branch: trunk, size: 116463
11:06
fsl_repo_checkout(), when removing leftover files, now tries to prune empty dirs. It does not catch dirs which themselves contain no files (contain only other dirs), as vfile has no entry for such dirs. Solving that requires more dir name slicing-up. file: [bfba1e6a16] check-in: [682c42c3a9] user: stephan branch: trunk, size: 116078
2021-03-05
06:00
f-open and f-co now (mostly) honor --quiet. f-co now deletes files which removed between the original and target checkin unless the --no-rm flag is used. f-co cowardly refuses to check out the same version over itself. BUG: i have seen a few instances where the vvar 'checkout' setting disappears, leading to later app calls saying it's 'not a checkout', but have yet to pin down the origin. file: [427b5efe07] check-in: [da6bcc64ba] user: stephan branch: trunk, size: 115330
04:51
Notes and assertions about F-card traversal not including F-cards with a NULL UUID (indicating that they were deleted in a delta manifest). file: [2547299706] check-in: [30b1a2435b] user: stephan branch: trunk, size: 115201
04:29
More tinkering with the f-co/f-open-related infrastructure. file: [8f3471c2da] check-in: [13194b49eb] user: stephan branch: trunk, size: 115984
01:01
Added dry-run mode to fsl_repo_checkout(). Minor cleanups in f-open and f-co. file: [a5a0a1cb93] check-in: [f54d7ff201] user: stephan branch: trunk, size: 115589
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: [2e68c884de] check-in: [eeb7706e6e] user: stephan branch: trunk, size: 115131
2021-03-04
22:46
Refactored fsl_repo_checkout() to take a different options type and callback, and provided that callback with more interesting state. Restored f-open functionally which was disabled due to the lack of that state. file: [4f8d6c8a0a] check-in: [ea7a0da420] user: stephan branch: trunk, size: 114488
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: [50a28be6c2] check-in: [5fd71c1b87] user: stephan branch: trunk, size: 112659
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: [e210724ced] check-in: [ea0bfdc56d] user: stephan branch: trunk, size: 109920
19:06
Minor API tweaks. Corrected --setmtime handling of f-open (broken by my refactoring). file: [7061510053] check-in: [3e996ceab5] user: stephan branch: trunk, size: 109163
18:19
Refactored fsl_repo_extract() to take a struct and added an option to specify whether or not the file content should be extracted. Fixed fsl_mkdir_for_file() for 1-letter filenames. file: [12d6823624] check-in: [0e31c5674e] user: stephan branch: trunk, size: 108852
17:45
f-open: removed unnecessary content load and added some library-level functions to help streamline transaction handling. file: [bc998a88e2] check-in: [5c988bf424] user: stephan branch: trunk, size: 107449
15:12
Minor internal cleanups. Corrected hash handling of fsl_repo_import_blob(). file: [46e923d689] check-in: [5e448f56bb] user: stephan branch: trunk, size: 107273
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: [254f7116c1] check-in: [d1428d5a93] user: stephan branch: trunk, size: 106792
12:28
Numerous cleanups and fixes in/around the infrastructure used by f-open. file: [d4b3cef297] check-in: [b67129bbb9] user: stephan branch: trunk, size: 106037
2021-03-03
11:42
Renamed fsl_buffer_reset() to fsl_buffer_reuse() to try to reduce the confusion between its semantics contrasted with fsl_buffer_clear(). file: [6f5f281d6d] check-in: [0584c1b6e2] user: stephan branch: trunk, size: 105174
2021-03-02
10:32
A round of minor cleanups in getting f-open working for me. Time for a break, though. file: [96f917b8f7] check-in: [ba432bca3a] user: stephan branch: open-ckout-wip, size: 105174
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: [1d5a645047] check-in: [4897fa7285] user: mark branch: open-ckout-wip, size: 105040
2021-03-01
16:21
Arguably a typo fix in the new header. Thank goodness for stream editors. file: [693ea55e67] check-in: [386316db07] user: stephan branch: trunk, size: 104505
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: [ad85c74595] check-in: [fa5fb24496] user: stephan branch: trunk, size: 104497
12:31
Improved the checkin-to-closed-leaf check to allow checkin if the branch would change. Ported in the reserved filename checks, so that 'add' ops will fail if the user adds a filename which is illegal. file: [44c5ba5fb9] check-in: [2d90220116] user: stephan branch: trunk, size: 104739
2021-02-28
11:49
Removed the superfluous length parameter from fsl_deck_U_set(). file: [69d6ecadc8] check-in: [908a2d314c] user: stephan branch: trunk, size: 104159
04:15
Generic cleanups, char-to-bool conversions. Moved fsl_acache bits into their own file. Shrunk a couple of struct sizes. file: [67d5aecbcb] check-in: [7c8b025221] user: stephan branch: trunk, size: 104056
2021-02-27
12:04
Ported f-wiki to the new CLI flags mechanism and extended the fcli public API a bit to be able to support command-dispatch-style apps like f-wiki. file: [4f0aa3c470] check-in: [97a2679fd1] user: stephan branch: trunk, size: 104056
2021-02-26
06:03
Some doc touchups, enum renaming, and removed some dead code. file: [93845303c0] check-in: [473fd8718c] user: stephan branch: trunk, size: 104056
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: [d403b6a7d7] check-in: [467b9e1c18] user: stephan branch: trunk, size: 103972
2021-02-24
05:42
Renamed enum fsl_file_perm_t to fsl_fileperm_e and fsl_rc_t to fsl_rc_e. file: [5563efb116] check-in: [eb5c621f98] user: stephan branch: trunk, size: 102771
2021-02-21
18:27
More enum type renaming. Updated C++/s2 bindings for other recent renamings. file: [07f9e0d901] check-in: [9c1abb2e95] user: stephan branch: trunk, size: 102776
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: [605c87abe4] check-in: [5a3d4bceb3] user: stephan branch: trunk, size: 102767
15:10
Renamed FSL_CATYPE... (CA=Control Artifact) to FSL_SATYPE... (SA=Structural Artifact) so that they correspond to the terms as set out by the fossil file format docs. file: [175251328e] check-in: [8728796601] user: stephan branch: trunk, size: 102770
2021-02-18
05:11
Replaced the extraneous fsl_double_t typedef with double. file: [69f4182640] check-in: [b359548620] user: stephan branch: trunk, size: 102770
2021-02-17
19:43
Doc additions concerning overriding timeline comment text during crosslinking. Added support for the C-card for wiki timeline updates (noting that that card is never emitted for wiki artifacts by fossil, though it does permit them). file: [ea4f2258c1] check-in: [edaf56e488] user: stephan branch: trunk, size: 102812
2021-02-15
18:38
Updated the symbolic-name-to-rid code to bring it more in line with fossil's and ported in some closely-related behaviors. file: [8bade93434] check-in: [55f8d321d2] user: stephan branch: trunk, size: 100583
04:11
Fixed the unsetting of the B-card on a manifest when the checkin processes decides that it's not useful as a delta manifest and switches to a baseline manifest. Bug was in the B-card unsetter logic. file: [de4e45e619] check-in: [4a015bdd47] user: stephan branch: trunk, size: 100585
2021-02-14
02:26
Improved (slightly) an error report when crosslinking a checkin fails because the content for the P-card artifact cannot be found or is a phantom. file: [4cfa13f8e7] check-in: [88947dfafc] user: stephan branch: trunk, size: 100211
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: [3cd28f1bf5] check-in: [63893e6c12] user: stephan branch: trunk, size: 100024
2021-02-13
23:44
Minkering/testing with replacing the checkin timeline crosslinker. Moved some code around. file: [ee315bd634] check-in: [c42cfd8c10] user: stephan branch: trunk, size: 99628
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: [fb22568cbc] check-in: [911afa1bcc] user: stephan branch: trunk, size: 99628
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: [5d6f26feea] check-in: [ac9b034f79] user: stephan branch: trunk, size: 99311
05:52
Updated attachment crosslinking to account for technote attachments. file: [e9740645f0] check-in: [08ecc42a5f] user: stephan branch: trunk, size: 98807
2021-02-12
22:09
libfossil is now C99, rather than C89, per discussion at [https://fossil.wanderinghorse.net/r/libfossil-forum/forumpost/e02ff0e8d0]. fsl_int{16,32,64}_t have been replaced by the standard uint{16,32,64}_t, FSL_xxx_T_PFMT/SFMT replaced with PRIx32 and friends, and auto.def now checks for -std=c99 capability (but that check could probably be done differently/improved). fsl_int_t and fsl_uint_t are retained, as they're more about documentation/intent than fixed sizes. file: [a4032fa2a3] check-in: [ee070353b9] user: stephan branch: trunk, size: 98845
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: [5732553744] check-in: [31c8bddf22] user: stephan branch: trunk, size: 96978
12:20
checkin crosslinking: added missing Q-card (cherrypick) handling, corrected a parent-count case when dealing with Q-cards, and generally brought it up to date with regards to fossil(1). file: [f3bc479ed6] check-in: [4dcdf5a8f7] user: stephan branch: trunk, size: 94931
07:41
Added: Header file reorgs. file: [9022428211] check-in: [c1681af460] user: stephan branch: trunk, size: 94913