git2dart 0.5.5
git2dart: ^0.5.5 copied to clipboard
Dart bindings to libgit2, provides ability to use libgit2 library in Dart and Flutter.
Changelog #
0.5.5 - 2026-08-28 #
Features #
- Add
Libgit2.shutdown()for deterministic, isolate-scoped native runtime shutdown after live repository and commit owners are released. - Add explicit native-memory release for owned
OidandIndexEntryvalues.
Changed #
- Update
git2dart_binariesto>=1.13.0 <1.14.0and migrate the native adapter to its managed runtime, lifecycle, bindings, and options APIs. - Preserve the public integer option API while using ABI-correct native-width types for mmap, pack-object, and cached-memory values.
Fixes #
- Correct native ownership for repositories, commits, OIDs, tree entries, index entries, status performance data, and remote results to prevent leaks, dangling pointers, double frees, and invalid frees.
- Propagate libgit2 failures from global options, index persistence, repository identity, rebase completion, and option initialization instead of silently continuing with invalid output.
- Release temporary option structures, buffers, callbacks, and credentials on success and failure paths, and clear remote callback state after operations.
Resolved Reversa defects
Git objects and object database
BUG-20260817-A6QS— Manage owned OID allocations and safely copy borrowed OID pointers.BUG-20260817-E3LU— Prevent invalid release of borrowedTreeEntryvalues.BUG-20260817-H7NP— EncodeBlobWriteStream.writeStringinput as UTF-8.BUG-20260817-K2RY— Dispose libgit2 buffers after blob filtering.
History and integration operations
BUG-20260817-J9CU— Propagate native failures from rebase finish and abort.BUG-20260817-P5DB— Release native merge options on every exit.BUG-20260817-T8MW— Passnullptrfor empty root-commit parent arrays.BUG-20260817-X4AE— Dispose libgit2 commit buffers on success and failure.
Native runtime and platform boundary
BUG-20260817-3PON— Release native string-array storage returned by the extensions getter.BUG-20260817-47ZS— Release credential callback allocations after remote operations.BUG-20260817-CIKD— Serialize callback-bearing remote operations and reject overlapping callback-state replacement.BUG-20260817-DQPX— Propagate native failures from global libgit2 option APIs.BUG-20260817-O3B3— Clear sensitive remote callback context after every operation.BUG-20260817-QWMA— Validate every fallible native options initializer before structure use.BUG-20260817-ZC7X— Balance libgit2 initialization leases with deterministic shutdown.
References and remotes
BUG-20260817-2TB4— Release native OID storage used by reference name-to-ID lookup.BUG-20260817-3FWN— Release fetch options and refspec allocations.BUG-20260817-BVMB— Reject invalid refspec indexes instead of wrapping null pointers.BUG-20260817-VG7G— Guarantee remote disconnect after advertisement listing.BUG-20260817-VGYQ— Reject out-of-range reflog indexes instead of wrapping null entries.
Repository lifecycle
BUG-20260817-L8WX— Propagate native repository identity lookup failures.BUG-20260817-N4FC— Release native worktree handles created during listing.BUG-20260817-Q6JV— Dispose native worktree lock-reason buffers.BUG-20260817-V9TR— Copy status performance counters before arena-backed storage is released.
Working tree and index
BUG-20260817-6KRT— Propagate native index read and write failures.BUG-20260817-8HNA— Release checkout options used by stash apply and pop.BUG-20260817-M2VF— Release temporary lookup objects during reference and commit checkout.BUG-20260817-R4PL— Give mutableIndexEntryvalues independent owned path storage.BUG-20260817-Y7GX— Release output OID buffers when index, stash, or diff operations fail.
CI #
- Add cross-platform build gates for Linux, macOS, Windows, and Android using the validated Flutter toolchain.
- Skip build, test, and publication jobs when the triggering commit message
contains the
[docs]marker.
Documentation #
- Document deterministic runtime shutdown, explicit
OidandIndexEntryownership, and thegit2dart_binaries1.13 dependency baseline.
0.5.4 - 2026-07-21 #
Features #
- Add
Libgit2.packMaxObjectSizefor controlling the maximum declared object size accepted in downloaded packfiles.
Changed #
- Update
git2dart_binariesto1.12.1, including bundled libgit21.9.6and typed pack maximum object size options.
Tooling #
- Add a project skill and comparison command for analyzing public API changes
between
git2dart_binariesversions. - Print API comparison results directly to the agent, with optional Markdown export when explicitly requested.
Documentation #
- Document the
git2dart_binariesAPI update and migration workflow.
0.5.3 - 2026-06-30 #
Documentation #
- Link to the multi-platform
git2dart_examplesFlutter demo app from the main README and documentation index.
0.5.2 - 2026-06-29 #
Features #
- Expand libgit2 binding coverage across repository, remote, status, tree, tag, signature, submodule, config, diff, index, ODB, reference, and related APIs.
- Add public wrappers for extended repository opening, basic repository initialization, annotated HEAD detaching, remote instance URL overrides, remote autotag configuration, tree walking, tree updates, status callbacks, and annotation-only tag creation.
Testing #
- Add focused tests for the newly exposed binding wrappers.
- Include binding files in coverage by removing file-level coverage ignores.
0.5.1 - 2026-06-29 #
Fixed #
- Require
git2dart_binaries>=1.11.2 <1.12.0to pick up the latest packaged libgit2 binaries and generated bindings. - Add a remote
certificateCheckcallback so SSH clients can supply host key trust decisions without relying onknown_hostslookup.
Documentation #
- Document the
git2dart_binaries1.11.2dependency baseline in the README.
0.5.0 - 2026-05-30 #
Features #
- Update
git2dart_binariesconstraint to>=1.11.0 <1.12.0. - Add public APIs for commit graphs, ignore rules, messages, and pathspec matching.
- Extend config, diff, oid, repository, and tree APIs with additional libgit2-backed helpers.
- Add Flutter iOS platform support and shared
PlatformSpecific.initialize().
Documentation #
- Refresh public API documentation for consistency.
- Add platform setup documentation for iOS.
0.4.0 - 2025-11-20 #
Features #
- Add
PlatformSpecific.androidInitializeto wire up libgit2 SSL certificates automatically on Flutter/Android before cloning or fetching. - Re-export the platform helper from
git2dart.dartso Flutter apps can call it without touching internals.
Documentation #
- Introduce a dedicated Android guide (
doc/types/android.md) covering prerequisites, initialization flow, and troubleshooting tips. - Expand
README.mdanddoc/README.mdwith Flutter-on-Android quick start notes, including supportedarm64-v8aandx86_64ABIs.
0.3.0 - 2025-06-11 #
Features #
- Add
BlobWriteStreamfor streaming blob writes. - Introduce
FilterAPI with options. - Expose additional
Worktreeoperations. - Add repository attribute helpers and
AttrOptions. - Expand bindings for ODB, Oid, Packbuilder, Patch and Rebase.
- Improve tag and tree builder callbacks.
Fixes #
- Stabilize remote tests.
0.2.1 - 2025-05-29 #
Changes #
- Add missing API sections to README:
- Remote
- Reset
- Blame
- Describe
- Note
- Rebase
- Mailmap
- Credentials
- ODB
- Packbuilder
- Signature
- RevParse
- AnnotatedCommit
- Add system dependencies section to README for Linux, macOS and Windows
0.2.0 - 2025-05-17 #
Breaking Changes #
- Migrate to Dart 3
- Migrate to 1.9.0 version libgit2
- Migrate actual api, remove depricated api calls