summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatan Kushner <hello@matchai.dev>2021-01-26 16:53:51 -0500
committerMatan Kushner <hello@matchai.dev>2021-01-26 16:53:52 -0500
commit2da4310088fd76c157620ac69de81af4b7c54b23 (patch)
tree5ec32b86bf6185b90a0d0f98060f6393da30c23f
parent969c556855f1a2b3a08cdd2bd5f4c291e4d076ec (diff)
Begin creating match statement for porcelain statuslibgit-to-git-cli
-rw-r--r--src/git.rs29
1 files changed, 23 insertions, 6 deletions
diff --git a/src/git.rs b/src/git.rs
index 3e86ef21a..1efac7c2c 100644
--- a/src/git.rs
+++ b/src/git.rs
@@ -306,17 +306,34 @@ fn parse_porcelain_output<S: Into<String>>(porcelain: S) -> GitStatus {
characters.next().unwrap_or(' '),
);
- // TODO: Revisit conflict and staged logic
- if letter_codes.0 == letter_codes.1 {
- vcs_status.conflicted += 1
- } else {
- increment_git_status(&mut vcs_status, letter_codes.1);
- }
+
+ // // TODO: Revisit conflict and staged logic
+ // if letter_codes.0 == letter_codes.1 {
+ // vcs_status.conflicted += 1
+ // } else {
+ // increment_git_status(&mut vcs_status, letter_codes.1);
+ // }
});
vcs_status
}
+fn check_porcelain_line(vcs_status: &mut GitStatus, letter_codes: (char, char)) {
+ match letter_codes {
+ // Check for untracked files
+ ('?', '?') => vcs_status.untracked += 1,
+
+ // Check for staged files
+ ('A', _) => vcs_status.added += 1,
+ ('M', ' ') => vcs_status.added += 1,
+ ('M', 'M') => vcs_status.added += 1,
+ ('M', 'D') => vcs_status.added += 1,
+ ('U', 'A') => vcs_status.added += 1,
+
+ (_, _) => (),
+ }
+}
+
/// Update the cumulative git status, given the "short format" letter of a file's status
/// https://git-scm.com/docs/git-status#_short_format
fn increment_git_status(vcs_status: &mut GitStatus, letter: char) {