Skip to content
Snippets Groups Projects
Commit 6cd9f53a authored by Simon Sapin's avatar Simon Sapin
Browse files

rhg: Fall back to Python on --repository with an URL

A low-hanging fruit to improve on this would be to properly parse
and handle `file:` URLs. But other Python-based hg supports
some other URL schemes for features that rhg does not support yet.

Differential Revision: https://phab.mercurial-scm.org/D10101
parent 562a676e
No related branches found
No related tags found
No related merge requests found
......@@ -826,5 +826,6 @@
"env_logger",
"format-bytes",
"hg-core",
"lazy_static",
"log",
"micro-timer",
......@@ -829,5 +830,6 @@
"log",
"micro-timer",
"regex",
"users",
]
......
......@@ -12,5 +12,6 @@
chrono = "0.4.19"
clap = "2.33.1"
derive_more = "0.99"
lazy_static = "1.4.0"
log = "0.4.11"
micro-timer = "0.3.1"
......@@ -15,5 +16,6 @@
log = "0.4.11"
micro-timer = "0.3.1"
regex = "1.3.9"
env_logger = "0.7.1"
format-bytes = "0.2.0"
users = "0.11.0"
......@@ -95,6 +95,25 @@
exit(&ui, on_unsupported, Err(error.into()))
});
if let Some(repo_path_bytes) = &early_args.repo {
lazy_static::lazy_static! {
static ref SCHEME_RE: regex::bytes::Regex =
// Same as `_matchscheme` in `mercurial/util.py`
regex::bytes::Regex::new("^[a-zA-Z0-9+.\\-]+:").unwrap();
}
if SCHEME_RE.is_match(&repo_path_bytes) {
exit(
&ui,
OnUnsupported::from_config(&non_repo_config),
Err(CommandError::UnsupportedFeature {
message: format_bytes!(
b"URL-like --repository {}",
repo_path_bytes
),
}),
)
}
}
let repo_path = early_args.repo.as_deref().map(get_path_from_bytes);
let repo_result = match Repo::find(&non_repo_config, repo_path) {
Ok(repo) => Ok(repo),
......
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