github GitoxideLabs/gitoxide v0.56.0

3 hours ago

New Features

  • add configurable terminal screen modes.

  • hide revision ancestry in tix

  • add tix to the gix CLI

  • add explicit gix config show subcommand.

  • add gix config list for showing the git-configuration files.

  • add the gix config fmt subcommand
    Expose the gix-config whitespace formatter as
    gix config fmt [--in-place] [in-file] [out-file]: with no in-file it
    formats the repository-local configuration, and with no out-file it writes
    to stdout. The repository is only opened when the repository-local
    configuration is needed, so formatting an explicit file works outside a
    repository too.

  • add gix status --untracked flag
    This allows to control how untracked files are folded, but also
    can completely turn dirwalking off.

  • add gix free remote refs to list and write remote refs.
    Add gix free remote refs to perform an upload-pack handshake, discover
    the remote reference advertisement, and print the refs without negotiating
    or receiving a pack.

    The command can also write the advertised refs into a standalone ref store:

    gix free remote refs --refs-directory out-refs <url>

Bug Fixes

  • preserve multiple remote URLs
    Configured remotes can have multiple remote..url or remote..pushUrl
    values, but gix::Remote kept only one value because lookup used the singular
    config accessor. That meant the most recent config value won, while Git exposes
    every effective URL and uses the first one for the singular get-url form.

    Add ordered URL storage to gix::Remote and expose Remote::urls(Direction) for
    all effective URLs. Keep Remote::url(Direction) as the singular compatibility
    API, now returning the first effective URL. Fetch URLs used as push fallbacks
    try pushInsteadOf first and then insteadOf, matching Git behavior.

    The regression fixture records Git 2.50.1 behavior with git remote get-url:
    without --all it prints the first configured URL, and with --all it prints all
    configured URLs in order for both fetch and push.

Bug Fixes (BREAKING)

  • make exclude queries index-aware

    gix exclude query reported ignore matches for tracked files and directories
    containing tracked entries, unlike git check-ignore. Positional arguments were
    also interpreted as pathspecs while stdin supplied paths.

    Treat positional and stdin input uniformly as paths, normalize them relative
    to the repository, and suppress ignore matches for indexed files or directories
    containing indexed entries. This changes positional arguments from pathspecs
    to paths.

    Add journey coverage for tracked and untracked paths below ignored directories,
    stdin from a nested working directory, ignore-pattern display, and positional
    output order.

Commit Statistics

  • 22 commits contributed to the release.
  • 31 days passed between releases.
  • 10 commits were understood as conventional.
  • 2 unique issues were worked on: #2562, #2696

Commit Details

view details
  • #2562
    • Make exclude queries index-aware (b185147)
  • #2696
    • Preserve multiple remote URLs (5f244b3)
  • Uncategorized
    • Add configurable terminal screen modes. (2140142)
    • Merge pull request #2809 from GitoxideLabs/gix-tix-mvp (443b401)
    • Hide revision ancestry in tix (fed0051)
    • Add tix to the gix CLI (31a94aa)
    • Merge pull request #2735 from GitoxideLabs/better-exclude-handling (02cb162)
    • Merge pull request #2636 from ameyypawar/gix-config-formatter (cfd3899)
    • Add explicit gix config show subcommand. (06a927c)
    • Add gix config list for showing the git-configuration files. (bd595de)
    • Add the gix config fmt subcommand (87a5e89)
    • Merge pull request #2721 from GitoxideLabs/remove-kstring (e70732a)
    • Adapt to changes in gix-attributes (e11d7a2)
    • Merge pull request #2722 from GitoxideLabs/reasons (c16b5a1)
    • Replace lint allowances with expectations (43ff87a)
    • Merge pull request #2667 from GitoxideLabs/lifetime-free-config-parser (55b5158)
    • Adapt to changes in gix-config (376e946)
    • Merge pull request #2698 from GitoxideLabs/multi-remote-url (7056d62)
    • Merge pull request #2547 from special-bread/windows-status-performance (3e43c42)
    • Add gix status --untracked flag (9316ff8)
    • Merge pull request #2659 from willstott101/fix-ref-transaction-toctou (43dd683)
    • Add gix free remote refs to list and write remote refs. (6767b30)

Don't miss a new gitoxide release

NewReleases is sending notifications on new releases.