diff --git a/rust/hg-core/src/operations/debugdata.rs b/rust/hg-core/src/operations/debugdata.rs
index 976b26bdd0d82e0b91be5543ffbad9c813b91091_cnVzdC9oZy1jb3JlL3NyYy9vcGVyYXRpb25zL2RlYnVnZGF0YS5ycw==..57dc78861196740995db134e9a13c76aac242fc8_cnVzdC9oZy1jb3JlL3NyYy9vcGVyYXRpb25zL2RlYnVnZGF0YS5ycw== 100644
--- a/rust/hg-core/src/operations/debugdata.rs
+++ b/rust/hg-core/src/operations/debugdata.rs
@@ -92,14 +92,9 @@
     }
 
     pub fn run(&mut self) -> Result<Vec<u8>, DebugDataError> {
-        let rev = self
-            .rev
-            .parse::<Revision>()
-            .or(Err(DebugDataErrorKind::InvalidRevision))?;
-
         let root = find_root::FindRoot::new().run()?;
         let index_file = match self.kind {
             DebugDataKind::Changelog => root.join(".hg/store/00changelog.i"),
             DebugDataKind::Manifest => root.join(".hg/store/00manifest.i"),
         };
         let revlog = Revlog::open(&index_file, None)?;
@@ -100,10 +95,19 @@
         let root = find_root::FindRoot::new().run()?;
         let index_file = match self.kind {
             DebugDataKind::Changelog => root.join(".hg/store/00changelog.i"),
             DebugDataKind::Manifest => root.join(".hg/store/00manifest.i"),
         };
         let revlog = Revlog::open(&index_file, None)?;
-        let data = revlog.get_rev_data(rev)?;
+
+        let data = match self.rev.parse::<Revision>() {
+            Ok(rev) => revlog.get_rev_data(rev)?,
+            _ => {
+                let node = hex::decode(&self.rev)
+                    .map_err(|_| DebugDataErrorKind::InvalidRevision)?;
+                let rev = revlog.get_node_rev(&node)?;
+                revlog.get_rev_data(rev)?
+            }
+        };
 
         Ok(data)
     }
diff --git a/tests/test-rhg.t b/tests/test-rhg.t
index 976b26bdd0d82e0b91be5543ffbad9c813b91091_dGVzdHMvdGVzdC1yaGcudA==..57dc78861196740995db134e9a13c76aac242fc8_dGVzdHMvdGVzdC1yaGcudA== 100644
--- a/tests/test-rhg.t
+++ b/tests/test-rhg.t
@@ -91,6 +91,15 @@
   file2\x005d9299349fc01ddd25d0070d149b124d8f10411e (esc)
   file3\x002661d26c649684b482d10f91960cc3db683c38b4 (esc)
 
+Debuging with full node id
+  $ rhg debugdata -c `hg log -r 0 -T '{node}'`
+  c8e64718e1ca0312eeee0f59d37f8dc612793856
+  test
+  0 0
+  file1
+  
+  commit 1 (no-eol)
+
 Cat files
   $ cd $TESTTMP
   $ rm -rf repository