diff rust/rhg/src/commands/status.rs @ 48506:0c408831b2f1

rhg: Print "bad match" errors in rhg status Previously these would only be visible if enabled with some RUST_LOG environment variable. Differential Revision: https://phab.mercurial-scm.org/D11908
author Simon Sapin <simon.sapin@octobus.net>
date Mon, 13 Dec 2021 14:37:16 +0100
parents 473af5cbc209
children b005d07ded7d
line wrap: on
line diff
--- a/rust/rhg/src/commands/status.rs	Tue Dec 07 15:14:08 2021 +0100
+++ b/rust/rhg/src/commands/status.rs	Mon Dec 13 14:37:16 2021 +0100
@@ -237,8 +237,20 @@
         warn!("Pattern warnings: {:?}", &pattern_warnings);
     }
 
-    if !ds_status.bad.is_empty() {
-        warn!("Bad matches {:?}", &(ds_status.bad))
+    for (path, error) in ds_status.bad {
+        let error = match error {
+            hg::BadMatch::OsError(code) => {
+                std::io::Error::from_raw_os_error(code).to_string()
+            }
+            hg::BadMatch::BadType(ty) => {
+                format!("unsupported file type (type is {})", ty)
+            }
+        };
+        ui.write_stderr(&format_bytes!(
+            b"{}: {}\n",
+            path.as_bytes(),
+            error.as_bytes()
+        ))?
     }
     if !ds_status.unsure.is_empty() {
         info!(