git-ledger
Git-native record storage. Each record lives under its own ref with typed fields stored as blobs in a tree.
Usage
Create a record
With an explicit ID:
With a content-addressed ID (hashes stdin):
With a custom commit message:
Read a record
Update a record
Set a field:
Set multiple fields at once:
Delete a field:
Mix sets and deletes:
List records
Show history for a record
Use a different repository
Design
A ledger record is a Git ref (e.g. refs/issues/1).
Each field is a blob stored in the commit's tree under the field name.
create and update both advance the ref with a new commit, so the full field history is preserved in the commit log.
IDs are assigned sequentially by default (1, 2, 3, …).
Pass an explicit ID or --content-hash to override.