diff --git a/crates/git/src/repository.rs b/crates/git/src/repository.rs index fd12dafa98..6d053e1855 100644 --- a/crates/git/src/repository.rs +++ b/crates/git/src/repository.rs @@ -1814,6 +1814,7 @@ impl GitBinary { output.status.success(), GitBinaryCommandError { stdout: String::from_utf8_lossy(&output.stdout).to_string(), + stderr: String::from_utf8_lossy(&output.stderr).to_string(), status: output.status, } ); @@ -1836,9 +1837,10 @@ impl GitBinary { } #[derive(Error, Debug)] -#[error("Git command failed: {stdout}")] +#[error("Git command failed:\n{stdout}{stderr}\n")] struct GitBinaryCommandError { stdout: String, + stderr: String, status: ExitStatus, } diff --git a/crates/workspace/src/notifications.rs b/crates/workspace/src/notifications.rs index 039aec5199..768b10abe4 100644 --- a/crates/workspace/src/notifications.rs +++ b/crates/workspace/src/notifications.rs @@ -1077,8 +1077,13 @@ where if let Err(err) = result.as_ref() { log::error!("{err:?}"); if let Ok(prompt) = cx.update(|window, cx| { + let mut display = format!("{err}"); + if !display.ends_with('\n') { + display.push('.'); + display.push(' ') + } let detail = - f(err, window, cx).unwrap_or_else(|| format!("{err}. Please try again.")); + f(err, window, cx).unwrap_or_else(|| format!("{display}Please try again.")); window.prompt(PromptLevel::Critical, &msg, Some(&detail), &["Ok"], cx) }) { prompt.await.ok();