Skip to main content

parse_diff_name_status

Function parse_diff_name_status 

Source
pub fn parse_diff_name_status(output: &str) -> Result<ChangeSet>
Expand description

Parse git diff --name-status -z output

Format: status\0filename\0 or status\0old\0new\0 for renames

Status codes:

  • A = added
  • M = modified
  • D = deleted
  • R<similarity> = renamed (e.g., R075)
  • C<similarity> = copied
  • T = type change (treat as modified)
  • U = unmerged (treat as modified)
  • X = unknown (treat as modified)

See: https://git-scm.com/docs/git-diff#_diff_format

ยงErrors

Returns GitError::InvalidOutput when the diff stream is truncated or otherwise malformed (missing filenames, rename metadata, or status codes).