comparison rust/hg-core/src/revset.rs @ 46821:e8ae91b1a63d

rhg: raise wdir specific error for `hg debugdata` Helps remove the conditional in `test-debugcommands.t` for rhg. Differential Revision: https://phab.mercurial-scm.org/D10254
author Pulkit Goyal <7895pulkit@gmail.com>
date Tue, 23 Mar 2021 19:58:49 +0530
parents df247f58ecee
children 21d25e9ee58e
comparison
equal deleted inserted replaced
46820:821929d59e01 46821:e8ae91b1a63d
5 use crate::errors::HgError; 5 use crate::errors::HgError;
6 use crate::repo::Repo; 6 use crate::repo::Repo;
7 use crate::revlog::changelog::Changelog; 7 use crate::revlog::changelog::Changelog;
8 use crate::revlog::revlog::{Revlog, RevlogError}; 8 use crate::revlog::revlog::{Revlog, RevlogError};
9 use crate::revlog::NodePrefix; 9 use crate::revlog::NodePrefix;
10 use crate::revlog::{Revision, NULL_REVISION}; 10 use crate::revlog::{Revision, NULL_REVISION, WORKING_DIRECTORY_HEX};
11 use crate::Node;
11 12
12 /// Resolve a query string into a single revision. 13 /// Resolve a query string into a single revision.
13 /// 14 ///
14 /// Only some of the revset language is implemented yet. 15 /// Only some of the revset language is implemented yet.
15 pub fn resolve_single( 16 pub fn resolve_single(
49 if integer >= 0 && revlog.has_rev(integer) { 50 if integer >= 0 && revlog.has_rev(integer) {
50 return Ok(integer); 51 return Ok(integer);
51 } 52 }
52 } 53 }
53 if let Ok(prefix) = NodePrefix::from_hex(input) { 54 if let Ok(prefix) = NodePrefix::from_hex(input) {
55 if prefix.is_prefix_of(&Node::from_hex(WORKING_DIRECTORY_HEX).unwrap())
56 {
57 return Err(RevlogError::WDirUnsupported);
58 }
54 return revlog.get_node_rev(prefix); 59 return revlog.get_node_rev(prefix);
55 } 60 }
56 Err(RevlogError::InvalidRevision) 61 Err(RevlogError::InvalidRevision)
57 } 62 }