github GitoxideLabs/gitoxide gix-v0.70.0
gix v0.70.0

23 hours ago

Chore

  • bump rust-version to 1.70
    That way clippy will allow to use the fantastic Option::is_some_and()
    and friends.

New Features

  • add Repository::upstream_branch_and_remote_name_for_tracking_branch()
    It's a way to learn about the Remote and upstream branch which would
    match the given local tracking branch.
  • more often check for interrupts in status iterator
  • add tree::Editor|editor::Cursor::get() to see if an entry is loaded at path.
    This can be useful to get a feeling for how far the tree was already made available,
    even though it won't reveal if an entry was edited.
  • Repository::is_dirty() now also checks for tree/index changes.
    This copmpletes the is_dirty() implementation.
  • Repository::tree_index_status() to see the changes between a tree and an index.
    It also respects status.rename and status.renameLimit to configure rename tracking.
  • add Tree::depthfirst() with a delegate.
    This allows a depth-first traversal with a delegate.
  • Add blame plumbing crate to the top-level.
    For now, it doesn't come with a simplified gix API though.

Bug Fixes

  • Repository::status() detects files added to the index in an unborn repository.
    Previously it wouldn't show them.

  • Respository::status() iterator won't fail in unborn directories.

  • worktrees of submodules now know their correct worktree
    Previously they would use a very incorrect worktree which would cause
    the status to be calculated very wrongly.

  • status-iterator won't swallow legitimate modification during 'racy-git'.
    When a modification is marked as being racy, then previously the iterator would have
    kept the whole modification even though it should just have tracked the single change.

    This made the legitimate modification disappear.

  • write_blob_stream() does not need Seek trait anymore.
    Internally, it has to turn it into a buffer so it's not needed anymore.
    It also counteracts the idea of using a stream with arbitrarily big files.

  • Submodule::status() now konws about tree-index changes as well.
    This completes the status implementation.

  • remove unused fetch-error variants
    Note that it's a breaking change, but it's on top of a previous breaking change
    so folks would already have to update explicitly.

Other

  • make really clear that Repository::worktrees() lists linked worktrees.
    Excluding the main worktree which isn't always present.

New Features (BREAKING)

  • add status::Platform::into_iter() for obtaining a complete status.
    Note that it is still possible to disable the head-index status.

    Types moved around, effectivey removing the iter:: module for most
    more general types, i.e. those that are quite genericlally useful in
    a status.

Bug Fixes (BREAKING)

  • all config::Snapshot access now uses the new Key trait.
    That way one can officially use "section.name" strings or &Section::NAME.

Commit Statistics

  • 40 commits contributed to the release over the course of 27 calendar days.
  • 27 days passed between releases.
  • 18 commits were understood as conventional.
  • 1 unique issue was worked on: #1770

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

view details
  • #1770
    • Repository::status() detects files added to the index in an unborn repository. (cd8fabf)
  • Uncategorized
    • Update all changelogs prior to release (1f6390c)
    • Merge pull request #1774 from EliahKagan/complex-graph-no-baseline-next (90e08f1)
    • Use parse_spec_no_baseline with :/ for all 2.47.* on CI (fe33fa7)
    • Merge pull request #1772 from GitoxideLabs/improvements (4c8200f)
    • Merge pull request #1769 from GitoxideLabs/improvements (47e44c5)
    • Respository::status() iterator won't fail in unborn directories. (84019cb)
    • Merge pull request #1768 from GitoxideLabs/improvements (34fa6bb)
    • Adapt to changes in gix-status (25d480c)
    • Merge pull request #1750 from GitoxideLabs/odb-issue (e4fb21e)
    • Reproduce issue with 'too many packs' for slotmap (dbf079f)
    • Merge pull request #1763 from GitoxideLabs/better-refspec-primitives (af8f201)
    • Add Repository::upstream_branch_and_remote_name_for_tracking_branch() (da0e1c7)
    • Adapt to changes in gix-refspec (6d7dd9b)
    • Merge pull request #1762 from GitoxideLabs/fix-1759 (7ec21bb)
    • Bump rust-version to 1.70 (17835bc)
    • Make really clear that Repository::worktrees() lists linked worktrees. (9db2160)
    • Worktrees of submodules now know their correct worktree (bc02284)
    • Merge pull request #1752 from GitoxideLabs/git-shell (1ca480a)
    • Thanks clippy (9193b05)
    • Merge pull request #1749 from GitoxideLabs/status (8d84818)
    • More often check for interrupts in status iterator (5b6e5c8)
    • Merge pull request #1746 from GitoxideLabs/status (af704f5)
    • Add tree::Editor|editor::Cursor::get() to see if an entry is loaded at path. (3b53982)
    • Status-iterator won't swallow legitimate modification during 'racy-git'. (3bbd1f7)
    • write_blob_stream() does not need Seek trait anymore. (a03bde5)
    • Merge pull request #1410 from GitoxideLabs/status (0ab4f64)
    • Submodule::status() now konws about tree-index changes as well. (a987e68)
    • Add status::Platform::into_iter() for obtaining a complete status. (801689b)
    • All config::Snapshot access now uses the new Key trait. (a6f397f)
    • Repository::is_dirty() now also checks for tree/index changes. (8ae9e57)
    • Repository::tree_index_status() to see the changes between a tree and an index. (83f3d93)
    • Add Tree::depthfirst() with a delegate. (592e250)
    • Adapt to changes in gix-traverse (1de4e70)
    • Merge pull request #1453 from cruessler/gix-blame (6ed9976)
    • Add blame plumbing crate to the top-level. (25efbfb)
    • Release gix v0.69.1 (7659a65)
    • Merge pull request #1740 from GitoxideLabs/cargo-improvements (3fb0c18)
    • Remove unused fetch-error variants (51a4301)
    • Merge pull request #1739 from GitoxideLabs/new-release (d22937f)

Don't miss a new gitoxide release

NewReleases is sending notifications on new releases.