From 60ffc3b80670e9e65883bf46857f528450e5bc69 Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Sun, 27 Dec 2020 22:17:24 +0800 Subject: [PATCH] feat: add check git status --- src/cmd_gitcheck.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/cmd_gitcheck.rs b/src/cmd_gitcheck.rs index b6ddbc0..1e22ef6 100644 --- a/src/cmd_gitcheck.rs +++ b/src/cmd_gitcheck.rs @@ -17,11 +17,19 @@ impl Command for CommandImpl { let dir = sub_arg_matches.value_of("dir"); let has_remote_cannotbe_fetched = util_git::git_fetch_dry_run(dir)?; if !has_remote_cannotbe_fetched { - warning!("Git repo has not fetched codes"); + failure!("Git repo has not fetched codes"); return Ok(-2); // fetch check failed } let git_status = util_git::git_status(dir)?; - if git_status.contains("Changes not staged for commit") || git_status.contains("Changes to be committed") + let git_status_local_unpush_messages = vec![ + "Changes not staged for commit", + "Changes to be committed", + "Your branch is ahead of" + ]; + if git_status_local_unpush_messages.iter().find(|m| git_status.contains(**m)).is_some() { + failure!("Git repo has un-push changes"); + return Ok(-3); + } Ok(0) } }