D11724: merge: with stable

2021-10-27 Thread aalekseyev (Arseniy Alekseyev)
aalekseyev created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REPOSITORY
  rHG Mercurial

BRANCH
  default

REVISION DETAIL
  https://phab.mercurial-scm.org/D11724

AFFECTED FILES
  .hgsigs
  .hgtags
  relnotes/5.9

CHANGE DETAILS

diff --git a/relnotes/5.9 b/relnotes/5.9
--- a/relnotes/5.9
+++ b/relnotes/5.9
@@ -26,6 +26,10 @@
 
 == Bug Fixes ==
 
+ * Fixed committing empty files with `narrow`
+ * Allow overriding `pip`'s pep517 compliance to build C or Rust extensions
+ * Fixed regression on outgoing email when not specifying revisions
+ * Fixed a regression causing bookmarks to disappear when using Rust 
persistent nodemap
  * Fixed a regression (in 5.9.1) introduced in 5.9 when cloning repos with
deep filenames
  * Fixed detection of directories becoming symlinks, but only when using the
diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -230,3 +230,4 @@
 53221078e0de65d1a821ce5311dec45a7a978301 5.9
 86a60679cf619e14cee9442f865fcf31b142cb9f 5.9.1
 750920b18aaaddd654756be40dec59d90f2643be 5.9.2
+6ee0244fc1cf889ae543d2ce0ec45201ae0be6e1 5.9.3
diff --git a/.hgsigs b/.hgsigs
--- a/.hgsigs
+++ b/.hgsigs
@@ -217,3 +217,4 @@
 53221078e0de65d1a821ce5311dec45a7a978301 0 
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



To: aalekseyev, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


D11723: rhg: make it possible to opt out of [rhg cat]

2021-10-27 Thread aalekseyev (Arseniy Alekseyev)
aalekseyev created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REPOSITORY
  rHG Mercurial

BRANCH
  stable

REVISION DETAIL
  https://phab.mercurial-scm.org/D11723

AFFECTED FILES
  rust/rhg/src/commands/cat.rs

CHANGE DETAILS

diff --git a/rust/rhg/src/commands/cat.rs b/rust/rhg/src/commands/cat.rs
--- a/rust/rhg/src/commands/cat.rs
+++ b/rust/rhg/src/commands/cat.rs
@@ -33,6 +33,15 @@
 
 #[timed]
 pub fn run(invocation: ::CliInvocation) -> Result<(), CommandError> {
+let cat_enabled_default = true;
+let cat_enabled = invocation.config.get_option(b"rhg", b"cat")?;
+if !cat_enabled.unwrap_or(cat_enabled_default) {
+return Err(CommandError::unsupported(
+"cat is disabled in rhg (enable it with 'rhg.cat = true' \
+or enable fallback with 'rhg.on-unsupported = fallback')",
+));
+}
+
 let rev = invocation.subcommand_args.value_of("rev");
 let file_args = match invocation.subcommand_args.values_of("files") {
 Some(files) => files.collect(),



To: aalekseyev, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


D11722: rhg: implement the rhg-debugignore subcommand

2021-10-27 Thread aalekseyev (Arseniy Alekseyev)
aalekseyev created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REVISION SUMMARY
  This can be used to inspect the generated pattern, but also to benchmark
  the time it takes to parse hgignore.

REPOSITORY
  rHG Mercurial

BRANCH
  stable

REVISION DETAIL
  https://phab.mercurial-scm.org/D11722

AFFECTED FILES
  rust/hg-core/src/matchers.rs
  rust/rhg/src/commands/debugignorerhg.rs
  rust/rhg/src/main.rs

CHANGE DETAILS

diff --git a/rust/rhg/src/main.rs b/rust/rhg/src/main.rs
--- a/rust/rhg/src/main.rs
+++ b/rust/rhg/src/main.rs
@@ -434,6 +434,7 @@
 cat
 debugdata
 debugrequirements
+debugignorerhg
 files
 root
 config
diff --git a/rust/rhg/src/commands/debugignorerhg.rs 
b/rust/rhg/src/commands/debugignorerhg.rs
new file mode 100644
--- /dev/null
+++ b/rust/rhg/src/commands/debugignorerhg.rs
@@ -0,0 +1,39 @@
+
+use crate::error::CommandError;
+use clap::{SubCommand};
+use hg;
+use hg::matchers::get_ignore_matcher;
+use hg::StatusError;
+use log::{warn};
+
+pub const HELP_TEXT:  = "
+Show effective hgignore patterns used by rhg.
+
+This is a pure Rust version of `hg debugignore`.
+
+Some options might be missing, check the list below.
+";
+
+pub fn args() -> clap::App<'static, 'static> {
+SubCommand::with_name("debugignorerhg").about(HELP_TEXT)
+}
+
+pub fn run(invocation: ::CliInvocation) -> Result<(), CommandError> {
+let repo = invocation.repo?;
+
+let ignore_file = repo.working_directory_vfs().join(".hgignore"); // TODO 
hardcoded
+
+let (ignore_matcher, warnings) = get_ignore_matcher(
+vec![ignore_file],
+_directory_path().to_owned(),
+ |_pattern_bytes| (),
+).map_err(|e| StatusError::from(e))?;
+
+if !warnings.is_empty() {
+warn!("Pattern warnings: {:?}", );
+}
+
+let patterns = ignore_matcher.debug_get_patterns();
+println!("{}", String::from_utf8_lossy(patterns));
+Ok (())
+}
diff --git a/rust/hg-core/src/matchers.rs b/rust/hg-core/src/matchers.rs
--- a/rust/hg-core/src/matchers.rs
+++ b/rust/hg-core/src/matchers.rs
@@ -560,14 +560,11 @@
 /// Parses all "ignore" files with their recursive includes and returns a
 /// function that checks whether a given file (in the general sense) should be
 /// ignored.
-pub fn get_ignore_function<'a>(
+pub fn get_ignore_matcher<'a>(
 mut all_pattern_files: Vec,
 root_dir: ,
 inspect_pattern_bytes:  impl FnMut(&[u8]),
-) -> PatternResult<(
-Box Fn(&'r HgPath) -> bool + Sync + 'a>,
-Vec,
-)> {
+) -> PatternResult<(IncludeMatcher<'a>, Vec)> {
 let mut all_patterns = vec![];
 let mut all_warnings = vec![];
 
@@ -590,10 +587,28 @@
 all_warnings.extend(warnings);
 }
 let matcher = IncludeMatcher::new(all_patterns)?;
-Ok((
-Box::new(move |path: | matcher.matches(path)),
-all_warnings,
-))
+Ok((matcher, all_warnings))
+}
+
+/// Parses all "ignore" files with their recursive includes and returns a
+/// function that checks whether a given file (in the general sense) should be
+/// ignored.
+pub fn get_ignore_function<'a>(
+all_pattern_files: Vec,
+root_dir: ,
+inspect_pattern_bytes:  impl FnMut(&[u8]),
+) -> PatternResult<(
+Box Fn(&'r HgPath) -> bool + Sync + 'a>,
+Vec,
+)> {
+let res =
+get_ignore_matcher(all_pattern_files, root_dir, inspect_pattern_bytes);
+res.map(|(matcher, all_warnings)| {
+let res: Box Fn(&'r HgPath) -> bool + Sync + 'a> =
+Box::new(move |path: | matcher.matches(path));
+
+(res, all_warnings)
+})
 }
 
 impl<'a> IncludeMatcher<'a> {
@@ -628,6 +643,10 @@
 .chain(self.parents.iter());
 DirsChildrenMultiset::new(thing, Some())
 }
+
+pub fn debug_get_patterns() -> &[u8] {
+self.patterns.as_ref()
+}
 }
 
 impl<'a> Display for IncludeMatcher<'a> {



To: aalekseyev, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel