Skip to content

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 08 Jun 03:50
· 3 commits to main since this release
111a980

What's Changed

Features

  • Add Repository accessors for plumbing commands: rev_parse, describe, ls_files, ls_tree, show_ref, symbolic_ref (#22)
  • Add no-match-tolerant execution: GrepCommand::execute_allow_no_match and ConfigCommand::execute_value_opt return Ok(None) for the exit-1 (no match / missing key) case instead of CommandFailed (#21)

Bug Fixes

  • [breaking] CommandOutput.stdout is now Vec<u8> instead of String; binary output (e.g. cat-file on a blob) is no longer corrupted by lossy UTF-8 decoding. Read it via stdout_str() / stdout_bytes(), and use CatFileCommand::execute_bytes() for raw blob bytes (#23)
  • branch force-delete emits -D <name> instead of the invalid -D -d <name> (#25)
  • parse_status reads the original-path field only when the index column is a rename/copy, matching real porcelain v1 -z output (#20)

Refactor

  • [breaking] Unify builder modifier style to &mut Self across the action-enum commands (stash, config, reflog, bisect, symbolic_ref, worktree, submodule) (#19)
  • Consolidate shared integration-test helpers (#24)

Documentation

  • Trim git library comparison section (#18)

Upgrading from 0.1.x

Two breaking changes:

  • CommandOutput.stdout is now Vec<u8>. Replace direct String use with out.stdout_str() (lossy text) or out.stdout_bytes() (raw). stdout_lines() now returns Vec<String> and stdout_trimmed() returns String.
  • Action-enum command modifiers (e.g. StashCommand::push().message(..)) now take &mut self; bind to a let mut or chain off the Repository accessor (repo.stash(StashCommand::push()).message(..)).

Full Changelog: v0.1.0...v0.2.0