v0.2.0
What's Changed
Features
- Add
Repositoryaccessors for plumbing commands:rev_parse,describe,ls_files,ls_tree,show_ref,symbolic_ref(#22) - Add no-match-tolerant execution:
GrepCommand::execute_allow_no_matchandConfigCommand::execute_value_optreturnOk(None)for the exit-1 (no match / missing key) case instead ofCommandFailed(#21)
Bug Fixes
- [breaking]
CommandOutput.stdoutis nowVec<u8>instead ofString; binary output (e.g.cat-fileon a blob) is no longer corrupted by lossy UTF-8 decoding. Read it viastdout_str()/stdout_bytes(), and useCatFileCommand::execute_bytes()for raw blob bytes (#23) branchforce-delete emits-D <name>instead of the invalid-D -d <name>(#25)parse_statusreads the original-path field only when the index column is a rename/copy, matching real porcelain v1-zoutput (#20)
Refactor
- [breaking] Unify builder modifier style to
&mut Selfacross 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.stdoutis nowVec<u8>. Replace directStringuse without.stdout_str()(lossy text) orout.stdout_bytes()(raw).stdout_lines()now returnsVec<String>andstdout_trimmed()returnsString.- Action-enum command modifiers (e.g.
StashCommand::push().message(..)) now take&mut self; bind to alet mutor chain off theRepositoryaccessor (repo.stash(StashCommand::push()).message(..)).
Full Changelog: v0.1.0...v0.2.0