Skip to content
Snippets Groups Projects
Commit 57dc78861196 authored by Antoine cezar's avatar Antoine cezar
Browse files

rhg: add full node id support for `debugdata` command

Unlike other later implemented commands `debugdata` only supported revision
number. This changeset add full node id support for consistency with other
commands.

Differential Revision: https://phab.mercurial-scm.org/D9230
parent 976b26bdd0d8
No related branches found
No related tags found
No related merge requests found
......@@ -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)
}
......
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment