Artifact 432ca36218328d5f177df9dd0a79f259c8825a1acd3416c70d2d2a46b739ed95:
The libfossil binary now has a checkout-free interface for apps that keep version history in a stock Fossil repository. Its JSON shapes and exit statuses are a stable contract, documented in docs/site/content/docs/cli-embedding.md: - repo snapshot commits one file's bytes onto trunk without a checkout. Identical bytes are a no-op that prints the tip. Concurrent snapshot processes build one linear trunk. - repo log --path, repo cat --at and repo diff --json read a file's history, content and differences. - repo new accepts the repository path as -R, refuses an existing file, and names a missing parent directory. Exit statuses: 0 success, 1 failure, 2 not found, 80 usage error.
Behavior changes to check when upgrading: - Times read back from the repository round to the millisecond as SQLite does. They had been truncated, often 1ms before the check-in's D card. - Check-ins, tags and branches record their time to the millisecond, as fossil does. - log, cat and diff match a PATH as fossil does: normalized, and compared under the repository's case-sensitive setting (off by default on macOS and Windows). - Opening a repository applies its pragmas in a fixed order, busy_timeout first. - Update keeps uncommitted changes, and vfile.mtime is recorded and trusted, as fossil does. - Ticket artifacts are applied with fossil's optional ticket columns, so a rebuild of fossil's own repository succeeds and its ticket tables match fossil rebuild.
See CHANGELOG.md for the full list.". by [email protected] on 2026-10-20 04:31:40.
D 2026-10-20T04:31:40 T +sym-v0.13.0 ae2704ef942396861d6b1a4980fbeb2ceecb78c693e786f0a4d7550b5f9bb2b3 Release\sv0.13.0\n\nThe\slibfossil\sbinary\snow\shas\sa\scheckout-free\sinterface\sfor\sapps\sthat\skeep\sversion\shistory\sin\sa\sstock\sFossil\srepository.\sIts\sJSON\sshapes\sand\sexit\sstatuses\sare\sa\sstable\scontract,\sdocumented\sin\sdocs/site/content/docs/cli-embedding.md:\n-\srepo\ssnapshot\scommits\sone\sfile's\sbytes\sonto\strunk\swithout\sa\scheckout.\sIdentical\sbytes\sare\sa\sno-op\sthat\sprints\sthe\stip.\sConcurrent\ssnapshot\sprocesses\sbuild\sone\slinear\strunk.\n-\srepo\slog\s--path,\srepo\scat\s--at\sand\srepo\sdiff\s--json\sread\sa\sfile's\shistory,\scontent\sand\sdifferences.\n-\srepo\snew\saccepts\sthe\srepository\spath\sas\s-R,\srefuses\san\sexisting\sfile,\sand\snames\sa\smissing\sparent\sdirectory.\nExit\sstatuses:\s0\ssuccess,\s1\sfailure,\s2\snot\sfound,\s80\susage\serror.\n\nBehavior\schanges\sto\scheck\swhen\supgrading:\n-\sTimes\sread\sback\sfrom\sthe\srepository\sround\sto\sthe\smillisecond\sas\sSQLite\sdoes.\sThey\shad\sbeen\struncated,\soften\s1ms\sbefore\sthe\scheck-in's\sD\scard.\n-\sCheck-ins,\stags\sand\sbranches\srecord\stheir\stime\sto\sthe\smillisecond,\sas\sfossil\sdoes.\n-\slog,\scat\sand\sdiff\smatch\sa\sPATH\sas\sfossil\sdoes:\snormalized,\sand\scompared\sunder\sthe\srepository's\scase-sensitive\ssetting\s(off\sby\sdefault\son\smacOS\sand\sWindows).\n-\sOpening\sa\srepository\sapplies\sits\spragmas\sin\sa\sfixed\sorder,\sbusy_timeout\sfirst.\n-\sUpdate\skeeps\suncommitted\schanges,\sand\svfile.mtime\sis\srecorded\sand\strusted,\sas\sfossil\sdoes.\n-\sTicket\sartifacts\sare\sapplied\swith\sfossil's\soptional\sticket\scolumns,\sso\sa\srebuild\sof\sfossil's\sown\srepository\ssucceeds\sand\sits\sticket\stables\smatch\sfossil\srebuild.\n\nSee\sCHANGELOG.md\sfor\sthe\sfull\slist. U [email protected] Z 2b621a93049466c03b39fa3ae2d7c25c