# HG changeset patch
# User Raphaël Gomès <rgomes@octobus.net>
# Date 1584538007 -3600
#      Wed Mar 18 14:26:47 2020 +0100
# Node ID 245aec57d76a6b731c008aaf8a54e0188239a001
# Parent  6a8738dc4a019da4c9df5c26961aa09d45ce1c68
rust-status: add trace-level logging for Rust status fallback for debugging

The added `log` crate is already a sub-dependency.

Differential Revision: https://phab.mercurial-scm.org/D8300

diff --git a/rust/Cargo.lock b/rust/Cargo.lock
--- a/rust/Cargo.lock
+++ b/rust/Cargo.lock
@@ -253,6 +253,7 @@
  "cpython 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "hg-core 0.1.0",
  "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
  "simple_logger 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
diff --git a/rust/hg-cpython/Cargo.toml b/rust/hg-cpython/Cargo.toml
--- a/rust/hg-cpython/Cargo.toml
+++ b/rust/hg-cpython/Cargo.toml
@@ -24,6 +24,7 @@
 [dependencies]
 hg-core = { path = "../hg-core"}
 libc = '*'
+log = "0.4.8"
 simple_logger = "1.6.0"
 
 [dependencies.cpython]
diff --git a/rust/hg-cpython/src/dirstate/status.rs b/rust/hg-cpython/src/dirstate/status.rs
--- a/rust/hg-cpython/src/dirstate/status.rs
+++ b/rust/hg-cpython/src/dirstate/status.rs
@@ -84,7 +84,10 @@
 fn handle_fallback(py: Python, err: StatusError) -> PyErr {
     match err {
         StatusError::Pattern(e) => {
-            PyErr::new::<FallbackError, _>(py, e.to_string())
+            let as_string = e.to_string();
+            log::trace!("Rust status fallback: `{}`", &as_string);
+
+            PyErr::new::<FallbackError, _>(py, &as_string)
         }
         e => PyErr::new::<ValueError, _>(py, e.to_string()),
     }