--- a/.hgsigs Mon Dec 09 06:23:34 2024 +0100
+++ b/.hgsigs Thu Jan 16 17:18:16 2025 +0100
@@ -269,3 +269,4 @@
dc97e8670decc9925c2f570bdca636778184b199 0 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
--- a/.hgtags Mon Dec 09 06:23:34 2024 +0100
+++ b/.hgtags Thu Jan 16 17:18:16 2025 +0100
@@ -285,3 +285,4 @@
dc97e8670decc9925c2f570bdca636778184b199 6.9rc0
31d45a1cbc479ac73fc8b355abe99e090eb6c747 6.9rc1
b267c5764cc6b804c619a42067405f27e8705beb 6.9
+9751b9ccd74d8386687f88fbdfe280877840ec7d 6.9.1
--- a/contrib/packaging/debian/copyright Mon Dec 09 06:23:34 2024 +0100
+++ b/contrib/packaging/debian/copyright Thu Jan 16 17:18:16 2025 +0100
@@ -3,7 +3,7 @@
Source: https://www.mercurial-scm.org/
Files: *
-Copyright: 2005-2024, Olivia Mackall <olivia@selenic.com> and others.
+Copyright: 2005-2025, Olivia Mackall <olivia@selenic.com> and others.
License: GPL-2+
This program is free software; you can redistribute it
and/or modify it under the terms of the GNU General Public
--- a/contrib/packaging/inno/mercurial.iss Mon Dec 09 06:23:34 2024 +0100
+++ b/contrib/packaging/inno/mercurial.iss Thu Jan 16 17:18:16 2025 +0100
@@ -6,7 +6,7 @@
#endif
[Setup]
-AppCopyright=Copyright 2005-2024 Olivia Mackall and others
+AppCopyright=Copyright 2005-2025 Olivia Mackall and others
AppName=Mercurial
AppVersion={#VERSION}
OutputBaseFilename=Mercurial-{#VERSION}{#SUFFIX}
@@ -29,7 +29,7 @@
DefaultDirName={pf}\Mercurial
SourceDir=stage
VersionInfoDescription=Mercurial distributed SCM (version {#VERSION})
-VersionInfoCopyright=Copyright 2005-2024 Olivia Mackall and others
+VersionInfoCopyright=Copyright 2005-2025 Olivia Mackall and others
VersionInfoCompany=Olivia Mackall and others
VersionInfoVersion={#QUAD_VERSION}
InternalCompressLevel=max
Binary file contrib/packaging/wix/COPYING.rtf has changed
--- a/contrib/win32/ReadMe.html Mon Dec 09 06:23:34 2024 +0100
+++ b/contrib/win32/ReadMe.html Thu Jan 16 17:18:16 2025 +0100
@@ -140,7 +140,7 @@
</p>
<p>
- Mercurial is Copyright 2005-2024 Olivia Mackall and others.
+ Mercurial is Copyright 2005-2025 Olivia Mackall and others.
</p>
<p>
--- a/hgext/acl.py Mon Dec 09 06:23:34 2024 +0100
+++ b/hgext/acl.py Thu Jan 16 17:18:16 2025 +0100
@@ -59,6 +59,7 @@
Bookmark-based Access Control
-----------------------------
+
Use the ``acl.deny.bookmarks`` and ``acl.allow.bookmarks`` sections to
have bookmark-based access control. Keys in these sections can be
either:
--- a/mercurial/color.py Mon Dec 09 06:23:34 2024 +0100
+++ b/mercurial/color.py Thu Jan 16 17:18:16 2025 +0100
@@ -386,6 +386,9 @@
]
start = b'\033[' + b';'.join(start) + b'm'
stop = b'\033[' + pycompat.bytestr(activeeffects[b'none']) + b'm'
+ if ui._readlineprompt:
+ start = b'\001' + start + b'\001'
+ stop = b'\002' + stop + b'\002'
return _mergeeffects(text, start, stop)
@@ -518,7 +521,8 @@
else:
origattr = csbi.wAttributes
ansire = re.compile(
- br'\033\[([^m]*)m([^\033]*)(.*)', re.MULTILINE | re.DOTALL
+ br'\001?\033\[([^m]*)m\002?([^\033]*)(.*)',
+ re.MULTILINE | re.DOTALL,
)
def win32print(ui, writefunc, text, **opts):
--- a/mercurial/commands.py Mon Dec 09 06:23:34 2024 +0100
+++ b/mercurial/commands.py Thu Jan 16 17:18:16 2025 +0100
@@ -7640,7 +7640,7 @@
)
license = _(
b"(see https://mercurial-scm.org for more information)\n"
- b"\nCopyright (C) 2005-2024 Olivia Mackall and others\n"
+ b"\nCopyright (C) 2005-2025 Olivia Mackall and others\n"
b"This is free software; see the source for copying conditions. "
b"There is NO\nwarranty; "
b"not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
--- a/mercurial/helptext/hg.1.txt Mon Dec 09 06:23:34 2024 +0100
+++ b/mercurial/helptext/hg.1.txt Thu Jan 16 17:18:16 2025 +0100
@@ -112,7 +112,7 @@
Copying
"""""""
-Copyright (C) 2005-2024 Olivia Mackall.
+Copyright (C) 2005-2025 Olivia Mackall.
Free use of this software is granted under the terms of the GNU General
Public License version 2 or any later version.
--- a/mercurial/helptext/hgignore.5.txt Mon Dec 09 06:23:34 2024 +0100
+++ b/mercurial/helptext/hgignore.5.txt Thu Jan 16 17:18:16 2025 +0100
@@ -26,7 +26,7 @@
Copying
=======
This manual page is copyright 2006 Vadim Gelfer.
-Mercurial is copyright 2005-2024 Olivia Mackall.
+Mercurial is copyright 2005-2025 Olivia Mackall.
Free use of this software is granted under the terms of the GNU General
Public License version 2 or any later version.
--- a/mercurial/helptext/hgrc.5.txt Mon Dec 09 06:23:34 2024 +0100
+++ b/mercurial/helptext/hgrc.5.txt Thu Jan 16 17:18:16 2025 +0100
@@ -34,7 +34,7 @@
Copying
=======
This manual page is copyright 2005 Bryan O'Sullivan.
-Mercurial is copyright 2005-2024 Olivia Mackall.
+Mercurial is copyright 2005-2025 Olivia Mackall.
Free use of this software is granted under the terms of the GNU General
Public License version 2 or any later version.
--- a/mercurial/helptext/rust.txt Mon Dec 09 06:23:34 2024 +0100
+++ b/mercurial/helptext/rust.txt Thu Jan 16 17:18:16 2025 +0100
@@ -67,21 +67,16 @@
Using pip
---------
-Users of `pip` can install the Rust extensions with the following command::
-
- $ pip install mercurial \
- --global-option \
- --rust \
- --no-use-pep517 \
- --no-binary mercurial
+Users of `pip` can install the Rust extensions with the following commands::
-`--no-use-pep517` is here to tell `pip` to preserve backwards compatibility with
-the legacy `setup.py` system. Mercurial has not yet migrated its complex setup
-to the new system, so we still need this to add compiled extensions.
+ $ pip cache remove mercurial
+ $ pip install mercurial -v \
+ --config-settings --global-option=--rust \
+ --no-binary mercurial --force
-`--no-binary` is there to tell pip to not use the pre-compiled wheels that are
-missing rust support. This might take a couple of minutes because you're
-compiling everything.
+`pip cache remove` and `--no-binary` are there to tell pip to not use the
+pre-compiled wheels that are missing rust support. This might take a couple
+of minutes because you're compiling everything.
See the "Checking for Rust" section to see if the install succeeded.
--- a/mercurial/scmutil.py Mon Dec 09 06:23:34 2024 +0100
+++ b/mercurial/scmutil.py Thu Jan 16 17:18:16 2025 +0100
@@ -2498,10 +2498,8 @@
RESOURCE_HIGH: int = 3
RESOURCE_MEDIUM: int = 2
RESOURCE_LOW: int = 1
-RESOURCE_DEFAULT: int = 0
RESOURCE_MAPPING: Dict[bytes, int] = {
- b'default': RESOURCE_DEFAULT,
b'low': RESOURCE_LOW,
b'medium': RESOURCE_MEDIUM,
b'high': RESOURCE_HIGH,
@@ -2516,13 +2514,16 @@
"""return the resource profile for a dimension
If no dimension is specified, the generic value is returned"""
- generic_name = ui.config(b'usage', b'resources')
- value = RESOURCE_MAPPING.get(generic_name, RESOURCE_DEFAULT)
- if value == RESOURCE_DEFAULT:
- value = DEFAULT_RESOURCE
+
+ def config(section, name):
+ value_name = ui.config(section, name, default=b'default')
+ return RESOURCE_MAPPING.get(value_name)
+
if dimension is not None:
- sub_name = ui.config(b'usage', b'resources.%s' % dimension)
- sub_value = RESOURCE_MAPPING.get(sub_name, RESOURCE_DEFAULT)
- if sub_value != RESOURCE_DEFAULT:
- value = sub_value
- return value
+ value = config(b'usage', b'resources.%s' % dimension)
+ if value is not None:
+ return value
+ value = config(b'usage', b'resources')
+ if value is not None:
+ return value
+ return DEFAULT_RESOURCE
--- a/mercurial/ui.py Mon Dec 09 06:23:34 2024 +0100
+++ b/mercurial/ui.py Thu Jan 16 17:18:16 2025 +0100
@@ -262,6 +262,8 @@
self.logblockedtimes = False
# color mode: see mercurial/color.py for possible value
self._colormode = None
+ # readline prompt: is this currently for a readline prompt?
+ self._readlineprompt = False
self._terminfoparams = {}
self._styles = {}
self._uninterruptible = False
@@ -1741,7 +1743,12 @@
self.flush()
prompt = b' '
else:
- prompt = self.label(prompt, b'ui.prompt') + b' '
+ wasreadlineprompt = self._readlineprompt
+ try:
+ self._readlineprompt = True
+ prompt = self.label(prompt, b'ui.prompt') + b' '
+ finally:
+ self._readlineprompt = wasreadlineprompt
# prompt ' ' must exist; otherwise readline may delete entire line
# - http://bugs.python.org/issue12833
--- a/relnotes/6.9 Mon Dec 09 06:23:34 2024 +0100
+++ b/relnotes/6.9 Thu Jan 16 17:18:16 2025 +0100
@@ -1,3 +1,21 @@
+= Mercurial 6.9.1 =
+
+ * ci: disable caching of the wheels that get built to save space
+ * tests: use `--no-cache-dir` with `pip`
+ * run-tests: disable caching of the wheels when installing test Mercurial
+ * manifest: delay import of `typing.ByteString` for py 3.14 support (issue6940)
+ * contrib: propagate `pytype` failures outside of `check-pytype.sh`
+ * acl: fix confusing formatting in help text (issue6942)
+ * ui: fix escape sequences in in readline prompts (issue6930)
+ * ci: let branch job run for scheduled build too
+ * ci: automatically starts platform and py-version test for scheduled build
+ * help: fix command build with rust
+ * copyright: update to 2025
+ * ci: also let the nightly build run on tags
+ * usage: refactor usage.resources config parsing
+ * hg-core: fix usage.resources typo
+ * hg-core: fix usage.resources default logic
+
= Mercurial 6.9 =
== Backwards Compatibility Changes ==
--- a/rust/hg-core/src/config/mod.rs Mon Dec 09 06:23:34 2024 +0100
+++ b/rust/hg-core/src/config/mod.rs Thu Jan 16 17:18:16 2025 +0100
@@ -816,19 +816,16 @@
&self,
dimension: Option<&str>,
) -> ResourceProfile {
- let mut value = self.resource_profile_from_item(b"usage", b"resource");
- if let Some(dimension) = &dimension {
- let sub_value = self.resource_profile_from_item(
+ let value = self.resource_profile_from_item(b"usage", b"resources");
+ let sub_value = dimension.and_then(|dimension| {
+ self.resource_profile_from_item(
b"usage",
format!("resources.{}", dimension).as_bytes(),
- );
- if sub_value != ResourceProfileValue::Default {
- value = sub_value
- }
- }
+ )
+ });
ResourceProfile {
dimension: dimension.map(ToOwned::to_owned),
- value,
+ value: sub_value.or(value).unwrap_or_default(),
}
}
@@ -836,13 +833,12 @@
&self,
section: &[u8],
item: &[u8],
- ) -> ResourceProfileValue {
- match self.get(section, item).unwrap_or(b"default") {
- b"default" => ResourceProfileValue::Default,
- b"low" => ResourceProfileValue::Low,
- b"medium" => ResourceProfileValue::Medium,
- b"high" => ResourceProfileValue::High,
- _ => ResourceProfileValue::Default,
+ ) -> Option<ResourceProfileValue> {
+ match self.get(section, item)? {
+ b"low" => Some(ResourceProfileValue::Low),
+ b"medium" => Some(ResourceProfileValue::Medium),
+ b"high" => Some(ResourceProfileValue::High),
+ _ => None,
}
}
}
@@ -856,10 +852,10 @@
pub value: ResourceProfileValue,
}
-#[derive(Debug, Eq, PartialEq, PartialOrd, Ord)]
+#[derive(Debug, Eq, PartialEq, PartialOrd, Ord, Default)]
pub enum ResourceProfileValue {
- Default,
Low,
+ #[default]
Medium,
High,
}
--- a/rust/hgcli/README.md Mon Dec 09 06:23:34 2024 +0100
+++ b/rust/hgcli/README.md Thu Jan 16 17:18:16 2025 +0100
@@ -30,7 +30,7 @@
Mercurial Distributed SCM (version 5.3.1+433-f99cd77d53dc+20200331)
(see https://mercurial-scm.org for more information)
- Copyright (C) 2005-2024 Olivia Mackall and others
+ Copyright (C) 2005-2025 Olivia Mackall and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
--- a/setup.py Mon Dec 09 06:23:34 2024 +0100
+++ b/setup.py Thu Jan 16 17:18:16 2025 +0100
@@ -1760,7 +1760,7 @@
extra['console'] = [
{
'script': 'hg',
- 'copyright': 'Copyright (C) 2005-2024 Olivia Mackall and others',
+ 'copyright': 'Copyright (C) 2005-2025 Olivia Mackall and others',
'product_version': version,
}
]