Tags

Tags give the ability to mark specific points in history as being important
  • v0.1.2

    fca0664d · Bump version to 0.1.2 ·
    Release: Agate v0.1.2
    v0.1.2 — Fix buffer leak and null pointer dereference
    
    Fixed:
    - Buffer leak in Diff#patch and Patch#to_s when an exception was raised
      after git_patch_to_buf but before git_buf_dispose
    - Segfault in Error.last when no libgit2 error was pending (null pointer
      dereference)
    
    Added:
    - Error.check! — raises the last error if one is pending (replaces Error.raise?)
    - Error.clear — wraps git_error_clear() to reset pending error state
    
    Changed:
    - TagCollection#exist? is now O(1) via git_reference_lookup instead of
      iterating all tags
    
    Deprecated:
    - Error.raise? — use Error.check! instead (emits compile-time warning)
    
  • v0.1.1

    08e08341 · Bump version to 0.1.1 ·
    Release: Agate v0.1.1
    v0.1.1 — Fix heap corruption on libgit2 1.7.x
    
    Fixed:
    - Heap corruption on Ubuntu 24.04 / glibc 2.39 / libgit2 1.7.2 caused
      by GC finalizers double-freeing recycled malloc addresses (closes #2)
    - Memory leak in Commit.alloc_c_sigs on second allocation failure
    - to_strarray lifetime hazard (now block-scoped with_strarray)
    - InitOptions string lifetime (retained as instance variables)
    - Exception safety in Repository#each_id and Tree#walk C callbacks
    - Missing #hash on Commit, Object, Reference, Repository
    
    40/40 consecutive passes on Ubuntu 24.04 with libgit2 1.7.2
    (previously crashed ~60-80% of runs).
    
  • v0.1.0

    Release: Agate v0.1.0
    Agate v0.1.0 — Crystal bindings for libgit2
    
    First public release.
    
    - Crystal bindings for libgit2 (repository, commit, tree, blob, reference,
      branch, tag, remote, index, diff, patch, blame, config, and more)
    - Support for Crystal >= 1.13.0, libgit2 >= 1.7.2 (>= 1.9 recommended)
    - Compile-time libgit2 version detection (1.7.x / 1.9.x)
    - 631 specs, zero unreachable public methods
    - Cross-platform: macOS, Alpine Linux, Ubuntu 24.04