Tags and Properties for Check-in ae2704ef94
- branch=main propagates to descendants
- sym-main propagates to descendants
- sym-trunk inherited from [f5744359d3]
- sym-v0.13.0=Release v0.13.0 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. added by [432ca36218] on 2026-10-20 04:31:40
|
2026-10-20
| ||
| 04:31 |
•
Edit [ae2704ef94]: Add tag "v0.13.0" with note "Release v0.13.0
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.". artifact: 432ca36218 user: [email protected] | |
| 04:31 | chore(release): v0.13.0 changelog (#458) check-in: ae2704ef94 user: [email protected] tags: main, trunk, v0.13.0 | |
|
2026-04-19
| ||
| 16:30 |
Initial open source release
libfossil is a pure-Go implementation of the Fossil SCM, reading and writing the same .fossil SQLite repository format as upstream Fossil. This is the first public release of code that previously lived in a private repository. The module path is github.com/danmestas/libfossil and the binary is named libfossil to avoid $PATH collisions with upstream fossil. Included: - Repo lifecycle (create, clone), checkout/checkin, timeline, merge, diff, annotate, shun, tag, branch, bisect, stash, undo/redo - Sync-over-HTTP protocol (client and handler) - Two SQLite drivers: modernc (pure Go, default) and ncruces (wasm-capable) - Observer interfaces (SyncObserver, CheckoutObserver) with an optional OpenTelemetry implementation in observer/otel (separate submodule) - Deterministic simulation testing harness with BUGGIFY fault injection - Kong-based embeddable CLI under cli/ and a standalone binary under cmd/libfossil/ check-in: f5744359d3 user: [email protected] tags: trunk | |