[dgit import tarball mercurial 6.3.2-1+deb12u1 mercurial_6.3.2-1+deb12u1.debian.tar.xz]
--- /dev/null
+mercurial (1.4.3-1) unstable; urgency=low
+
+ mercurial.el (emacs mode for mercurial) is not installed anymore in emacs
+ paths. Emacs22 or newer has vc-hg.el that is better. If needed, this file
+ is still provided in the examples directory.
+ The alias extension does not exist anymore as its functionalities are now
+ in mercurial core. To avoid spurious warning about failed loading of
+ extension, users just have to remove it in their hgrc file.
+
+ -- Vincent Danjean <vdanjean@debian.org> Mon, 15 Feb 2010 18:06:52 +0100
+
+mercurial (1.1.2-1) unstable; urgency=low
+
+ Since the 1.1.2-1 version, mercurial does not enable any extension by
+ default anymore. Upstream asks us to do so because:
+ - users can easily enable any extension if they wish, however they cannot
+ disable a extension that have been enabled system-wide
+ - upstream prefers that default Mercurial installation is the plain Mercurial
+ without extension.
+
+ -- Vincent Danjean <vdanjean@debian.org> Sat, 17 Jan 2009 17:47:06 +0100
+
+mercurial (1.0-5) unstable; urgency=low
+
+ Since the 1.0 version, mercurial handles most of the merges internaly.
+ This is an upstream decision (see upstream changeset f077815932ce)
+ that the debian package will follow. This means that :
+ - there is no hgmerge script any more
+ - programs that were invoked by hgmerge (kdiff3, ...) are not by default
+ See http://www.selenic.com/mercurial/wiki/index.cgi/MergeToolConfiguration
+ for configuring mergetools with mercurial 1.0
+
+ -- Vincent Danjean <vdanjean@debian.org> Tue, 20 May 2008 22:37:24 +0200
+
+mercurial (1.0) unstable; urgency=low
+
+ Since the 1.0 version, the hbisect extension is now provided as a
+ built-in command. If you keep an older version of the hgext.rc file
+ in /etc/mercurial/hgrc.d/ or a $HOME/.hgrc file with the extension
+ enabled , mercurial will emit a warning: "failed to import extension
+ hgext.hbisect: No module named hbisect". Just delete the
+ hgext.hbisect entry in the hgext.rc and/or .hgrc file.
+
+ -- Gerardo Curiel <gcuriel@debian.org.ve> Wed, 02 Apr 2008 16:14:47 -0430
+
+mercurial (0.9) unstable; urgency=low
+
+ Since the 0.8.1-5 version, mercurial uses python2.4 instead of (currently the
+ default on Debian system) python2.3. This allows tailor to use the hg
+ backend (tailor requires python2.4).
+ If someone really need python2.3 version of mercurial, please tell me (with
+ reportbug for example). I will then split the package in python modules
+ (default, 2.3, 2.4, ...) and one executable.
+
+ Note: if you copied the hgwebdir.cgi or hgweb.cgi script from the examples
+ directory, do not forget to update it so that it runs /usr/bin/python2.4
+ instead of /usr/bin/python (or recopy it)
+
+ UPDATE since 0.9-6:
+ Due to the new python policy, mercurial modules are now available for all
+ supported python versions in debian (currently 2.3 and 2.4)
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Tue, 4 Jul 2006 00:53:21 +0200
+
+mercurial (0.8) unstable; urgency=low
+ Upgrade notes:
+ - diff and status command are now repo-wide by default
+ (use 'hg diff .' for the old behavior)
+ - GPG signing is now done with the gpg extension
+ - the --text option for commit, rawcommit, and tag has been removed
+ - the copy/rename --parents option has been removed
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Mon, 30 Jan 2006 16:11:19 +0100
+
+mercurial (0.6c-1) unstable; urgency=low
+
+ Previous versions of mercurial can lead to conflicts for internal filenames
+ if the repo has both a file 'foo' and a directory 'foo.d'.
+ This version of mercurial solves this, however this means that some internal
+ files have been renamed.
+
+ If you want to use (commit, clone on same filesystem, ...) a repo created
+ with an old version with the new version AND this repo contains directory
+ nammed 'foo.d', then you need to deal with it. According to the upstream
+ author, something like this should do the trick:
+
+ find .hg -type d -name "*.[di]" -exec echo mv {} {}.hg ";"
+
+ Run this at the top of your working dir. Take out the 'echo' once
+ you've confirmed it's finding the right files.
+
+ Also note that 0.6c and older clients should be perfectly compatible
+ over the wire, so long as each side has the appropriate directory
+ naming.
+
+ But if you use 0.6c to pull into a repo created by 0.6b with changes
+ that touch files in an affected directory, you're likely to have
+ strange behavior.
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Tue, 23 Aug 2005 09:55:35 +0200
--- /dev/null
+Mercurial for Debian
+--------------------
+
+Table of contents
+* Documentation
+* Extensions
+* Emacs support
+
+
+Documentation
+*************
+
+Mercurial documentation is available on the web at:
+ http://hgbook.red-bean.com/ and
+ https://www.mercurial-scm.org/wiki
+
+Extensions
+**********
+
+Extensions can be enabled system-wide, per-user and/or per repository (see
+hgrc(5) for more information). Previous versions of this Debian package
+enabled some extensions by default; however, this is no longer the case.
+
+To enable extensions system-wide, you may edit the
+/etc/mercurial/hgrc.d/hgext.rc configuration file. This file also contains
+information on the dependencies of each extension.
+
+
+Emacs support
+*************
+This package installs a mercurial.el file in the example directory
+(/usr/share/doc/mercurial/examples/). However, with emacs22 or better,
+vc-hg.el provided directly by emacs is better. This is why mercurial.el
+is not installed by default anymore.
+
+ -- Javi Merino <merino.jav@gmail.com>, Sun, 17 Jul 2016 13:35:02 +0100
--- /dev/null
+See /usr/share/doc/quilt/README.source
--- /dev/null
+[web]
+# user can disable this Debian default by overriding this option in ~/.hgrc
+# and/or using the --insecure command line switch
+cacerts = /etc/ssl/certs/ca-certificates.crt
+
--- /dev/null
+mercurial (6.3.2-1+deb12u1) bookworm-security; urgency=high
+
+ * CVE-2025-2361: reflected XSS in hgweb (closes: #1100899)
+ * patchbomb: don't test ambiguous address (fixes FTBFS after python's
+ fix for CVE-2023-27043).
+
+ -- Julien Cristau <jcristau@debian.org> Thu, 20 Mar 2025 13:56:44 +0100
+
+mercurial (6.3.2-1) sid; urgency=medium
+
+ * New upstream bugfix release.
+ * from_upstream_stable.patch: pull in upstream changes up to changeset 812a9fbf4380
+ * cgitb.patch: stop importing cgitb to avoid deprecation warnings
+ * Skip test-remotefilelog-gc.t.
+ * This fixes compatibility with python 3.11 (closes: #1028815)
+ * Bump test timeout to 1800 because riscv64 is apparently even slower than
+ mips (closes: #1024867).
+
+ -- Julien Cristau <jcristau@debian.org> Mon, 20 Feb 2023 18:44:46 +0100
+
+mercurial (6.3.1-2) sid; urgency=medium
+
+ * Fix FTBFS on 32-bit (closes: #1025621)
+
+ -- Julien Cristau <jcristau@debian.org> Wed, 07 Dec 2022 13:59:55 +0100
+
+mercurial (6.3.1-1) sid; urgency=medium
+
+ * New upstream release
+ - add python3-packaging to build-deps and autopkgtest dependencies for
+ run-tests, replacing
+ py310/2_run_tests__silence_distutils_deprecation_warning.patch
+ * test-hghave-testrepo.patch: new patch, to make test-hghave.t pass outside a
+ hg repo.
+
+ -- Julien Cristau <jcristau@debian.org> Tue, 06 Dec 2022 11:57:31 +0100
+
+mercurial (6.2.3-1) sid; urgency=medium
+
+ * New upstream bugfix release.
+
+ -- Julien Cristau <jcristau@debian.org> Fri, 07 Oct 2022 14:26:54 +0200
+
+mercurial (6.2.2-1) sid; urgency=medium
+
+ * New upstream bugfix release
+ - fixed fsmonitor extension (closes: #1014817)
+
+ -- Julien Cristau <jcristau@debian.org> Fri, 02 Sep 2022 14:08:12 +0200
+
+mercurial (6.2-1) sid; urgency=medium
+
+ * New upstream release
+ - Update patch stack
+
+ -- Julien Cristau <jcristau@debian.org> Mon, 11 Jul 2022 15:19:13 +0200
+
+mercurial (6.1.3-1) sid; urgency=medium
+
+ * Blocklist test-convert-cvs-synthetic.t.
+ * New upstream bugfix release.
+
+ -- Julien Cristau <jcristau@debian.org> Tue, 07 Jun 2022 20:53:46 +0200
+
+mercurial (6.1.2-1) sid; urgency=medium
+
+ * Add zsh_completion to debian/copyright (closes: #1004341)
+ * New upstream bugfix release
+ * Fix test failures with openssl 3 (closes: #1011076)
+
+ -- Julien Cristau <jcristau@debian.org> Mon, 23 May 2022 12:21:07 +0200
+
+mercurial (6.1.1-1) sid; urgency=medium
+
+ * New upstream bugfix release.
+ * Fix test failures with python 3.10 (closes: #1008747).
+
+ -- Julien Cristau <jcristau@debian.org> Mon, 11 Apr 2022 14:08:09 +0200
+
+mercurial (6.1-4) sid; urgency=medium
+
+ * Upload to unstable.
+
+ -- Julien Cristau <jcristau@debian.org> Thu, 24 Mar 2022 20:39:34 +0100
+
+mercurial (6.1-3) experimental; urgency=medium
+
+ * Fix test-clone-stream_bigendian.patch.
+
+ -- Julien Cristau <jcristau@debian.org> Tue, 15 Mar 2022 17:18:53 +0100
+
+mercurial (6.1-2) experimental; urgency=medium
+
+ * revlog_unsigned_char_fix.patch: fix FTBFS on architectures with
+ unsigned char
+ * Update test blacklist:
+ - re-enable test-nointerrupt.t, test-https.t and
+ test-narrow-shallow.t, fixed upstream
+ - disable test-http-bad-server.t for intermittent failures
+ * test-clone-stream_bigendian.patch: fix test-clone-stream.t failure
+ on bigendian archs.
+
+ -- Julien Cristau <jcristau@debian.org> Tue, 15 Mar 2022 15:10:53 +0100
+
+mercurial (6.1-1) experimental; urgency=medium
+
+ * New upstream release.
+ * deb_specific__which_silence_warning.patch: delete, no longer needed.
+
+ -- Julien Cristau <jcristau@debian.org> Wed, 02 Mar 2022 17:18:42 +0100
+
+mercurial (6.0.2-1) unstable; urgency=medium
+
+ * Blocklist test-git-interop.t since we don't ship the corresponding
+ extension.
+ * New upstream bugfix release.
+
+ -- Julien Cristau <jcristau@debian.org> Thu, 03 Feb 2022 11:01:46 +0100
+
+mercurial (6.0.1-3) unstable; urgency=medium
+
+ * Use upstream's Makefile to build/install chg and man pages.
+
+ -- Julien Cristau <jcristau@debian.org> Thu, 13 Jan 2022 16:23:32 +0100
+
+mercurial (6.0.1-2) unstable; urgency=medium
+
+ * Stop installing debian-specific hg-ssh manpage, upstream has
+ supplied one since 2016.
+ * Replace pylint3 with pylint in autopkgtest dependencies.
+ * Add python3-subversion and python3-pygit2 autopkgtest dependencies
+
+ -- Julien Cristau <jcristau@debian.org> Thu, 13 Jan 2022 11:35:12 +0100
+
+mercurial (6.0.1-1) unstable; urgency=medium
+
+ * Add Raphaël Gomès' key to the known set.
+ * New upstream release.
+ + deb_specific__test_zstd_s390x.patch: dropped, merged upstream
+ * Upload to unstable.
+
+ -- Julien Cristau <jcristau@debian.org> Thu, 06 Jan 2022 10:16:00 +0100
+
+mercurial (6.0-1) experimental; urgency=medium
+
+ * New upstream release
+
+ -- Julien Cristau <jcristau@debian.org> Tue, 23 Nov 2021 20:37:36 +0100
+
+mercurial (6.0~rc0-1) experimental; urgency=medium
+
+ * New upstream release candidate.
+
+ -- Julien Cristau <jcristau@debian.org> Wed, 10 Nov 2021 13:12:13 +0100
+
+mercurial (5.9.3-1) unstable; urgency=medium
+
+ * New upstream release.
+ + proposed_upstream__revlog_s390x_part[12].patch: dropped, merged upstream
+ + deb_specific__test_zstd_s390x.patch: updated
+
+ -- Julien Cristau <jcristau@debian.org> Thu, 28 Oct 2021 22:22:46 +0200
+
+mercurial (5.9-3) unstable; urgency=medium
+
+ * Further adjust tests for endianness-related variations.
+ * Silence yet another test warning about `which`.
+
+ -- Julien Cristau <jcristau@debian.org> Wed, 25 Aug 2021 19:54:04 +0200
+
+mercurial (5.9-2) unstable; urgency=medium
+
+ * Fix bugs in revlog parsing causing issues on s390x, and adjust some
+ tests to accept variations in zstd output. Closes: #992844.
+
+ -- Julien Cristau <jcristau@debian.org> Wed, 25 Aug 2021 17:22:58 +0200
+
+mercurial (5.9-1) unstable; urgency=medium
+
+ [ Nicolas Dandrimont ]
+ * New upstream release.
+ - Add OpenPGP key for Pulkit Goyal <7895pulkit@gmail.com>.
+ - Refresh patches.
+
+ [ Julien Cristau ]
+ * Silence warnings from `which` in tests.
+
+ -- Julien Cristau <jcristau@debian.org> Mon, 23 Aug 2021 17:04:40 +0200
+
+mercurial (5.6.1-4) unstable; urgency=medium
+
+ * Revert -mno-lra workaround on mips64el, #871514 was fixed. Fixes
+ occasional FTBFS on mips64el.
+
+ -- Stefano Rivera <stefanor@debian.org> Sun, 23 May 2021 08:37:06 -0400
+
+mercurial (5.6.1-3) unstable; urgency=medium
+
+ * Team upload.
+
+ [ Helmut Grohne ]
+ * Annotate test dependencies <!nocheck> (closes: #980337).
+
+ [ Stefano Rivera ]
+ * python-3.9.2.patch: Use "&" instead of ";" as query string separator
+ in test-archive.t to fix FTBFS with Python 3.9.2, which changed its
+ urllib.parse.parse_qsl() behavior to only accept "&" as a separator by
+ default. (closes: #986514)
+
+ -- Stefano Rivera <stefanor@debian.org> Fri, 21 May 2021 12:06:47 -0400
+
+mercurial (5.6.1-2) unstable; urgency=medium
+
+ * tests: make test-subrepo-git.t compatible with git's master->main
+ rename (closes: #980576).
+
+ -- Julien Cristau <jcristau@debian.org> Mon, 01 Feb 2021 17:47:09 +0100
+
+mercurial (5.6.1-1) unstable; urgency=medium
+
+ * New upstream release.
+ * Update Uploaders: remove vicho and vdanjean, add jcristau. With
+ thanks for their past contributions!
+
+ -- Julien Cristau <jcristau@debian.org> Fri, 08 Jan 2021 17:16:53 +0100
+
+mercurial (5.5.2-1) unstable; urgency=medium
+
+ [ Ondřej Nový ]
+ * d/control: Update Maintainer field with new Debian Python Team
+ contact address.
+ * d/control: Update Vcs-* fields with new Debian Python Team Salsa
+ layout.
+
+ [ Julien Cristau ]
+ * New upstream bugfix release
+
+ -- Julien Cristau <jcristau@debian.org> Wed, 14 Oct 2020 14:45:55 +0200
+
+mercurial (5.5.1-1) unstable; urgency=medium
+
+ * Team upload.
+ * New upstream bugfix release.
+
+ -- Julien Cristau <jcristau@debian.org> Wed, 02 Sep 2020 10:26:16 +0200
+
+mercurial (5.5-2) unstable; urgency=medium
+
+ * (Hopefully) fix flakiness in test-stdio.py.
+
+ -- Tristan Seligmann <mithrandi@debian.org> Mon, 17 Aug 2020 10:33:16 +0200
+
+mercurial (5.5-1) unstable; urgency=medium
+
+ * New upstream release.
+ - Fix Python 3 issues with hgext.convert.subversion (closes: #968466).
+ * Install zsh completion to vendor-completions (closes: #963253).
+ * Install run-tests.py for downstream packages to use (closes: #930488).
+
+ -- Tristan Seligmann <mithrandi@debian.org> Sun, 16 Aug 2020 17:00:20 +0200
+
+mercurial (5.4.1-3) unstable; urgency=medium
+
+ * Trim trailing whitespace.
+ * Bump debhelper from deprecated 9 to 13.
+ * Rely on pre-initialized dpkg-architecture variables.
+ * Set Rules-Requires-Root: no.
+ * Adjust Breaks: mercurial-crecord (closes: #968035).
+ * Remove unused debian/source/include-binaries.
+ * Bump Standards-Version to 4.5.0.
+ * Blacklist test-check-format.t.
+ * Blacklist test-wireproto-exchangev2-shallow.t.
+
+ -- Tristan Seligmann <mithrandi@debian.org> Mon, 10 Aug 2020 23:06:15 -0000
+
+mercurial (5.4.1-2) unstable; urgency=medium
+
+ * Upload to unstable, switch to python3; Closes: #937009, #948610
+
+ -- Sandro Tosi <morph@debian.org> Thu, 16 Jul 2020 15:05:37 -0400
+
+mercurial (5.4.1-1+exp1) experimental; urgency=medium
+
+ * Upload to experimental a python3 version of mercurial
+
+ -- Sandro Tosi <morph@debian.org> Sat, 04 Jul 2020 21:12:04 -0400
+
+mercurial (5.4.1-1) unstable; urgency=medium
+
+ * Team upload.
+ * Remove python-subversion from autopkgtest dependencies
+ (closes: #956007)
+ * New upstream bugfix release.
+ * Fix test-clone-uncompressed.t failure on slow/loaded hosts.
+ * Blacklist test-narrow-shallow.t for occasional failures.
+ * Blacklist test-debugcommands.t for occasional failures.
+
+ -- Julien Cristau <jcristau@debian.org> Thu, 25 Jun 2020 12:18:13 +0200
+
+mercurial (5.4-2) unstable; urgency=medium
+
+ * Team upload.
+ * Blacklist test-nointerrupt.t for being racy.
+ * Don't install the hgext.git extension as that namespace is used by
+ the mercurial-git package, and ours is still very experimental.
+ Closes: #961245
+
+ -- Julien Cristau <jcristau@debian.org> Thu, 18 Jun 2020 15:38:51 +0200
+
+mercurial (5.4-1+exp1) experimental; urgency=medium
+
+ * Team upload.
+ * Use python3 (closes: #937009).
+ * mercurial Provides python3-mercurial so extensions can depend on
+ that instead of a hazardous versioned dependency.
+ * Add Breaks on all extensions. To be updated as we don't know what
+ version will use python3.
+
+ -- Julien Cristau <jcristau@debian.org> Thu, 21 May 2020 12:44:39 +0200
+
+mercurial (5.4-1) unstable; urgency=medium
+
+ * Team upload.
+
+ [ Philippe Pepiot ]
+ * Ship the chg binary (closes: #926384). chg can be used as an
+ alternative "hg" command, it spawns a mercurial server and uses a
+ lightweight client written in C.
+
+ [ Julien Cristau ]
+ * Add Pulkit Goyal's key (EB851395B4223EE2F7BA0B28DA54740BF08732BA) to
+ the keyring for upstream tarball signatures.
+ * New upstream release.
+ * Fix test-doctest.py now assuming it's being run from a hg repo.
+ * autopkgtests: explicitly run the testsuite with python2.
+
+ -- Julien Cristau <jcristau@debian.org> Thu, 21 May 2020 12:35:06 +0200
+
+mercurial (5.3.2-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Julien Cristau <jcristau@debian.org> Thu, 16 Apr 2020 10:35:09 +0200
+
+mercurial (5.3.1-1) unstable; urgency=medium
+
+ * Team upload.
+ * New upstream release
+ - drop proposed_upstream__correct-zeroconf-doc, included upstream.
+ * Stop moving the help text and templates to /usr/share/mercurial, doesn't
+ work right with the changes in 5.3 and isn't worth the effort.
+
+ -- Julien Cristau <jcristau@debian.org> Fri, 06 Mar 2020 10:38:36 +0100
+
+mercurial (5.2.2-1) unstable; urgency=medium
+
+ * Team upload.
+ * New upstream release
+ * Remove test-remotefilelog-bgprefetch.t from the blacklist, it's
+ hopefully more reliable now.
+
+ -- Julien Cristau <jcristau@debian.org> Thu, 09 Jan 2020 16:06:17 +0100
+
+mercurial (5.2.1-1) unstable; urgency=medium
+
+ * New upstream bugfix release.
+ * for_upstream__dont_rm_usr_bin_python_when_running_testsuite.patch: drop,
+ obsolete since 2014.
+ * autopkgtest: add clang-format dependency, list other optional dependencies
+ that are currently disabled.
+ * Replace deb_specific__use_sensible-editor.patch with a config snippet that
+ sets default values for ui.editor and pager.pager.
+ * Bump hgsubversion Breaks.
+
+ -- Julien Cristau <jcristau@debian.org> Fri, 06 Dec 2019 15:47:38 +0100
+
+mercurial (5.2-1) unstable; urgency=medium
+
+ * Team upload.
+ * New upstream release.
+ * Re-enable test-repo-compengines.t, fixed upstream.
+ * Disable test-remotefilelog-bgprefetch.t for being flaky.
+
+ -- Julien Cristau <jcristau@debian.org> Wed, 06 Nov 2019 15:19:30 +0100
+
+mercurial (5.2~rc0-1) experimental; urgency=medium
+
+ * New upstream release candidate.
+
+ -- Julien Cristau <jcristau@debian.org> Thu, 24 Oct 2019 14:32:33 +0200
+
+mercurial (5.1.1-1) unstable; urgency=medium
+
+ * New upstream bugfix release.
+
+ -- Julien Cristau <jcristau@debian.org> Fri, 06 Sep 2019 14:08:37 +0200
+
+mercurial (5.1-4) unstable; urgency=medium
+
+ * Remove python-vcr and python-fuzzywuzzy autopkgtest dependencies,
+ looks like they got removed :(
+
+ -- Julien Cristau <jcristau@debian.org> Thu, 05 Sep 2019 15:11:05 +0200
+
+mercurial (5.1-3) unstable; urgency=medium
+
+ * Actually only run the blacklisted tests in the ignored run.
+ * Upload to unstable.
+
+ -- Julien Cristau <jcristau@debian.org> Tue, 03 Sep 2019 11:19:00 +0200
+
+mercurial (5.1-2) experimental; urgency=medium
+
+ * Add patch from https://github.com/indygreg/python-zstandard/pull/91
+ to fix test failure on s390x.
+ * Skip test-repo-compengines.t due to differences on big-endian.
+ * This should fix FTBFS and closes: #935150.
+ * Run blacklisted tests but ignore their results, so we can figure out
+ if they still fail and how often.
+
+ -- Julien Cristau <jcristau@debian.org> Thu, 22 Aug 2019 18:36:05 +0200
+
+mercurial (5.1-1) experimental; urgency=medium
+
+ [ Julien Cristau ]
+ * Drop autopkgtests dependency on monotone. It's RC buggy, not in buster,
+ and uninstallable in sid (closes: #919924). Thanks, Graham Inggs!
+ * Add autopkgtests dependencies:
+ - subversion (for test-subrepo-svn.t, test-convert-svn-*.t)
+ - gettext (for test-gendoc-*.t)
+ - pylint (for test-check-pylint.t)
+ - python-pygments (for test-highlight.t)
+ - git (for test-convert-git.t, test-subrepo-git.t)
+ - python-docutils (for test-gendoc.t)
+ - sqlite3 (for test-wireproto-exchangev2-shallow.t, test-sqlitestore.t)
+ - python-fuzzywuzzy (for test-releasenotes-*.t)
+ - python-vcr (for test-phabricator.t)
+ - darcs (for test-convert-darcs.t)
+ * New upstream release.
+
+ [ Ondřej Nový ]
+ * Use debhelper-compat instead of debian/compat.
+
+ -- Julien Cristau <jcristau@debian.org> Wed, 14 Aug 2019 15:47:28 +0200
+
+mercurial (4.9-2) unstable; urgency=medium
+
+ * Bump Breaks on mercurial-git (closes: #921572)
+
+ -- Julien Cristau <jcristau@debian.org> Fri, 08 Feb 2019 15:59:25 +0100
+
+mercurial (4.9-1) unstable; urgency=medium
+
+ * New upstream release.
+
+ -- Julien Cristau <jcristau@debian.org> Tue, 05 Feb 2019 18:15:17 +0100
+
+mercurial (4.9~rc0-1) experimental; urgency=medium
+
+ * New upstream release candidate.
+
+ -- Julien Cristau <jcristau@debian.org> Fri, 25 Jan 2019 17:47:04 +0100
+
+mercurial (4.8.2-1) unstable; urgency=medium
+
+ * Team upload.
+ * New upstream bugfix release.
+ * Drop proposed_upstream__test-http-bad-server.patch, merged upstream.
+
+ -- Julien Cristau <jcristau@debian.org> Tue, 08 Jan 2019 12:28:46 +0100
+
+mercurial (4.8.1-3) unstable; urgency=medium
+
+ * Add less to debian/test/control as well to fix test-logtoprocess.t
+ (closes: #918558). Thanks, Graham Inggs!
+
+ -- Julien Cristau <jcristau@debian.org> Mon, 07 Jan 2019 13:51:50 +0100
+
+mercurial (4.8.1-2) unstable; urgency=medium
+
+ * test: fix test-http-bad-server with current python 2.7 (fixes FTBFS)
+
+ -- Julien Cristau <jcristau@debian.org> Wed, 12 Dec 2018 06:58:28 +0100
+
+mercurial (4.8.1-1) unstable; urgency=medium
+
+ * Team upload.
+ * New upstream bugfix release.
+
+ -- Julien Cristau <jcristau@debian.org> Tue, 11 Dec 2018 18:14:10 +0100
+
+mercurial (4.8-2) unstable; urgency=medium
+
+ * Team upload.
+ * Fix FTBFS due to test_profile.t failure.
+ * Refresh patches.
+
+ -- Julien Cristau <jcristau@debian.org> Tue, 20 Nov 2018 18:55:40 +0100
+
+mercurial (4.8-1) unstable; urgency=medium
+
+ * Team upload.
+ * New upstream release.
+ * Add build-dep on "less" for tests.
+ * Add test-wireproto-exchangev2.t to blacklist, it seems to be racy.
+
+ -- Julien Cristau <jcristau@debian.org> Tue, 20 Nov 2018 15:47:36 +0100
+
+mercurial (4.7.2-1) unstable; urgency=medium
+
+ * Team upload.
+ * New upstream release.
+ * Stop installing mergetools.rc in /etc/mercurial/hgrc.d (closes: #909224).
+
+ -- Julien Cristau <jcristau@mozilla.com> Thu, 04 Oct 2018 15:10:15 +0200
+
+mercurial (4.7.1-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Julien Cristau <jcristau@mozilla.com> Tue, 04 Sep 2018 18:45:34 +0200
+
+mercurial (4.7-1) unstable; urgency=medium
+
+ * Team upload.
+ * New upstream release
+ * Add Recommends on sensible-utils (thanks, lintian).
+
+ -- Julien Cristau <jcristau@debian.org> Wed, 08 Aug 2018 14:34:59 +0200
+
+mercurial (4.6.1-1) unstable; urgency=medium
+
+ * New upstream bugfix release
+ + fix security issues in mpatch (closes: #901050)
+ + proposed_upstream__fix_xdiff_32bit.patch: drop, applied upstream
+
+ -- Julien Cristau <jcristau@debian.org> Fri, 08 Jun 2018 13:56:22 +0200
+
+mercurial (4.6-2) unstable; urgency=medium
+
+ * Fix xdiff on 32bit (closes: #898491)
+
+ -- Julien Cristau <jcristau@debian.org> Sat, 12 May 2018 23:51:44 +0200
+
+mercurial (4.6-1) unstable; urgency=medium
+
+ * Team upload
+
+ [ Julien Cristau ]
+ * Make uscan recognize "4.6rc1" as a release candidate
+ * New upstream release.
+ * Document embedded third party code licenses in debian/copyright.
+ * Drop obsolete X-Python-Versions control field.
+ * Fix typo in deb_specific__disable_libdir_replacement.patch description
+ (thanks, lintian!)
+ * Install translations where hg will look for them (closes: #886797)
+
+ [ Matthias Klose ]
+ * Pass the same TESTFLAGS to the autopkg tests, as done for the test
+ during package build, and make the blacklist work correctly
+ (closes: #895200, #893012)
+ * Disable hgsubversion and mercurial-git autopkgtests (closes: #890191)
+
+ -- Julien Cristau <jcristau@debian.org> Fri, 11 May 2018 18:19:39 +0200
+
+mercurial (4.5.3-1) unstable; urgency=medium
+
+ * Team upload.
+ * New upstream bugfix release
+
+ -- Julien Cristau <jcristau@debian.org> Thu, 05 Apr 2018 14:25:18 +0200
+
+mercurial (4.5.2-1) unstable; urgency=medium
+
+ * Team upload.
+
+ [ Ondřej Nový ]
+ * d/copyright: Use https protocol in Format field
+ * d/changelog: Remove trailing whitespaces
+
+ [ Julien Cristau ]
+ * Add Kevin Bullock's key to debian/upstream/signing-key.asc
+ * New upstream release
+
+ -- Julien Cristau <jcristau@debian.org> Wed, 21 Mar 2018 13:32:27 +0100
+
+mercurial (4.5-1) unstable; urgency=medium
+
+ * New upstream release.
+ - Drop libjs-excanvas as no longer used by upstream.
+
+ -- Tristan Seligmann <mithrandi@debian.org> Sun, 11 Feb 2018 08:51:26 +0200
+
+mercurial (4.4.1-1) unstable; urgency=medium
+
+ * New upstream release.
+ - Refresh patches, remove patches applied upstream.
+ * Replace rename with file-rename as this is gone from perl.
+
+ -- Tristan Seligmann <mithrandi@debian.org> Mon, 13 Nov 2017 06:19:31 +0200
+
+mercurial (4.3.1-3) unstable; urgency=high
+
+ * Build with -mno-lra on mips64el to work around #871514.
+
+ -- Tristan Seligmann <mithrandi@debian.org> Sat, 26 Aug 2017 01:38:11 +0200
+
+mercurial (4.3.1-2) unstable; urgency=high
+
+ * Fix or disable some failing tests (closes: #823056, #850234).
+
+ -- Tristan Seligmann <mithrandi@debian.org> Sat, 12 Aug 2017 14:34:47 +0200
+
+mercurial (4.3.1-1) unstable; urgency=high
+
+ * Urgency high because of important security fixes.
+ * New upstream release (closes: #868014).
+ - CVE-2017-1000115: Mercurial's symlink auditing was incomplete prior
+ to 4.3, and could be abused to write to files outside the
+ repository (closes: #871709).
+ - CVE-2017-1000116: Mercurial was not sanitizing hostnames passed to
+ ssh, allowing shell injection attacks by specifying a hostname
+ starting with -oProxyCommand (closes: #871710).
+ - CVE-2017-9462: previously fixed in 4.1.3 upstream (closes: #861243).
+ * Blacklist test-https.t due to TLS 1.0/1.1 being disabled in OpenSSL in
+ unstable.
+ * Fix license definitions in debian/copyright.
+ * Bump Standards-Version to 4.0.0 (no changes).
+ * Run wrap-and-sort -t -s.
+
+ -- Tristan Seligmann <mithrandi@debian.org> Fri, 11 Aug 2017 05:00:16 +0200
+
+mercurial (4.0-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Javi Merino <vicho@debian.org> Wed, 02 Nov 2016 05:50:33 -0600
+
+mercurial (4.0~rc1-1) experimental; urgency=medium
+
+ * First release candidate for mercurial 4.0
+ * Remove deb_specific__use_gpg_21_keys_for_test.patch as test-gpg now
+ migrates the secret keys at the beginning of the test
+
+ -- Javi Merino <vicho@debian.org> Sun, 23 Oct 2016 18:15:45 +0100
+
+mercurial (3.9.2-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Javi Merino <vicho@debian.org> Sat, 22 Oct 2016 19:40:13 +0100
+
+mercurial (3.9.1-1) unstable; urgency=medium
+
+ * New upstream release signed with a new gpg key
+ * Fix "FTBFS: Tests failures" by fixing test-gpg.t's output to take into
+ account gpg 2.1's messages when importing classic gpg keyring files.
+ (Closes: #835730)
+
+ -- Javi Merino <vicho@debian.org> Sat, 03 Sep 2016 09:04:00 +0300
+
+mercurial (3.9-1) unstable; urgency=medium
+
+ * New upstream release
+ * Fix release URL in debian/watch
+
+ -- Javi Merino <vicho@debian.org> Sun, 07 Aug 2016 11:54:04 +0100
+
+mercurial (3.8.4-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Javi Merino <vicho@debian.org> Sun, 10 Jul 2016 12:38:01 +0100
+
+mercurial (3.8.3-1) unstable; urgency=medium
+
+ * New upstream release
+ * Delete
+ from_upstream__strip_invalidate_phase_cache_after_stripping_changese
+ t_issue5235.patch as it's now included upstream
+
+ -- Javi Merino <vicho@debian.org> Fri, 03 Jun 2016 08:26:16 +0100
+
+mercurial (3.8.2-2) unstable; urgency=medium
+
+ * Update hgsubversion breaks to 1.8.6-1
+ * Add
+ from_upstream__strip_invalidate_phase_cache_after_stripping_changese
+ t_issue5235.patch to fix test-obsolete.t on powerpc and i386
+
+ -- Javi Merino <vicho@debian.org> Sat, 28 May 2016 22:45:03 +0200
+
+mercurial (3.8.2-1) unstable; urgency=medium
+
+ * New upstream release
+ * revert mercurial-git breaks to 0.8.3-1
+ * update debian/watch URL
+
+ -- Javi Merino <vicho@debian.org> Fri, 27 May 2016 22:01:25 +0200
+
+mercurial (3.8.1-1) unstable; urgency=medium
+
+ * New upstream release (Closes: #737498)
+ * Fixes CVE-2016-3105
+ * Bump standards-version to 3.9.8 (no change needed)
+ * Re-enable test-parse-date.t in the test-suite
+ * mercurial 3.8.1 breaks current hgsubversion and mercurial-git
+
+ -- Javi Merino <vicho@debian.org> Tue, 03 May 2016 07:45:02 +0100
+
+mercurial (3.7.3-1) unstable; urgency=medium
+
+ * New security upstream release fixes CVE-2016-3068, CVE-2016-3069
+ and CVE-2016-3630.
+ * Fix "FTBFS when built with dpkg-buildpackage -A". Thanks Julien
+ Cristau for the patch (Closes: #807021)
+ * Avoid allow-stderr in mercurial-git autopkgtest
+
+ -- Javi Merino <vicho@debian.org> Wed, 30 Mar 2016 08:20:07 +0100
+
+mercurial (3.7.2-2) unstable; urgency=medium
+
+ * Don't run test-clonebundle.t when building. Reproducible builds don't
+ setup name resolution (Closes: #809770)
+
+ -- Javi Merino <vicho@debian.org> Sat, 05 Mar 2016 12:08:37 +0000
+
+mercurial (3.7.2-1) unstable; urgency=medium
+
+ * New upstream release
+ * Blacklist test-parse-date.t . It fails on some of the chroots of
+ some architectures
+ * Bump standards-version to 3.9.6 (no change needed)
+ * Use https for vcs-browser. Thanks lintian
+ * Update homepage
+
+ -- Javi Merino <vicho@debian.org> Wed, 02 Mar 2016 22:28:36 +0000
+
+mercurial (3.7.1-1) unstable; urgency=medium
+
+ * New upstream release
+ * Fix "mercurial-git autopkgtest fails because of stderr" by allowing
+ the test to output to stderr (Closes: #808376)
+ * Allow the hgsubversion test to output to stderr
+
+ -- Javi Merino <vicho@debian.org> Thu, 11 Feb 2016 22:43:27 +0000
+
+mercurial (3.6.2-1) unstable; urgency=medium
+
+ * New upstream release
+ * Improve autopkgtest for mercurial-git to test pushing commits from the
+ mercurial clone to git
+ * Update breaks of hgsubversion. hgsubversion 1.8.3-2 works with
+ mercurial 3.6
+
+ -- Javi Merino <vicho@debian.org> Fri, 04 Dec 2015 07:37:49 +0000
+
+mercurial (3.6.1-1) unstable; urgency=medium
+
+ * New upstream release
+ * mercurial 3.6 breaks mercurial-crecord 0.20150626-1
+ * mercurial 3.6 breaks mercurial-git prior to 0.8.3-1
+
+ -- Javi Merino <vicho@debian.org> Thu, 26 Nov 2015 08:30:18 +0000
+
+mercurial (3.6-1) unstable; urgency=medium
+
+ * New upstream release
+ * Update hgsubversion breaks. 1.8.3-1 is not compatible with mercurial
+ 3.6-1
+
+ -- Javi Merino <vicho@debian.org> Thu, 05 Nov 2015 10:43:33 +0000
+
+mercurial (3.6~rc1-1) experimental; urgency=medium
+
+ * First release candidate for mercurial 3.6
+
+ -- Javi Merino <vicho@debian.org> Sun, 25 Oct 2015 17:31:59 +0000
+
+mercurial (3.5.2-2) unstable; urgency=medium
+
+ * Fix "bash completion broken" by installing at as "hg" instead of
+ "mercurial". Thanks Matthew Gabeler-Lee <cheetah@fastcat.org> for the
+ fix (Closes: #801079)
+
+ -- Javi Merino <vicho@debian.org> Sun, 18 Oct 2015 14:14:20 +0100
+
+mercurial (3.5.2-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Javi Merino <vicho@debian.org> Fri, 02 Oct 2015 08:14:57 +0100
+
+mercurial (3.5.1-2) unstable; urgency=medium
+
+ * Fix "obsolete conffile /etc/bash_completion.d/mercurial" by removing
+ it. Bash completion is now installed in
+ /usr/share/bash_completion/completions (Closes: #799052)
+
+ -- Javi Merino <vicho@debian.org> Sun, 20 Sep 2015 13:23:46 +0100
+
+mercurial (3.5.1-1) unstable; urgency=medium
+
+ * Update hgsubversion breaks. 1.8.2-1 is compatible with mercurial 3.5-1
+ * Update breaks of mercurial-git. 0.8.1-3 works with mercurial 3.5-1
+ * New upstream release
+
+ -- Javi Merino <vicho@debian.org> Mon, 14 Sep 2015 22:05:21 +0100
+
+mercurial (3.5-1) unstable; urgency=medium
+
+ * New upstream release
+ * Update hgsubversion breaks to 1.8.1-1
+ * Upload to unstable
+
+ -- Javi Merino <vicho@debian.org> Mon, 03 Aug 2015 20:18:33 +0100
+
+mercurial (3.5~rc1-1) experimental; urgency=medium
+
+ * New upstream release
+ * Update debian/copyright to match copyright-format 1.0
+ * New version breaks the current versions of mercurial-git and
+ hgsubversion in sid
+
+ -- Javi Merino <vicho@debian.org> Wed, 22 Jul 2015 10:30:00 +0200
+
+mercurial (3.4.2-1) unstable; urgency=medium
+
+ * New upstream release
+ * Drop "XS-Testsuite" as it's no longer needed
+ * Fix "FTBFS: recipe for target 'override_dh_auto_test' failed"
+ by using rename. util-linux no longer provides rename.ul (Closes: #790266)
+
+ -- Javi Merino <vicho@debian.org> Wed, 08 Jul 2015 22:31:18 +0100
+
+mercurial (3.4-1) unstable; urgency=medium
+
+ * New upstream release
+ * Delete patch for_upstream__fix_typo_in_man_page.patch as it is applied
+ upstream
+ * Update breaks of hgsubversion to versions prior to 1.8-1
+ * Upload to unstable
+
+ -- Javi Merino <vicho@debian.org> Sat, 02 May 2015 10:01:10 +0100
+
+mercurial (3.4~rc1-1) experimental; urgency=medium
+
+ * New upstream release
+ * Delete patch for_upstream__lenient_test-shelve.patch which is
+ applied upstream
+ * Remove trailing spaces from empty lines in the descriptions. It
+ upsets lintian
+ * Add patch for_upstream__fix_typo_in_man_page.patch to fix a typo
+ spotted by lintian
+
+ -- Javi Merino <vicho@debian.org> Sun, 19 Apr 2015 15:41:25 +0100
+
+mercurial (3.3.2-1) experimental; urgency=medium
+
+ * New upstream release
+
+ -- Javi Merino <vicho@debian.org> Fri, 13 Mar 2015 13:38:04 +0000
+
+mercurial (3.3-1) experimental; urgency=medium
+
+ * New upstream release
+
+ -- Javi Merino <vicho@debian.org> Mon, 09 Feb 2015 05:48:23 +0800
+
+mercurial (3.3~rc1-1) experimental; urgency=medium
+
+ * New upstream release
+ * move the installation of mergetools.rc to mercurial-common.install
+
+ -- Javi Merino <vicho@debian.org> Sat, 31 Jan 2015 17:48:59 +0100
+
+mercurial (3.2.3-1) experimental; urgency=medium
+
+ * New upstream release
+
+ -- Javi Merino <vicho@debian.org> Fri, 19 Dec 2014 22:29:28 +0000
+
+mercurial (3.2.1-1) experimental; urgency=medium
+
+ * New upstream release
+
+ -- Javi Merino <vicho@debian.org> Fri, 14 Nov 2014 08:35:25 +0000
+
+mercurial (3.2-1) experimental; urgency=medium
+
+ * New upstream release (Closes: #768022)
+ * Replace deb_specific__support_templates_in_fsh.patch,
+ deb_specific__support_help_in_fhs.patch and
+ deb_specific__support_mo_in_fhs.patch with
+ deb_specific__fix_fhs_paths.py as the mechanism to specify the path to
+ datafiles has been unified.
+ * Remove from_upstream__test-
+ patchbomb_t_work_around_Python_change_d579866d6419_issue4188.patch
+ as it is now included upstream
+ * Bump standards-version to 3.9.6 (no change needed)
+ * Build-depend on dh-python
+ * Simplify installation of /etc/mercurial/hgrc.d/cacerts.rc
+ * Remove sample.hgrc from the examples as it's now removed in upstream
+ (full of bad suggestions)
+ * Update breaks for mercurial-git and hgsubversion: current versions
+ don't work
+
+ -- Javi Merino <vicho@debian.org> Mon, 10 Nov 2014 08:34:13 +0000
+
+mercurial (3.1.2-1) unstable; urgency=medium
+
+ * New upstream version
+ * Use excanvas.js from libjs-excanvas instead of shipping a copy in
+ the package
+
+ -- Javi Merino <vicho@debian.org> Thu, 02 Oct 2014 23:34:41 +0100
+
+mercurial (3.1.1-1) unstable; urgency=medium
+
+ * New upstream release
+ * Remove test_patchbomb from blacklisted tests (fixed upstream in
+ http://selenic.com/repo/hg/rev/f8fc5df6a8cf)
+ * Add patch from_upstream__test-
+ patchbomb_t_work_around_Python_change_d579866d6419_issue4188.patch
+ which fixes the patchbomb test
+
+ -- Javi Merino <vicho@debian.org> Thu, 04 Sep 2014 09:04:08 +0200
+
+mercurial (3.1-2) unstable; urgency=medium
+
+ * gcc and python2.7-dev now needed to pass the testsuite in autopkgtest
+ * mercurial-git versions prior to 0.6.1 don't work with mercurial-3.1,
+ update breaks
+ * Fix hgsubversion autopkgtest
+ * Remove darcs from the autopkgtest testsuite as gnutls fails to
+ initialize random number generator in the schroot and is very verbose
+ about it.
+
+ -- Javi Merino <vicho@debian.org> Mon, 25 Aug 2014 14:54:24 -0700
+
+mercurial (3.1-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Javi Merino <vicho@debian.org> Sat, 02 Aug 2014 11:29:22 +0100
+
+mercurial (3.0.2-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Javi Merino <vicho@debian.org> Sun, 13 Jul 2014 13:12:26 +0200
+
+mercurial (3.0.1-1) unstable; urgency=medium
+
+ * New upstream release (Closes: #750444)
+ * Update breaks of hgview to hgview-common << 1.8.1 (Thanks Julien Cristau)
+
+ -- Javi Merino <vicho@debian.org> Tue, 17 Jun 2014 22:55:05 +0100
+
+mercurial (3.0-1) unstable; urgency=medium
+
+ * New upstream release
+ * Rever breaks of hgsubversion to versions prior to 1.6
+ * Upload to unstable
+
+ -- Javi Merino <vicho@debian.org> Fri, 02 May 2014 08:33:00 +0100
+
+mercurial (3.0~rc1-1) experimental; urgency=medium
+
+ * New upstream release
+ * Don't explicitly change the python interpreter in debian/rules, it's
+ already handled by dh_python2
+ * Drop patch deb_specific__fix_hg-ssh_interpreter.patch as dh_python2
+ fixes the interpreter for us
+ * Fix "fatal: empty ident name (for <babar@jungle.org>) not allowed"
+ error in the mercurial-git autopkgtest
+ * Blacklist test-patchbomb from the testsuite autopkgtest as it is
+ known to fail
+ * Don't install tmplrewrite.py in examples any more. It was useful
+ for the 1.3 transition, but no longer relevant
+ * Mercurial 3.0 breaks current hgsubversion (1.6)
+
+ -- Javi Merino <vicho@debian.org> Sat, 19 Apr 2014 18:53:34 +0100
+
+mercurial (2.9.2-1) unstable; urgency=low
+
+ [ Javi Merino ]
+ * New upstream release
+ * Fix "please downgrade 'wish' Recommends to Suggests" by removing the
+ Recommends from the mercurial package (but keeping the Suggests in
+ mercurial-common) (Closes: #741514)
+ * Drop Suggests of vim or emacs
+ * Fix "autopkgtest hgsubversion shouldn't need network connectivity"
+ by making the test create a local svn repository (Closes: #735578)
+ * Mercurial 2.9 breaks hgsubversion prior to 1.6
+
+ [ Julien Cristau ]
+ * mercurial-common Replaces mercurial << 2.6.3 (the bash_completion file and
+ /etc/mercurial/hgrc moved) (Closes: #743288)
+
+ -- Javi Merino <vicho@debian.org> Thu, 03 Apr 2014 08:11:58 +0100
+
+mercurial (2.9.1-1) unstable; urgency=medium
+
+ * New upstream release
+ * mercurial 2.9 breaks current hgsubversion (1.5-1)
+ * Blacklist test-patchbomb.t as it failed sporadically in mips buildd
+ for 2.9-1 and is now failing for me.
+
+ -- Javi Merino <vicho@debian.org> Mon, 03 Mar 2014 22:52:12 +0000
+
+mercurial (2.9-1) unstable; urgency=medium
+
+ * blacklist check_pyflakes instead of deleting the test
+ * Add "allow-stderr" restriction to "testsuite" as it prints out a
+ "Tested with unexpected mercurial lib:" warning. Thanks to Martin
+ Pitt <martin.pitt@ubuntu.com>.
+
+ -- Javi Merino <vicho@debian.org> Mon, 10 Feb 2014 22:37:30 +0000
+
+mercurial (2.8.2-1) unstable; urgency=medium
+
+ * New upstream release
+ * Drop for_upstream__fix_i18n.patch as it's now included upstream
+ * Make uscan verify the signature of downloaded tarballs
+
+ -- Javi Merino <vicho@debian.org> Thu, 02 Jan 2014 17:31:05 +0100
+
+mercurial (2.8.1-2) unstable; urgency=low
+
+ * Pass -f to rm so that repeated builds succeed (Closes: #731623).
+ * Fix installation in the case where there is more than one supported
+ version of Python (Closes: #729153).
+ - Thanks to Faheem Mitha <faheem@faheem.info> for the patch.
+ * Make test-shelve.t more lenient. This should hopefully fix the
+ semi-intermittent build failures on some architectures with slower
+ buildds.
+
+ -- Tristan Seligmann <mithrandi@debian.org> Sun, 08 Dec 2013 02:03:54 +0200
+
+mercurial (2.8.1-1) unstable; urgency=low
+
+ * New upstream release (Closes: #731471)
+ * Add myself to Uploaders.
+ * Add patch to fix test-i18n.
+ * Remove pyflakes test to avoid build failures when pyflakes is installed.
+
+ -- Tristan Seligmann <mithrandi@debian.org> Fri, 06 Dec 2013 01:14:40 +0200
+
+mercurial (2.8-3) unstable; urgency=low
+
+ * Fix mercurial-git autopkg test
+ * Add missing deps to run the testsuite with autopkgtest
+ * Increment testsuite timeout to 1440 to prevent timeouts in mips
+ * Move wish to Recommends as it's needed for hg view
+
+ -- Javi Merino <vicho@debian.org> Sun, 17 Nov 2013 10:13:23 +0000
+
+mercurial (2.8-2) unstable; urgency=medium
+
+ * Increment testsuite timeout to 720 as test-gendoc.t takes a
+ loooong time on armel
+ * Don't run pyflakes on the autopkgtest for the testsuite, it fails to
+ see the pyflakes error it's expecting (but it's not our job to fix
+ python lint issues)
+
+ -- Javi Merino <vicho@debian.org> Fri, 15 Nov 2013 14:10:00 +0000
+
+mercurial (2.8-1) unstable; urgency=low
+
+ * New upstream release
+ * Fix mercurial-git and hgsubversion autopkgtest by loading the
+ appropriate extension
+ * Bump standards-version to 3.9.5 (no change needed)
+
+ -- Javi Merino <vicho@debian.org> Fri, 01 Nov 2013 23:19:57 +0000
+
+mercurial (2.8~rc1-1) experimental; urgency=low
+
+ * New upstream release
+ * Fix patches deb_specific__install-help-separately,
+ deb_specific__install-help-separately and
+ deb_specific__install-mo-fhs.patch so that we can run the full
+ testsuite when building
+ * Build-depend on netbase to make test-serve.t work
+
+ -- Javi Merino <vicho@debian.org> Mon, 21 Oct 2013 22:35:36 +0100
+
+mercurial (2.7.2-1) unstable; urgency=low
+
+ * New upstream release
+ * Revert breaks of mercurial-git back to << 0.4.0-1 (Closes: #725145)
+ * Re-enable the testsuite as the tests that timeout can be blacklisted
+
+ -- Javi Merino <vicho@debian.org> Wed, 02 Oct 2013 23:55:58 +0100
+
+mercurial (2.7.1-3) unstable; urgency=low
+
+ * Update breaks of mercurial-git to the current version (0.4.0-1)
+ * Add autopkgtest tests
+
+ -- Javi Merino <vicho@debian.org> Tue, 01 Oct 2013 08:48:23 +0100
+
+mercurial (2.7.1-2) unstable; urgency=low
+
+ * Temporarily don't run the testsuite when building. Since 2.7.1 it
+ timeouts in buildd environments (but works ok if run in the command
+ line).
+
+ -- Javi Merino <vicho@debian.org> Thu, 05 Sep 2013 21:52:14 +0100
+
+mercurial (2.7.1-1) unstable; urgency=low
+
+ * New upstream release
+ * Enable tests that need networking
+
+ -- Javi Merino <vicho@debian.org> Wed, 04 Sep 2013 23:06:57 +0100
+
+mercurial (2.7-2) unstable; urgency=low
+
+ * Fix "conffiles not removed" by properly moving them to mercurial-common
+ (Closes: #718621)
+
+ -- Javi Merino <vicho@debian.org> Tue, 13 Aug 2013 23:11:14 +0200
+
+mercurial (2.7-1) unstable; urgency=low
+
+ * New upstream release
+ * Remove shrink-revlog.py from examples as it is no longer shipped in
+ mercurial
+
+ -- Javi Merino <vicho@debian.org> Sun, 11 Aug 2013 16:09:20 +0200
+
+mercurial (2.6.3-1) unstable; urgency=low
+
+ * New upstream release
+ * Remove preinst script as it's mostly checks for stuff that was fixed
+ long ago
+ * Remove old checks from postinst
+ * Move config files to mercurial-common
+ * Install bash-completion using debhelper's bash-completion sequencer
+ * Compatible with hgsubversion 1.5 or greater, update breaks to
+ reflect that
+
+ -- Javi Merino <vicho@debian.org> Sun, 21 Jul 2013 23:31:34 +0200
+
+mercurial (2.6.2-1) unstable; urgency=low
+
+ * New upstream release
+ * Delete patch
+ from_upstream__fix_untranslated_prompts_with_translated_responses.patch
+ which is now included upstream
+
+ -- Javi Merino <vicho@debian.org> Sun, 09 Jun 2013 10:36:59 +0100
+
+mercurial (2.6.1-1) unstable; urgency=low
+
+ [ Jakub Wilk ]
+ * Use canonical URIs for Vcs-* fields.
+
+ [ Javi Merino ]
+ * New upstream release (Closes: #709815)
+ * Blacklist test-histedit-arguments.t and test-websub.t
+ * Fix "Translation missing for yes/no question, but requires translated
+ input from user" by adding patch
+ from_upstream__fix_untranslated_prompts_with_translated_responses.patch
+ (Closes: #707703)
+ * Upload to unstable
+
+ -- Javi Merino <vicho@debian.org> Wed, 15 May 2013 22:16:29 +0100
+
+mercurial (2.5.2-1) experimental; urgency=low
+
+ * New upstream release
+ * Update hgview breaks. hgview works with mercurial 2.5 starting from
+ 1.7.1-1.
+ * test-convert-git.t works again so add it back to the test-suite we
+ run when building the package
+
+ -- Javi Merino <vicho@debian.org> Tue, 19 Mar 2013 22:53:20 +0000
+
+mercurial (2.5.1-1) experimental; urgency=low
+
+ * New upstream release
+ * Add test-obsolete.t to the blacklisted tests
+ * hgview 1.5.0-4 doesn't work with mercurial 2.5.1
+
+ -- Javi Merino <vicho@debian.org> Tue, 12 Feb 2013 21:13:06 +0000
+
+mercurial (2.4.2-1) experimental; urgency=low
+
+ * New upstream release
+
+ -- Javi Merino <vicho@debian.org> Wed, 02 Jan 2013 13:01:27 +0100
+
+mercurial (2.4.1-1) experimental; urgency=low
+
+ * New upstream release
+
+ -- Javi Merino <vicho@debian.org> Wed, 19 Dec 2012 21:10:25 +0000
+
+mercurial (2.4-1) experimental; urgency=low
+
+ * New upstream release
+ * mercurial 2.3.1 was not compatible with hgsubversion 1.4 and
+ mercurial-git 0.3.3
+ * Bump standards-version to 3.9.4 (no change needed)
+ * Add test-commit-amend to the blacklisted tests as it needs styles
+ now
+
+ -- Javi Merino <vicho@debian.org> Tue, 27 Nov 2012 22:35:33 +0000
+
+mercurial (2.3.1-1) experimental; urgency=low
+
+ * New upstream release
+ * Delete patch for_upstream__hgweb_fix_spelling_error.patch which is
+ now included upstream
+
+ -- Javi Merino <vicho@debian.org> Sun, 16 Sep 2012 16:05:55 +0100
+
+mercurial (2.3-2) experimental; urgency=low
+
+ * Blacklist test-histedit-revspec as it needs styles
+
+ -- Javi Merino <vicho@debian.org> Sat, 04 Aug 2012 20:56:38 +0200
+
+mercurial (2.3-1) experimental; urgency=low
+
+ * Don't run the testsuite if nocheck is in DEB_BUILD_OPTIONS
+ * Move to dh v9 to automatically get the Hardening buildflags
+ * Don't Suggest xxdiff, as it's been removed from the archive
+ * New upstream release
+ * Add patch for_upstream__hgweb_fix_spelling_error.patch to fix a
+ spelling error in a manpage
+
+ -- Javi Merino <vicho@debian.org> Fri, 03 Aug 2012 20:53:44 +0200
+
+mercurial (2.2.2-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Javi Merino <vicho@debian.org> Sun, 03 Jun 2012 09:17:36 +0100
+
+mercurial (2.2.1-2) unstable; urgency=low
+
+ * Blacklist test-convert-git.t as it is known to fail with git 1.7.10
+ and it's making it fail to build in armel.
+ * Build-depend on python-roman (Closes: #671611)
+
+ -- Javi Merino <vicho@debian.org> Sun, 06 May 2012 17:31:51 +0100
+
+mercurial (2.2.1-1) unstable; urgency=low
+
+ * New upstream release that fixes a memory leak in hgweb
+ * Refresh i18n/{de,da,ja}.po translations in
+ deb_specific__use_sensible-editor.patch
+
+ -- Javi Merino <vicho@debian.org> Fri, 04 May 2012 21:57:42 +0100
+
+mercurial (2.2-2) unstable; urgency=low
+
+ * Don't patch test-pull-pull-corruption2.t in kfreebsd-i386, armel,
+ sparc or mips, it's now integrated into test-pull-pull-corruption.t
+
+ -- Javi Merino <vicho@debian.org> Wed, 02 May 2012 19:21:40 +0100
+
+mercurial (2.2-1) unstable; urgency=low
+
+ * New upstream release 2.2
+ * Delete patches for_upstream__skip_test_gpg_if_not_mercurial_wd.patch
+ and from_upstream__tests_re_silence_test_bad_pull_log_messages.patch
+ which are now included upstream
+ * Refresh patches
+
+ -- Javi Merino <vicho@debian.org> Wed, 02 May 2012 08:08:32 +0100
+
+mercurial (2.1.2-2) unstable; urgency=low
+
+ * Add sparc to the list of architectures with slow buildds
+ * Import 91eec29dd7de from upstream to fix the test-suite failures in
+ mips and sparc
+
+ -- Javi Merino <vicho@debian.org> Tue, 03 Apr 2012 21:54:05 +0100
+
+mercurial (2.1.2-1) unstable; urgency=low
+
+ * New upstream release 2.1.2
+ * Add armel to the list of architectures with slow buildds
+ * Drop patch "deb_specific__no_optim_bdiff_armel.patch" as gcc no
+ longer miscompiles bdiff in armel
+ * Remove confusing entry in Debian.NEWS (Closes: #666549)
+ * Remove patches for_upstream__fix_kfreebsd_test_inherit.patch,
+ from_upstream__dont_translate_the_abort_message_twice.patch and
+ from_upstream__fix_all_remaining_uses_of_inside.patch which are now
+ included upstream
+ * Add patch for_upstream__skip_test_gpg_if_not_mercurial_wd.patch to
+ skip test-gpg when the testsuite is not run in a hg checkout
+
+ -- Javi Merino <vicho@debian.org> Mon, 02 Apr 2012 22:50:29 +0100
+
+mercurial (2.1.1-2) unstable; urgency=low
+
+ * Add kfreebsd-i386 to the list of slow architectures for the test suite.
+ * Improve the fix for the test-inherit-mode.t patch based on
+ suggestions from upstream
+ * Fix "UnicodeDecodeError when refusing to update" by adding patches
+ from_upstream__dont_translate_the_abort_message_twice.patch and
+ from_upstream__fix_all_remaining_uses_of_inside.patch (Closes: #662207)
+
+ -- Javi Merino <vicho@debian.org> Fri, 09 Mar 2012 00:14:13 +0000
+
+mercurial (2.1.1-1) unstable; urgency=low
+
+ * New upstream version 2.1.1-1
+ * Change the group of the test dir in test-inherit-mode.t so that the
+ testsuite doesn't fail in kfreebsd-*
+ * Drop from_upstream__test_check_code_hg_skip_test_if_not_wd.patch
+ which is now included upstream
+ * Upload to unstable
+
+ -- Javi Merino <vicho@debian.org> Sat, 03 Mar 2012 08:03:18 +0000
+
+mercurial (2.1-3) experimental; urgency=low
+
+ * Remove unused lintian override binary-without-manpage
+ * Bump standards-version to 3.9.3 (no change needed)
+ * Suggest tkcvs instead of tkdiff. tkdiff has been removed from
+ wheezy as tkcvs provides tkdiff (see bug #483362).
+ * Suggest more visual diff commands
+ * Increment test timeout. test-bisect2.t timed out on mips.
+ * Increment the sleeps in the testsuite in mips so that the test
+ produces the same output than in faster architectures
+ * Ignore the output of chmod in a test so that the testsuite doesn't
+ fail in kfreebsd-*
+ * Add patch
+ from_upstream__test_check_code_hg_skip_test_if_not_wd.patch to skip
+ test_check_code_hg instead of having to blacklist it
+
+ -- Javi Merino <vicho@debian.org> Wed, 29 Feb 2012 08:51:26 +0000
+
+mercurial (2.1-2) experimental; urgency=low
+
+ * Recommend ssh
+ * Bump watch version to 3 since we are using version mangling
+ * Run tests in the buildds
+ * Added my new DD account
+
+ -- Javi Merino <vicho@debian.org> Sat, 25 Feb 2012 18:12:14 +0000
+
+mercurial (2.1-1) unstable; urgency=low
+
+ * New upstream revision
+
+ -- Javi Merino <cibervicho@gmail.com> Fri, 03 Feb 2012 18:38:19 +0100
+
+mercurial (2.0.2-1) unstable; urgency=low
+
+ * New upstream revision
+ * Fix "hg-ssh is installed system-wide but uses "/usr/bin/env python"
+ as the python interpreter" with a patch that fixes the interpreter
+ (Closes: #654925)
+
+ -- Javi Merino <cibervicho@gmail.com> Fri, 06 Jan 2012 22:09:32 +0000
+
+mercurial (2.0.1-2) unstable; urgency=low
+
+ * Team Upload
+ * Update Breaks for hgsubversion (see bug #646946), hg-git (see bug
+ #645037), hgview (see bug #637400), and qct (see bug #637401).
+
+ -- Jakub Wilk <jwilk@debian.org> Sun, 11 Dec 2011 23:47:26 +0100
+
+mercurial (2.0.1-1) unstable; urgency=low
+
+ * New upstream revision (Closes: #650727).
+ * Fix "new -rc release are not properly parsed by watch" with a patch
+ from Pierre-Yves David <pierre-yves.david@logilab.fr> (Closes:
+ #650728)
+
+ -- Javi Merino <cibervicho@gmail.com> Fri, 02 Dec 2011 21:35:31 +0000
+
+mercurial (2.0-2) unstable; urgency=low
+
+ * Fix "Cloning fails with: mpatch.mpatchError: patch cannot be decoded"
+ by not compiling bdiff.c with optimizations in armel. This is
+ probably a bug in gcc-4.6 (gcc 4.5 works fine) but while it's solved,
+ at least mercurial works again in armel (Closes: #636396)
+
+ -- Javi Merino <cibervicho@gmail.com> Thu, 03 Nov 2011 23:00:43 +0000
+
+mercurial (2.0-1) unstable; urgency=low
+
+ * New upstream release 2.0
+ * Don't include empty directories in the package
+
+ -- Javi Merino <cibervicho@gmail.com> Tue, 01 Nov 2011 22:40:40 +0000
+
+mercurial (1.9.999+2.0rc1-1) experimental; urgency=low
+
+ * Upstream 2.0 Release Candidate 1
+ * Cover more uses of "defaults to sensible-editor" in the
+ documentation and support ru and ro translations.
+
+ -- Javi Merino <cibervicho@gmail.com> Sun, 30 Oct 2011 13:20:38 +0000
+
+mercurial (1.9.3-1) unstable; urgency=low
+
+ * New upstream release 1.9.3.
+
+ -- Javi Merino <cibervicho@gmail.com> Tue, 11 Oct 2011 22:31:33 +0100
+
+mercurial (1.9.2-1) unstable; urgency=low
+
+ * New upstream release 1.9.2.
+ * Remove old code that removed cruft from site-packages
+
+ -- Javi Merino <cibervicho@gmail.com> Mon, 12 Sep 2011 20:55:12 +0100
+
+mercurial (1.9.1-2) unstable; urgency=low
+
+ * Update breaks to include all the packages that mercurial-1.9.1-1 broke
+ because of the uncoordinated transition to dh_python2.
+
+ -- Javi Merino <cibervicho@gmail.com> Wed, 10 Aug 2011 21:37:37 +0100
+
+mercurial (1.9.1-1) unstable; urgency=low
+
+ * Convert to dh_python2
+ * New upstream release 1.9.1 fixes "cannot import mercurial.httpclient
+ with Python 2.7: 'module' object has no attribute 'PROTOCOL_SSLv2'"
+ (Closes: #635496)
+
+ -- Javi Merino <cibervicho@gmail.com> Wed, 03 Aug 2011 08:00:03 +0100
+
+mercurial (1.9-1) unstable; urgency=low
+
+ * New upstream release 1.9 (Closes: #632250)
+ * Strip trailing .0 from Debian Policy
+ * Remove template warnings from debian/watch to remove a lintian
+ warning
+
+ -- Javi Merino <cibervicho@gmail.com> Fri, 22 Jul 2011 19:44:26 +0200
+
+mercurial (1.8.3-1) unstable; urgency=low
+
+ [ Javi Merino ]
+ * New upstream release 1.8.3
+ * Upgrade Debian Policy to 3.9.2.0
+
+ [ Jonathan Nieder ]
+ * Make mercurial-common's Recommends field binNMU-safe (Closes: #626132)
+
+ -- Javi Merino <cibervicho@gmail.com> Tue, 10 May 2011 20:37:27 +0100
+
+mercurial (1.8.1-3) unstable; urgency=low
+
+ * Team Upload
+ * deb_specific__disable_libdir_replacement.patch: Disable @LIBDIR@
+ replacement in the hg script, by setup.py (Closes: #620087, LP: #745250)
+
+ -- Stefano Rivera <stefanor@debian.org> Thu, 31 Mar 2011 00:06:02 +0200
+
+mercurial (1.8.1-2) unstable; urgency=low
+
+ [ Vincent Danjean ]
+ * Set /etc/ssl/certs/ca-certificates.crt as default valid root
+ certificates and add a recommends to the ca-certificates package
+ (Closes: #619821)
+
+ [ Javi Merino ]
+ * Mercurial 1.8 breaks hg-git, add that info to debian/control
+ (Closes: #619930)
+
+ -- Javi Merino <cibervicho@gmail.com> Mon, 28 Mar 2011 21:51:40 +0100
+
+mercurial (1.8.1-1) unstable; urgency=low
+
+ * New upstream release 1.8.1 backs out a behavior change for so-called
+ 'fast-forward' merges on named branches.
+
+ -- Javi Merino <cibervicho@gmail.com> Sat, 12 Mar 2011 19:01:16 +0000
+
+mercurial (1.8-1) unstable; urgency=low
+
+ * New upstream release 1.8. Many new features and bugfixes, among them:
+ - hgk: realize it is hgk and not gitk (Closes: #613339)
+
+ -- Javi Merino <cibervicho@gmail.com> Sun, 06 Mar 2011 16:01:58 +0000
+
+mercurial (1.7.5-1) unstable; urgency=low
+
+ * New upstream release 1.7.5
+ * Delete patch for_upstream__typo_in_manpage.patch which is now
+ included upstream
+ * Add patch for_upstream__add_backquote_fname.patch , proposed
+ upstream (Closes: #611419)
+ * Add patch from_upstream__fix_611420.patch which will be part of the
+ next mercurial release (Closes: #611420)
+
+ -- Javi Merino <cibervicho@gmail.com> Sat, 05 Feb 2011 21:05:19 +0000
+
+mercurial (1.7.3-1) experimental; urgency=low
+
+ * New upstream release 1.7.3
+ * Add patch for_upstream__typo_in_manpage
+
+ -- Javi Merino <cibervicho@gmail.com> Tue, 25 Jan 2011 22:22:56 +0000
+
+mercurial (1.7.2-1) experimental; urgency=low
+
+ * New upstream release 1.7.2 (Closes: #606678)
+ * Fix typo in NEWS (Closes: #605541)
+ * Delete deb_specific__python-module-not-script.patch and
+ deb_specific__mergetools
+ * Update dh compatibility to 8
+
+ -- Javi Merino <cibervicho@gmail.com> Mon, 13 Dec 2010 21:34:15 +0000
+
+mercurial (1.6.4-1) unstable; urgency=low
+
+ * New upstream release 1.6.4 (Closes: #598850)
+ * Verify ssl validity in https connections (Closes: #598841)
+
+ -- Javi Merino <cibervicho@gmail.com> Mon, 04 Oct 2010 07:37:33 -0500
+
+mercurial (1.6.3-1) experimental; urgency=low
+
+ * New upstream release 1.6.3
+ * Deleted patch from_upstream__issue2255fix-basicauth.diff which is now
+ included upstream.
+
+ -- Javi Merino <cibervicho@gmail.com> Tue, 31 Aug 2010 10:12:42 +0200
+
+mercurial (1.6.2-2) unstable; urgency=low
+
+ * The patch that fixed #586907 was not being applied. Now it should
+ work. (Closes: #586907)
+
+ -- Javi Merino <cibervicho@gmail.com> Thu, 26 Aug 2010 16:31:09 +0200
+
+mercurial (1.6.2-1) unstable; urgency=low
+
+ * New upstream release 1.6.2
+ * Dropped build-depend on quilt (Closes: #588671)
+ * Added a patch from upstream that works around a bug in python 2.6.5
+ (Closes: #586907)
+ * Updated Standards-Version to 3.9.1.0 (no change needed)
+ * Deleted patch for_upstream__add_doc_url_in_example_files.patch which
+ is now in upstream.
+
+ -- Javi Merino <cibervicho@gmail.com> Fri, 06 Aug 2010 10:43:06 +0200
+
+mercurial (1.6-2) unstable; urgency=low
+
+ * Mercurial 1.6 breaks old versions of hg-git (Closes: #588336)
+
+ -- Javi Merino <cibervicho@gmail.com> Wed, 07 Jul 2010 15:48:53 +0200
+
+mercurial (1.6-1) unstable; urgency=low
+
+ [ Javi Merino ]
+ * New upstream release (1.6). Many bug fixes and improvements. Among
+ them:
+ - push: break infinite http recursion bug with Python 2.6.5
+ (issue2179 and issue2255) (Closes: #586907)
+ - zeroconf: Don't use string exceptions (Closes: #585250)
+ * Removed patch for_upstream__bashism_in_examples.patch since a fix for
+ #581122 is included upstream.
+ * Updated Standards-Version to 3.9 (no change needed)
+
+ [ Vincent Danjean ]
+ * debian/control:
+ + Use Breaks instead of Conflicts
+ + Use a fixed version in Replaces
+ I put 1.4 but it has been a long time since nothing has been moved
+ from mercurial to mercurial-common
+
+ -- Vincent Danjean <vdanjean@debian.org> Sun, 04 Jul 2010 09:55:28 +0200
+
+mercurial (1.5.4-2) unstable; urgency=low
+
+ * Fix regression in python 2.6.5 (Closes: #586907)
+
+ -- Javi Merino <cibervicho@gmail.com> Thu, 24 Jun 2010 12:46:57 +0200
+
+mercurial (1.5.4-1) unstable; urgency=low
+
+ * New upstream release (1.5.3). Fixes:
+ * fix Issue2181 (commit generates traceback on Nonetype)
+ * various improvements to SVN conversion support
+ * minor doc improvements
+ * New upstream release (1.5.4) (Closes: #586322). Fixes:
+ * dispatch: include Python version in traceback
+ * push: update help
+ * status: avoid performance regression when no .hgsub is present
+ * clone: fix performance issue with hardlinks and Windows shares
+ * hgweb: fix race in refreshing repo list (issue2188)
+ * hgrc: clarify that hgrc keys can be overridden and sections can be split
+ * eol: new extension for managing file newlines based on a version
+ controlled configuration file
+ * pager: fork and exec pager as parent process with /bin/sh -c
+ * rebase: stress that only local changesets should be rebased
+ * convert/svn: close gettags() log stream (issue2196)
+ * record: check that we are not committing a merge before patch selection
+
+ -- Javi Merino <cibervicho@gmail.com> Wed, 16 Jun 2010 09:51:21 +0200
+
+mercurial (1.5.2-1) unstable; urgency=low
+
+ * New upstream release. Many minor fixes:
+ + Core
+ * clone: fix URL too long problem with many heads
+ * commands: revised documentation of 'default' and 'default-push'
+ * copies: properly visit file context ancestors on working file contexts
+ * diffstat: use ui.plain() instead of ui.interactive()
+ * dirstate: fix in memory dirstate entries for 1-second race
+ * dispatch: don't mangle ImportError abort messages
+ * filemerge: use working dir parent as ancestor for backward wdir merge
+ * hgrc.5: describe form of config values and mention lists as well
+ * hgweb: fix attribute error in error response (issue2060)
+ * log: document the new xml style
+ * merge: correctly compute the flag for noexec filesystems
+ * patch: don't look for headers in diff lines
+ * push: fix bug in warning message selection
+ * revlog: fix lazyparser.__iter__() to return all revisions (issue2137)
+ * static-http: allow clone -r (issue2164)
+ * subrepo: fix repo root path handling in svn subrepo
+ * subrepo: propagate and catch push failures
+ * templates: document missing template variables
+ * util: fix default termwidth() under Windows
+ * util: use an explicit prefix for checkexec/checklink temporary files
+ + Extensions
+ * convert/cvs: skip bad tags
+ * convert/git: check status when reading output stream
+ * convert/subversion: fix default URL checker prototype
+ * mq: rewrite strip docstrings
+ * mq: use util.unlink instead of os.unlink and os.removedirs
+ * schemes: fix // breakage with Python 2.6.5 (issue2111)
+ * Fix "bashism in /bin/sh hgeditor script" (changing shebang line)
+ (Closes: #581122)
+
+ -- Vincent Danjean <vdanjean@debian.org> Tue, 11 May 2010 11:01:25 +0200
+
+mercurial (1.5.1-2) unstable; urgency=low
+
+ * Refresh debian patches
+ * Install localization files in the right place (Closes: #577132)
+
+ -- Vincent Danjean <vdanjean@debian.org> Sat, 10 Apr 2010 06:58:38 +0200
+
+mercurial (1.5.1-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Vincent Danjean <vdanjean@debian.org> Fri, 02 Apr 2010 10:45:26 +0200
+
+mercurial (1.5-1) unstable; urgency=low
+
+ * New upstream release
+ + Fix "Reserved revnos aren't." (Closes: #552423)
+ + Fix "Exception in zeroconf shows up in unrelated commands"
+ (Closes: #572963)
+ + Fix "/usr/bin/hg: HG(1) missing --config option syntax"
+ (Closes: #548413)
+ + Fix "A -> B, C -> A rename breaks diff --git" (Closes: #560386)
+
+ -- Vincent Danjean <vdanjean@debian.org> Fri, 12 Mar 2010 15:10:33 +0100
+
+mercurial (1.4.3-1) unstable; urgency=low
+
+ * New upstream release. (Closes: #569612)
+ * Updated Standards-Version to 3.8.4 (no change needed)
+ * Remove Gerardo Curiel <gcuriel@debian.org.ve> in the maintainer field
+ as asked by the MIA team (Closes: #553101)
+ * Do not install mercurial.el. It is only useful with emacs21 that will
+ not be in sqeeze. (Closes: #557211)
+ * Add a note in NEWS about the disparition of the alias extension
+ (Closes: #536533)
+
+ -- Vincent Danjean <vdanjean@debian.org> Mon, 15 Feb 2010 18:08:57 +0100
+
+mercurial (1.4.1-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Vincent Danjean <vdanjean@debian.org> Thu, 03 Dec 2009 22:03:06 +0100
+
+mercurial (1.4-1) unstable; urgency=low
+
+ [ Vernon Tang ]
+ * New upstream release.
+ - /usr/share/doc/mercurial-common/examples/hg-relink gone
+ (replaced by the relink extension)
+ * Updated Standards-Version to 3.8.3.
+
+ [ Vincent Danjean ]
+ * adjust quilt dependency so that it works with backports
+ (ie quilt >> 0.46-6 instead of quilt >= 0.46-7)
+
+ -- Vincent Danjean <vdanjean@debian.org> Thu, 19 Nov 2009 22:02:54 +0100
+
+mercurial (1.3.1-1) unstable; urgency=low
+
+ * New Upstream Version (mostly bugfixes)
+
+ -- Vincent Danjean <vdanjean@debian.org> Thu, 23 Jul 2009 22:49:32 +0200
+
+mercurial (1.3-2) unstable; urgency=low
+
+ * Do not hardcode the python interpreter in the hg script
+ (ie use python and not pythonX.Y...) [thanks Vernon Tang]
+
+ -- Vincent Danjean <vdanjean@debian.org> Thu, 09 Jul 2009 17:21:25 +0200
+
+mercurial (1.3-1) unstable; urgency=low
+
+ [ Vincent Danjean ]
+ * [debian/control] add version to the quilt dependency. "dh --with quilt"
+ is only supported since quilt 0.46-7 (thanks Faheem Mitha and Zed Pobre)
+ (Closes: #529700, #534589).
+
+ [ Luca Falavigna ]
+ * Changes for Python 2.6 transition (Closes: #532190):
+ - Pass --install-layout=deb option to setup.py install call.
+ - Bump python-all-dev dependency to >= 2.5.4-1~.
+
+ [ Vernon Tang ]
+ * New upstream release. (closes: #536009)
+ - Experimental support for sub-repositories
+ - Fixed support for HTTPS through proxies (closes: #498711)
+ - Experimental share extension
+ - Updated translations and numerous small changes and bug fixes
+ * Updated Standards-Version to 3.8.2.
+
+ -- Vincent Danjean <vdanjean@debian.org> Wed, 08 Jul 2009 17:03:39 +0200
+
+mercurial (1.2.1-3) unstable; urgency=low
+
+ * Only install (or remove) files in packages we are building
+ (Closes: #529803)
+ Who knows how dh_install detect if we are building arch-dep and/or
+ arch-indep packages ?
+
+ -- Vincent Danjean <vdanjean@debian.org> Wed, 27 May 2009 01:46:40 +0200
+
+mercurial (1.2.1-2) unstable; urgency=low
+
+ * rebuild (forgot to upload arch-all in previous upload)
+
+ -- Vincent Danjean <vdanjean@debian.org> Tue, 19 May 2009 11:01:15 +0200
+
+mercurial (1.2.1-1) unstable; urgency=low
+
+ [ Vernon Tang ]
+ * New bugfix upstream release. (Closes: #525403)
+ - fixed version number build from tarball
+ - fix allow_read logic for hgweb
+ - improve handling of damaged revlogs in verify
+ - keep .orig files when resolving
+ - clear resolve state properly when rebasing
+ - improve --command handling with bisect
+ - fix diff against bundles
+ - improve fetch logic for inactive branches
+ - fix diffstat with notify
+ - fix 'synthetic file adds' in CVS conversion
+
+ [ Vincent Danjean ]
+ * Dump Standards-Version (no change needed)
+ * Switch to dh7 instead of cdbs (last releases of cdbs was breaking
+ the build system) (Closes: #522426, #527504)
+
+ -- Vincent Danjean <vdanjean@debian.org> Mon, 18 May 2009 19:43:53 +0200
+
+mercurial (1.2-1) unstable; urgency=low
+
+ * New upstream release.
+
+ * Fix FTBFS with python-support 0.90 by removing dependence on
+ python-support internals. (closes: #516269)
+
+ -- Vernon Tang <vt@foilhead.net> Fri, 06 Mar 2009 17:37:45 +0800
+
+mercurial (1.1.2+hg20090217-7787-b8d750daadde-1) experimental; urgency=low
+
+ [ Vernon Tang ]
+ * New snapshot for feature freeze before next major release.
+
+ * debian/patches:
+ - deb_specific__mergetools: remove RCS merge from merge tools
+ - Added:
+ - proposed_upstream__dont-install-i18n
+ - Dropped:
+ - convert-darc-doc.patch: dropping for now to avoid fuzzing translations
+ - backport__zeroconf-doc
+ - Refreshed:
+ - deb_specific__install-templates-separately
+ - deb_specific__mergetools
+
+ * debian/control:
+ - Add gettext to build dependencies for compiling translations
+ - Remove RCS merge from Recommends
+ - Change merge tool Recommends to Suggests, add xxdiff
+
+ [ Vincent Danjean ]
+ * swich to debhelper 7.
+ Debhelper 5.0.37.2 is not enought: 6.0.7 at least is required for
+ dh_lintian to be called.
+ * Fix version to hg hash (instead of 'unknown') for this snapshot
+ * Fix upstream version in changelog
+ * Upload to experimental
+
+ -- Vincent Danjean <vdanjean@debian.org> Wed, 18 Feb 2009 16:24:23 +0100
+
+mercurial (1.1.2-2) unstable; urgency=low
+
+ * debian/mercurial.postinst: symlink /usr/share/doc/mercurial if dpkg didn't
+ do it when upgrading (closes: #512155)
+ * debian/control: mercurial-common replaces all earlier versions of
+ mercurial
+
+ -- Vernon Tang <vt@foilhead.net> Sun, 18 Jan 2009 10:39:58 +0800
+
+mercurial (1.1.2-1) unstable; urgency=low
+
+ [ Vernon Tang ]
+ * New upstream release (closes: #499846)
+ Also resolves the following Debian bugs:
+ - mq corrupts repository on file rename (closes: #503997)
+ - failing import breaks Python help (closes: #476885)
+ - hg email doesn't use correct encoding (closes: #427854)
+ - error when loading extensions twice (closes: #447088)
+ - static-http does not work with old layout repositories (closes: #494889)
+ - hgwebdir.cgi goes into endless loop when viewing moved files
+ (closes: #506694)
+
+ * Install hg-ssh (ssh login shell for an hg server) system-wide.
+ * Don't enable extensions by default. (closes: #511872, #503865, #491109)
+
+ * debian/control:
+ - Moved dependencies to mercurial-common where appropriate
+ - Removed Recommends: python-beaker (not a Mercurial dependency)
+ - Removed 'convert' extension dependencies from Suggests:
+ (convert depends on many of the other SCMs it can convert from)
+ - Added python-openssl to Suggests for "hg serve" HTTPS support.
+ * debian/hgext.rc: updated for 1.1.2.
+ * debian/mercurial*, debian/rules: general cleanup.
+ * debian/README.Debian: updated, proofread, and corrected.
+ * debian/patches:
+ - Added headers.
+ - Added:
+ - deb_specific__install-templates-separately
+ (patch template search path to /usr/share instead of symlinking from
+ the module directory)
+ - backport__zeroconf-doc, proposed_upstream__correct-zeroconf-doc
+ - deb_specific__mergetools
+ - Renamed deb_specific__ElementTree_for_darcs.patch to
+ deb_specific__optional-dependencies and updated to suggest Debian
+ packages for more optional dependencies
+ - Dropped:
+ - proposed_upstream__extension_syntax.patch
+ - deb_specific__FAQ_subst.patch
+ - deb_specific__bash_completion_global_option_already_set.patch
+ - backport__CVE-2008-2942-fix.patch
+ - backport__svn1.5-fix.patch
+ - Refreshed:
+ - deb_specific__use_sensible-editor.patch
+ - deb_specific__hgk.py.patch
+ - convert-darc-doc.patch
+
+ [ Sandro Tosi ]
+ * debian/control
+ - switch Vcs-Browser field to viewsvn
+
+ [ Marco Rodrigues ]
+ * debian/control:
+ + Add ${misc:Depends} to Depends to remove
+ lintian warning.
+
+ [ Vincent Danjean ]
+ * Document the fact that extensions are not enabled by default anymore
+ in the NEWS file
+ * big thanks to Vernon Tang for its work
+ * upload the package
+
+ -- Vincent Danjean <vdanjean@debian.org> Sat, 17 Jan 2009 17:33:46 +0100
+
+mercurial (1.0.1-5.1) unstable; urgency=high
+
+ * Non-maintainer upload by the Security Team.
+ * Honor allowpull configuration setting from hgrc on a repository clone to
+ prevent information disclosure (CVE-2008-4297; Closes: #500781).
+
+ -- Nico Golde <nion@debian.org> Fri, 03 Oct 2008 16:25:13 +0200
+
+mercurial (1.0.1-5) unstable; urgency=low
+
+ * Fix debian/copyright (GPL-2 only and not GPL-2+) (Closes: #493967)
+
+ -- Vincent Danjean <vdanjean@debian.org> Tue, 26 Aug 2008 15:28:20 +0200
+
+mercurial (1.0.1-4) unstable; urgency=low
+
+ * fix subversion 1.5 compatibility (Closes: #492244)
+ using upstream patch
+ * fix bashism in postinst
+
+ -- Vincent Danjean <vdanjean@debian.org> Thu, 31 Jul 2008 14:27:51 +0200
+
+mercurial (1.0.1-3) unstable; urgency=low
+
+ * debian/control:
+ + update Standard-Version (no change needed)
+ + add python-beaker as recommends (needed for "hg serve") (Closes:
+ #486299)
+ * fix wrong ucf registration (/etc/hgrc.d/ vs /etc/mercurial/hgrc.d/)
+ (Closes: #487089). Thanks Max Bowsher for noticing.
+ * add a mention to "legacy Darcs 1 format" in convert documentation
+ (Closes: #485887)
+
+ -- Vincent Danjean <vdanjean@debian.org> Tue, 08 Jul 2008 20:40:05 +0200
+
+mercurial (1.0.1-2) unstable; urgency=high
+
+ * Backport from upstream: fix CVE-2008-2942 Insufficient input validation
+ (Closes: #488628)
+
+ -- Vincent Danjean <vdanjean@debian.org> Tue, 01 Jul 2008 18:44:19 +0200
+
+mercurial (1.0.1-1) unstable; urgency=low
+
+ * New upstream release
+ + Bugfix release
+ * debian/watch: do not call uupdate
+
+ -- Vincent Danjean <vdanjean@debian.org> Sat, 31 May 2008 19:26:16 +0200
+
+mercurial (1.0-7) unstable; urgency=low
+
+ * Lowering versioned dependency on ucf. Etch version of ucf is enought.
+ #479485 was using a pre etch version of ucf.
+
+ -- Vincent Danjean <vdanjean@debian.org> Mon, 26 May 2008 09:25:45 +0200
+
+mercurial (1.0-6) unstable; urgency=low
+
+ * add versionned dependency on ucf due to the use to ucfr (Closes: #479485)
+ * re-add rcs as first alternative of recommands. Discussion about this
+ can be found in #460943 and #479077 (Closes: #479077)
+
+ -- Vincent Danjean <vdanjean@debian.org> Wed, 21 May 2008 10:04:32 +0200
+
+mercurial (1.0-5) unstable; urgency=low
+
+ * Add a note in the NEWS file about upstream change for merging conflicts.
+ (Closes: #481553, )
+ * install mergetools.hgrc system wide (Closes: #481089)
+ * add suggest and documentation for convert extension dependencies
+ (Closes: #477652)
+
+ -- Vincent Danjean <vdanjean@debian.org> Tue, 20 May 2008 22:46:57 +0200
+
+mercurial (1.0-4) unstable; urgency=low
+
+ * fix build system so that "hg version" works
+ * fix typos in doc (darcs instead of darc)
+ * remove suggests: for foreign SCM. If someone needs them for the convert
+ extension, they should be already installed (Closes: #476342)
+
+ -- Vincent Danjean <vdanjean@debian.org> Wed, 16 Apr 2008 10:05:53 +0200
+
+mercurial (1.0-3) unstable; urgency=low
+
+ * really fix auto-enabling extensions at installation time
+ + be less strict with spaces
+ + reformat the hgext.rc file to be consistent
+
+ -- Vincent Danjean <vdanjean@debian.org> Tue, 15 Apr 2008 10:32:38 +0200
+
+mercurial (1.0-2) unstable; urgency=low
+
+ * fix typo in mercurial postinst
+ * remove Suggests to non existant mercurial-web
+ * add lintian-override for non depends on "tk8.4 | wish" in
+ mercurial-common (the Suggests: is in the mercurial package
+ as for all other extensions' dependencies)
+ * fix handling of automatic enabled extension in postinst
+ (they must be disabled in the installed template)
+ * add detection of inotify extension before enabling it (needed on
+ etch that has a too old libc)
+
+ -- Vincent Danjean <vdanjean@debian.org> Mon, 07 Apr 2008 09:06:04 +0200
+
+mercurial (1.0-1) unstable; urgency=low
+
+ * new upstream version
+ Closes several Debian bugs:
+ * "hg convert broken" (Closes: #472185)
+ * "hgmerge: uses non-POSIX syntax `type' in /bin/sh script" (Closes:
+ #447094)
+ * "hgmerge: --help option gives a message that ends strangely" (Closes:
+ #443428)
+ * "mercurial: hg/editor interaction leaves a lot of temp files around"
+ (Closes: #472943)
+ * "mercurial: Mercurial merge with meld needs hint" (Closes: #466006)
+ * "glog: tries to close closed fd" (Closes: #454326)
+ * "mercurial: `hg diff` can break UTF-8 encoding" (Closes: #469326)
+ * "Recording mtime after recording commit message leads to hidden (lost)
+ changes" (Closes: #452385)
+ General:
+ * greatly improved merge tool configuration, see "hgrc.5.txt" for details
+ * improved copy/rename handling in diffs, status, and merge
+ * files in .hg inherit permissions from .hg/store
+ * infer --repository when possible, so commands may be run from anywhere.
+ * easy-installable
+ * new "droplet" logo
+
+ Commands:
+ * archive: disable ".hg_archival.txt" file addition with "ui.archivemeta"
+ * bisect: now built-in with greatly improved performance and usability
+ * bundle: new --all option to bundle the whole repository more easily.
+ * cat: apply decode filters with --decode
+ * clone: can clone from a full-history bundle
+ * commit: warn when creating a new head
+ * debugancestor: index argument is now optional
+ * diff: set the number of context line to show with -U/--unified
+ * grep: display matched revisions commit date with --date
+ * import: new --no-commit and --user options
+ * incoming/outgoing: add --limit option
+ * log: use -b/--only-branch to show revisions of a single branch
+ * remove: improve handling for --after
+ * revert: major speedup
+ * serve: prefix the served path with --prefix (also in [web] section)
+ * status: unknown files are skipped by --quiet
+ * tag: allow multiple tags to be added or removed
+ * tags: --verbose flags local tags
+ * update: switch between named branches without -C
+
+ Extensions:
+ * churn: promoted to an official extension (previously in contrib)
+ * color: new extension coloring "status" and "qseries" command outputs
+ * convert:
+ * allow synthetic history to be spliced in with --splicemap
+ * support GNU Arch and Monotone sources
+ * svn: allow shallow conversions of single branches with
+ convert.svn.startrev option.
+ * svn: make trunk/branches/tags layout detection more flexible by
+ allowing either of them to be skipped.
+ * svn: preliminary support as a conversion target
+ * hgk: configuration file changed from .gitk to .hgk
+ * highlight: new extension enabling syntax highlighting in hgweb file view
+ (requires pygments)
+ * inotify: new extension using Linux 2.6 inotify API for instant status
+ checking
+ * keyword: new extension for filewise RCS-keyword expansion in working
+ directory
+ * mq: new --currentdate, --date, --currentuser, and
+ --user options
+ * record: add "qrecord" command when used with mq
+
+ Web interface:
+ * improved WSGI integration and compatibility
+ * follow symlinks in hgwebdir collections
+ * show branches in most of gitweb templates
+ * add line anchors to annotate, changeset, diff and file views
+ * support web.baseurl in hgwebdir, overriding SCRIPT_NAME
+
+ Hooks:
+ * standard hook to reject text files with CRLF in win32text extension
+ * redirect stdout to stderr for ssh and http servers
+
+ [ Gerardo Curiel ]
+ * Split package to fix lintian warnings:
+ + mercurial - main package
+ + mercurial-common - Arch-indep bits
+ * Fix clean target
+ * Dropped patches:
+ patches/proposed_upstream__check_hgmerge_args.patch
+ patches/proposed_upstream__type_is_not_posix.patch
+ * patches/deb_specific__use_sensible-editor.patch:
+ Rediff against mercurial 1.0
+ * hgmerge shell script is not provided anymore
+ * contrib/favicon.ico is not provided anymore
+ * Deleted obsolete link_hgit target from debian/rules
+ * Added mergetools.hgrc to the examples
+ directory
+ * Added logo-droplets.svg to /usr/share/mercurial
+ * Added new extensions to the hgext.rc file
+ + hgext.color (not enabled by default)
+ + hgext.highlight (not enabled by default)
+ + hgext.inotify (enabled, Closes: #472583)
+ + hgext.keyword (not enabled by default)
+ * Removed extensions from the hgext.rc file
+ + hgext.hbisect (now provided as a built-in command)
+ * Added new suggested dependencies :
+ + python-pygments (needed for hgext/highlight.py)
+ + python-elementtree (for darcs conversion)
+
+ [ Vincent Danjean ]
+ * import mercurial in the Python Application Packaging Team project
+ * debian/control:
+ + add PAPT in the Uploaders field
+ + add Vcs-* fields
+ + add conflicts/replaces fields to ensure proper upgrade for
+ mercurial-common
+ * cleanup debian/ files
+ + remove unneeded debian/*.{dirs} files
+ * move examples/ in usr/share/doc/mercurial (in the mercurial-common
+ package)
+ * manage hgext.rc with ucf. Enabling some extensions only if their
+ dependencies are present
+ * put all usr/share/python-support/* in mercurial-common instead of
+ mercurial. This trigger a lintian warning but this is an error (see
+ #473428)
+
+ [ Piotr Ożarowski ]
+ * New recommended packages:
+ + python-mysqldb (hgext/bugzilla.py)
+ + python-openssl (hgweb/server.py)
+ * New suggested packages:
+ + python-flup (contrib/hgwebdir.fcgi, Closes: #466731)
+
+ [ William Pitcock ]
+ * patches/deb_specific__use_sensible-editor.patch:
+ +Rediff against 1.0 branch.
+
+ -- Vincent Danjean <vdanjean@debian.org> Mon, 07 Apr 2008 00:11:40 +0200
+
+mercurial (0.9.5-3) unstable; urgency=low
+
+ * [debian/control]
+ + Recommends rcs first (and before kdiff3) as hgmerge
+ use it in first (and does not use another program if it exists)
+ (Closes: #460943)
+ As an additionnal value, rcs has really fewer dependencies
+ + Move Homepage: from description to source stanza
+ + Suggest qct instead of commit-tool (better developed upstream)
+ + Bump standard-version to 3.7.3 (no change needed)
+ + Add python-elementtree to suggest (needed for hg convert with darcs
+ repo) (Closes: 459353)
+ Should be removed when debian will switch to python2.5 (as it is
+ included in it)
+ + move tk8.4 | wish from recommends to suggests as it is needed by
+ an extension (hgk) and not by the core package
+ * [debian/README]
+ + document that extension dependencies are listed as Suggests:
+ * [debian/patches/deb_specific__use_VISUAL_envvar.patch]
+ Rewrite the patch using sensible-editor (Closes: 448376)
+ and rename it to deb_specific__use_sensible-editor.patch
+ * [debian/rule]
+ + rewrite the fix for cdbs/dh_python so that we depend on the
+ current python version (Closes: #456556)
+
+ -- Vincent Danjean <vdanjean@debian.org> Mon, 21 Jan 2008 20:57:27 +0100
+
+mercurial (0.9.5-2) unstable; urgency=low
+
+ * Apply patch to change 'hgext/' into 'hgext.' when loading an extension
+ Current config files use the documented syntax (ie 'hgext.extname=')
+ Users can use 'hgext/extname=' in their hgrc if they want to
+ (Closes: #447088)
+
+ -- Vincent Danjean <vdanjean@debian.org> Fri, 02 Nov 2007 11:59:03 +0100
+
+mercurial (0.9.5-1) unstable; urgency=low
+
+ * New upstream release
+ Closes: #435636 (erroneous multiple heads after commit)
+ Closes: #427808 (hgweb/hgwebdir do not work with flup (FastCGI))
+ Closes: #418780 (partial hgweb listings)
+ Closes: #440175 (please include record extension)
+ Closes: #447663 (0.9.5 available)
+ Closes: #427851 (RSS feeds have wrong URL with https)
+ New features:
+ * Handle symlinks on systems without symlink support
+ * hg archive supports symlinks
+ * Display executable/symlink bit with "hg manifest -v" (see UpgradeNotes)
+ * Improved hg verify diagostics
+ * Faster revlog handling
+ * Faster handling of large directories
+ * Greatly improved handling of large files
+ * Atom syndication support in hgweb
+ * Improved test suite with parallel execution
+
+ Fixes:
+ * Fixes for some file copy and rename corner cases
+ * Allow moving newly-added files before commit
+ * Improve hg diff whitespace handling
+ * Disallow fast-forward merge with an ancestor
+ * Fix adding untracked files on directory renames
+ * Fix hg archive %r format specifier
+ * Fix re: and glob: patterns in .hgignore
+ * Improve hg executable path resolution
+ * Many options and hgrc parsing improvements
+ * Better handling of VFAT filesystems on Linux
+ * Fix tgz archival on Windows
+ * Fix hg serve on Windows requiring pywin32 modules
+ * Fix --profile under Windows
+
+ New extensions:
+ * alias - allow user-defined command aliases
+ * children - show the children of the given or working dir revision
+ * imerge - incremental interactive merging
+ * interhg - modify changelog text as in InterWiki
+ * record - darcs-style interactive change selection during commit
+
+ New extension features:
+ * convert
+ * Now supports Subversion, Darcs and Mercurial as source SCMs
+ * Use clone's behaviour for the default destination name
+ * Force encoding to UTF-8 for converted repository
+ * Support new-style .cvspass file format
+ * Filter the files and directories to import
+ * Remap paths to new locations during import
+ * hgk
+ * Fix hgk stopping because of untrusted repository warnings
+ * Handle filenames with spaces
+ * Improved documentation
+ * mq
+ * Autodetect --git patches on qrefresh
+
+ * Improve README.Debian about Emacs
+ Closes: #446972 (mercurial.el: autoload)
+ Thanks to Trent W. Buck for its explainations added to the README.Debian
+ * Apply several patches to hgmerge:
+ - use /bin/bash for hgmerge: 'type' is not POSIX (Closes: #447094)
+ - patch hgmerge to do minimum check of its arguments (Closes: #443428)
+ - use $VISUAL and default to 'editor' instead of 'vi'
+ (Closes: #447095, #448376) [mercurial/command.py modified too]
+ * Correct wrong link to web docs in README.Debian (Closes: #425841)
+ * [debian/control] Recommends: meld (used to hgmerge) (Closes: #316347)
+
+ -- Vincent Danjean <vdanjean@debian.org> Mon, 29 Oct 2007 10:22:45 +0100
+
+mercurial (0.9.4-1) unstable; urgency=low
+
+ * New upstream release (Closes: #430714)
+ + New features:
+ * support for symlinks
+ * improved tag handling
+ * improved merge handling of file and directory renames
+ * improved named branch usability
+ * numerous improvements to commands
+ * generic pre- and post-command hooks
+ * improved Windows support
+ * basic BeOS and OpenVMS support
+ * numerous bug fixes
+
+ + New extensions and contributions:
+ * extensions can now be specified in .hg/hgrc
+ * new convert extension with CVS support
+ * new graphlog extension
+ * improved patchbomb extension
+ * example FastCGI script
+
+ -- Vincent Danjean <vdanjean@debian.org> Wed, 27 Jun 2007 00:33:27 +0200
+
+mercurial (0.9.3-2) unstable; urgency=low
+
+ * [debian/rule, debian/control] remove workaround for symlink support in
+ python-support and bump dependency of python-support (>= 0.4.3)
+ * [debian/rule] use default python interpreter as 2.4 is the default now
+ * [debian/mercurial.postinst] remove old
+ /usr/lib/python*/site-packages/{mercurial,hgext} directories if needed
+ (Closes: #382252)
+ * forgot to closes: #382185 since 0.9.2 upstream release (hgrc manual does
+ not say [smtp] host is optional any more)
+
+ -- Vincent Danjean <vdanjean@debian.org> Wed, 3 Jan 2007 14:22:10 +0100
+
+mercurial (0.9.3-1) unstable; urgency=low
+
+ * New upstream release
+ + Bug fixes:
+ - fix a merge copy/rename corner case
+ - fix spurious new heads message with push -r
+ - fix hg export %n sequence numbers
+ - fix shell quoting on Windows
+ - fix charset encoding for hgwebdir and obfuscated addresses
+ - fix missing generated files for distribution tarball
+ - fix convert-repo tag updates and transcoding of committer
+ - add instructions for redoing failed merges
+
+ + Documentation fixes:
+ - hg cat, manifest, and tag default to current parent revision.
+ - CGI stub comments clarified
+ - corrected synopses for many commands
+ - improve doc building and distribution
+ - convert-repo: update usage information
+
+ + Extension fixes:
+ - mq: fix strip on Windows
+ - mq: fix some guards corner cases
+ - gpg: make 'hg sign' default to current parent
+
+
+
+ -- Vincent Danjean <vdanjean@debian.org> Tue, 19 Dec 2006 11:25:55 +0100
+
+mercurial (0.9.2-3) unstable; urgency=low
+
+ * remove debian/patches/submitted_upstream__restore_hgk.py.patch
+ as it is now included in the release (and avoid to use a old hgk.py
+ with a recent hg) (Closes: #403282)
+
+ -- Vincent Danjean <vdanjean@debian.org> Sat, 16 Dec 2006 15:51:13 +0100
+
+mercurial (0.9.2-2) unstable; urgency=low
+
+ * [debian/rules] add support for python2.5
+ * [README.Debian] update list of default extensions
+
+ -- Vincent Danjean <vdanjean@debian.org> Thu, 14 Dec 2006 15:26:10 +0100
+
+mercurial (0.9.2-1) unstable; urgency=low
+
+ * New upstream release
+ + New features:
+ - merge now follows renames and copies
+ - new layout protects against case-insensitivity issues
+ - new branch and branches commands for managing named branches
+ - push command accepts -r for pushing specified heads or named
+ branches
+ - proper storage of changelog and other metadata in UTF-8
+ - log, annotate and grep '--follow' follow renames and copies
+ - date parsing is improved and log, update, and revert accept
+ --date ranges
+ - additional command options for log, status, addremove
+ - improved schema for hgweb URLs
+ - bundle can now use '-r' and '--base' removing the need of an
+ base repository
+ - support for git-style extended patches with --git option
+ - new debuginstall command to check for common installation issues
+
+ + New contributions and extensions:
+ - mq
+ - support for quilt-style guards
+ - can import existing changesets into mq ('qimport -r') or
+ commit mq patches as regular changesets ('qdel -f')
+ - edit the log message with 'qrefresh -e'
+ - rename patches with 'qrename'
+ - qheader to display the patch header of particular patches,
+ and '--summary' for qseries, qapplied, qunapplied and qtop
+ - combine patches with 'qfold'
+ - qrefresh supports pattern options to import only a subset
+ of the changes into a patch, to help split changes into
+ multiple patches
+ - patch names for applied patches act like local tags, and can
+ be used in the revision arguments of any hg command
+ - hgk
+ - browse a subset of the history with '--limit' and revision range
+ arguments
+ - shows revision numbers as well as node hashes
+ - churn: graph lines of code changed per user over a range of history
+ - patchbomb: generate inline attachments with '-a'
+
+ + Behavior changes:
+ - hg cat defaults to the working directory revision rather than tip
+ - hg manifest no longer shows internal file revision hashes by default
+ - hg revert now requires the -a flag to revert all files
+
+ + Developer notes:
+ - new high-level API functions in the 'hg' module
+ - new context API simplifies many operations
+ - The changelog can now include arbitrary metadata in key: value form
+ * [debian]: include the churn extension and enable it by default
+
+ -- Vincent Danjean <vdanjean@debian.org> Thu, 14 Dec 2006 13:05:01 +0100
+
+mercurial (0.9.1+20061210+8c24b6fd5866-1) experimental; urgency=low
+
+ * New upstream release
+ snapshot before 0.9.2 release
+ * [debian/control] : update maintainer field : I'am DD now :-)
+
+ -- Vincent Danjean <vdanjean@debian.org> Sun, 10 Dec 2006 22:40:30 +0100
+
+mercurial (0.9.1-1) unstable; urgency=low
+
+ * New upstream release
+ Major changes between Mercurial 0.9 and 0.9.1:
+
+ New features:
+ - You can now configure your 'hgweb' server to let remote users
+ 'push' changes over http.
+ - You can now 'import' a patch in a mail message by saving the mail
+ message, and importing it. This works for patches sent either
+ inline or as attachments.
+ - The 'diff' command now accepts '-rA:B' syntax as a synonym for
+ '-r A -r B', and adds '-b' and '-B' options.
+
+ New contributions and extensions:
+ - The 'acl' extension lets you lock down parts of a repository
+ against incoming changes
+ - The 'extdiff' extension lets you run your favourite graphical
+ change viewer
+ - Comprehensive integration with the 'vim' editor
+ - A restricted shell for 'ssh'-hosted repositories
+ - An importer for 'darcs' repositories
+
+ New hooks added:
+ - 'preupdate' is run before an update or merge in the working
+ directory.
+ - 'update' is run after an update or merge in the working
+ directory.
+
+ Behaviour changes:
+ - NOTE: Mercurial as installed by the Windows binary
+ installer no longer performs automatic line-ending conversion for
+ Unix/Linux compatibility. To re-enable this feature, edit your
+ 'mercurial.ini' file after you upgrade.
+ - The Windows binary installer now automatically adds 'hg' to your
+ '%PATH%'.
+ - The 'backout' command now runs an editor by default, to let you
+ modify the commit message for a backed-out changeset.
+ - An earlier problem with parsing of tags has been fixed.
+ This makes tag parsing slower but more reliable.
+
+ Memory usage and performance improvements:
+ - The 'remove' command has been rewritten to be hundreds of times
+ faster in large repositories.
+ - It is now possible to 'clone' a repository very quickly over a
+ LAN, if the server is configured to allow it. See the new 'server'
+ section in the 'hgrc' documentation.
+
+ Other changes of note:
+ - Mercurial will now print help for an extension if you type 'hg
+ help EXT_NAME'.
+ - The usual array of bug fixes and documentation improvements.
+ - The integrated web server is now more WSGI-compliant.
+ - Work has begun to solidify Mercurial's API for use by third-party
+ packages.
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Tue, 25 Jul 2006 19:21:13 +0200
+
+mercurial (0.9-9) unstable; urgency=low
+
+ * Force the use of python2.4 with a sed command. A race condition on some
+ autobuilders makes that workaround needed. (Really closes: #378835)
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Thu, 20 Jul 2006 17:59:35 +0200
+
+mercurial (0.9-8) unstable; urgency=low
+
+ * do not use default python but python2.4 instead for hg :
+ most code is python2.3 compatible (so we still compile .py files for
+ pyhton2.3) but "hg help" need features for python2.4
+ Closes: #378835
+ Thanks David Douard for reporting this.
+ * adding missing manpage hgignore (Closes: #378502)
+ Thanks Baruch Even for reporting this.
+ * remove hack in postinst (dpkg not replacing directory by symlink) as it is
+ no more useful (directory was in /usr/lib/python2.3, symlink in now in
+ /usr/lib/python2.4)
+ * Create symlinks for the templates directory within the mercurial directory
+ (and not in another python serch path) (Closes: #378538)
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Wed, 19 Jul 2006 12:25:30 +0200
+
+mercurial (0.9-7) unstable; urgency=low
+
+ * mercurial will use the default python interpreter
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Tue, 11 Jul 2006 23:12:14 +0200
+
+mercurial (0.9-6) unstable; urgency=low
+
+ * update to the new python policy
+ * reenable the fix for #362487 as python2.3 is useable again
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Tue, 4 Jul 2006 00:19:50 +0200
+
+mercurial (0.9-5) unstable; urgency=low
+
+ * call dh_python with -V 2.4 argument
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Mon, 29 May 2006 09:18:53 +0200
+
+mercurial (0.9-4) unstable; urgency=low
+
+ * [debian/copyright] add copyright for Debian packaging
+ * [debian/NEWS] talk about python2.3->python2.4 transition
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Wed, 17 May 2006 00:28:48 +0200
+
+mercurial (0.9-3) unstable; urgency=low
+
+ * [debian/compat] debhelper compat version dumped to 5
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Sun, 14 May 2006 21:27:43 +0200
+
+mercurial (0.9-2) unstable; urgency=low
+
+ * fix a bug in update/revert (patch from Vadim Gelfer already applied
+ upstream)
+ * [debian/control] build-depend on python as dh_python require it
+ (package did not fail to build due to an indirect build-dependency
+ but it is safer like that)
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Fri, 12 May 2006 19:30:44 +0200
+
+mercurial (0.9-1) unstable; urgency=low
+
+ * New upstream release
+ Major changes between Mercurial 0.8.1 and 0.9:
+ - The repository file format has been improved.
+ - This has resulted in an average 40% reduction in disk space usage.
+ - The new format (called RevlogNG) is now the default.
+ - Mercurial works perfectly with both the old and new repository
+ file formats. It can transfer changes transparently between
+ repositories of either format.
+ - To use the new repository format, simply use `hg clone --pull` to
+ clone an existing repository.
+ - Note: Versions 0.8.1 and earlier of Mercurial cannot read
+ RevlogNG repositories directly, but they can `clone`, `pull`
+ from, and `push` to servers that are serving RevlogNG
+ repositories.
+ - Memory usage has been improved by over 50% for many common operations.
+ - Substantial performance improvements on large repositories.
+ - New commands:
+ - 'archive' - generate a directory tree snapshot, tarball, or zip
+ file of a revision
+ - Deprecated commands:
+ - 'addremove' - replaced by 'add' and 'remove --after'
+ - 'forget' - replaced by 'revert'
+ - 'undo' - replaced by 'rollback'
+ - New extensions:
+ - Bugzilla integration hook
+ - Email notification hook
+ - Nested repositories are now supported. Mercurial will not recurse
+ into a subdirectory that contains a '.hg' directory. It is treated
+ as a separate repository.
+ - The standalone web server, 'hg serve', is now threaded, so it can
+ talk to multiple clients at a time.
+ - The web server can now display a "message of the day".
+ - Support added for hooks written in Python.
+ - Many improvements and clarifications to built-in help.
+ * [debian/control] set Standard-Version to 3.7.2 (no changes required)
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Thu, 11 May 2006 01:00:03 +0200
+
+mercurial (0.8.1-6) unstable; urgency=low
+
+ * cleanup patches applied on top of upstream sources
+ send the interesting one to upstream before the 0.9 release
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Thu, 27 Apr 2006 03:20:24 +0200
+
+mercurial (0.8.1-5) unstable; urgency=low
+
+ * use python2.4 instead of standard python (2.3 for now):
+ this allows to use hglib backend with tailor
+ * several minor fixes so that tailor works with the 'hglib' backend
+ these are submitted upstream
+ * hardcode python interpreter in script instead of using /usr/bin/env
+ as suggested by the python policy
+ * remove previous hack (dpkg not replacing directory by symlink) as
+ it is no more useful (directory was in /usr/lib/python2.3, symlink in now
+ in /usr/lib/python2.4)
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Mon, 17 Apr 2006 12:21:24 +0200
+
+mercurial (0.8.1-4) unstable; urgency=low
+
+ * directory doesn't get replaced by symlink (Closes: #362487)
+ and dpkg does not say anything ! Thanks Norbert Tretkowski
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Fri, 14 Apr 2006 00:38:10 +0200
+
+mercurial (0.8.1-3) unstable; urgency=low
+
+ * Really fix #361897 (Thanks Darren Salt again)
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Wed, 12 Apr 2006 20:33:45 +0200
+
+mercurial (0.8.1-2) unstable; urgency=low
+
+ * Fix new tag syntax for hgk. Thanks Darren Salt (Closes: #361897)
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Tue, 11 Apr 2006 13:25:04 +0200
+
+mercurial (0.8.1-1) unstable; urgency=low
+
+ * New upstream release
+ Major changes from 0.8 to 0.8.1:
+ - new extensions:
+ mq (manage a queue of patches, like quilt only better) (Closes: #343824)
+ email (send changes as series of email patches)
+ - new command: merge (replaces "update -m")
+ - improved commands: log (--limit option added), pull/push ("-r" works
+ on specific revisions), revert (rewritten, much better)
+ - comprehensive hook support
+ - output templating added, supporting e.g. GNU changelog style
+ - Windows, Mac OS X: prebuilt binary packages, better support
+ - many reliability, performance, and memory usage improvements
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Mon, 10 Apr 2006 22:09:16 +0200
+
+mercurial (0.8-3) unstable; urgency=low
+
+ * Fix typo in long description
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Tue, 4 Apr 2006 03:30:22 +0200
+
+mercurial (0.8-2) unstable; urgency=low
+
+ * Add documentation about extensions packaged for Debian.
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Tue, 31 Jan 2006 11:14:52 +0100
+
+mercurial (0.8-1) unstable; urgency=low
+
+ * New upstream release
+ Major changes from 0.7 to 0.8:
+ - faster status, diff, and commit
+ - reduced memory usage for push and pull
+ - improved extension API
+ - new bisect, gpg, hgk, and win32text extensions
+ - short URLs, binary file handling, and optional gitweb skin for hgweb
+ - numerous new command options including log --keyword and pull --rev
+ - improved hooks and file filtering
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Mon, 30 Jan 2006 16:06:34 +0100
+
+mercurial (0.7+20060110+0d36e3d7e2ea-1) experimental; urgency=low
+
+ * package test to try upstream sources before 0.8
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Tue, 10 Jan 2006 22:47:38 +0100
+
+mercurial (0.7-8) unstable; urgency=low
+
+ * Closes: #343459: correct FAQ URL
+ * Closes: #343458: fix directory completion
+ * Closes: #343472: clone does not work with path aliases
+ (Thanks Daniel Kobras for these three bugreports with patch)
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Tue, 3 Jan 2006 21:13:23 +0100
+
+mercurial (0.7-7) unstable; urgency=low
+
+ * Add support for alias st for hg status (Closes: #340235)
+ (backport from tip, thanks Michael Gebetsroither <michael.geb@gmx.at>)
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Tue, 22 Nov 2005 13:01:39 +0100
+
+mercurial (0.7-6) unstable; urgency=low
+
+ * Backport of the patch "fix handling of daylight saving time"
+ from upstream (Closes: #336646)
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Wed, 2 Nov 2005 06:17:04 +0100
+
+mercurial (0.7-5) unstable; urgency=low
+
+ * Add hgweb.cgi and hgwebdir.cgi in examples (Closes: #332973)
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Sat, 15 Oct 2005 11:24:54 +0200
+
+mercurial (0.7-4) unstable; urgency=low
+
+ * backport from upstream of
+ - use of 'hgext' directory for extensions
+ - 'hgk.py' extension (was hgit before)
+ => 'hg view' works ;-)
+ * add 'Recommands: wish' for the hgk extension
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Fri, 23 Sep 2005 11:45:13 +0200
+
+mercurial (0.7-3) unstable; urgency=low
+
+ * Add system-wide config directory (so that extensions can be easyly added)
+ * Enable hgit extension
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Tue, 20 Sep 2005 02:47:16 +0200
+
+mercurial (0.7-2) unstable; urgency=low
+
+ * Correct changelog.Debian (I forgot to add upstream changes in the
+ previous entry)
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Sun, 18 Sep 2005 22:46:14 +0200
+
+mercurial (0.7-1) unstable; urgency=low
+
+ * New upstream release (Closes: #328725)
+ core
+ improved merge logic
+ improved copy/rename support (still experimental)
+ automatic binary file handling
+ generic file filtering support
+ various performance improvements
+ command line
+ new bundle/unbundle commands for exchanging native updates
+ more natural support for remove, copy, and rename
+ faster, more powerful log command
+ new grep command for searching entire history
+ support for plug-in extensions
+ improved exception handling and debugging facilities
+ hgweb
+ optional downloading of tarballs and zip files
+ Windows support
+ hardlinking support
+ newline conversion through file filtering
+ contrib
+ updated hgk
+ * New package (a bit delayed due to a crash disk and a new job)
+ * Upstream added support for options -h and --help (Closes: #324049)
+ * renamming conffile 'bash_completion' to 'mercurial' (Closes: #325266)
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Sat, 17 Sep 2005 16:54:37 +0200
+
+mercurial (0.6c-1) unstable; urgency=low
+
+ * New upstream release
+ What's new:
+
+ core functionality
+ ability to use tags to identify branches
+ detect adding new heads with push
+ protocol versioning for push/pull
+ https: support
+ minor merge fixes
+ command line
+ much more powerful path handling
+ incoming/outgoing commands
+ smarter import/export
+ fewer long, confusing hashes to deal with
+ many new command options and settings
+ portability
+ improved portability of test suite and support scripts
+ improved Windows support
+ web interface
+ easy to set up multiple repository interface
+ several new hgrc config options
+ IPv6 support
+ documentation
+ improved built-in help and man pages
+ a steadily growing wiki
+ tutorial in multiple languages
+ extras
+ a highly functional bash auto-completion script
+ a new Emacs mode
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Tue, 23 Aug 2005 11:01:36 +0200
+
+mercurial (0.6b-2) unstable; urgency=low
+
+ * Adds proper python dependencies
+ * Recommends tkdiff or kdiff3 for merge purpose
+ * Suggests meld as this is another merging program that can be used by
+ mercurial (but this needs the user set the HGMERGE variable)
+ * Closes: #316347: Please Recommands: meld
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Wed, 17 Aug 2005 10:33:33 +0200
+
+mercurial (0.6b-1) unstable; urgency=low
+
+ * New upstream release
+ What's new:
+
+ improved ui
+ new clone command replaces mkdir+init+pull+update
+ new revert command
+ add range support and -p option to log to show patches
+ tags command now supports local tags
+ improved push and pull
+ better exception and signal handling
+ improved option parsing
+ support for user-defined hooks (aka triggers)
+ performance updates
+ even faster import of large sets of patches
+ faster delta generation
+ faster annotate
+ faster status and ignore
+ improved web interface
+ more conformant and compatible HTML output
+ built-in RSS feeds
+ better tags handling
+ fast multiple keyword search
+ portability work
+ support for Windows is nearly complete
+ should easily compile and install on any modern UNIX
+ comes with RPM spec file and script
+ and more
+ doc and help updates
+ improved test suite
+ numerous bug fixes and cleanups
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Tue, 12 Jul 2005 11:45:13 +0200
+
+mercurial (0.6-2) unstable; urgency=low
+
+ * Add meld to Suggest as it is not used by default hgmerge
+ (Closes: #316347: Please Recommands: meld)
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Thu, 30 Jun 2005 16:30:33 +0200
+
+mercurial (0.6-1) unstable; urgency=low
+
+ * New upstream release
+ This release contains a huge number of improvements:
+
+ improved source tracking
+ multi-head support
+ permission tracking
+ rename and copy tracking
+ improved tag handling
+ friendlier, more robust command line interface
+ integrated help
+ faster startup
+ better exception handling
+ smarter three-way merge helper
+ improved communication
+ faster outstanding changeset detection
+ SSH-based push support
+ non-transparent proxy support
+ improved configuration handling
+ support for .hgrc and .hg/hgrc files
+ save per-repo defaults for pull
+ new delta extension
+ faster, smaller, and simpler than GNU diff or xdiff
+ faster commit, push/pull, and annotate
+ improved interoperability
+ convert-repo framework for importing from other SCMs
+ can work with gitk and git-viz
+ portability improvements
+ tested on big and little-endian 32 and 64-bit UNIX platforms
+ Windows support is nearly complete
+ and much more
+ numerous performance tweaks and bugfixes
+ automated test suite
+ updated docs and FAQ
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Sat, 25 Jun 2005 00:15:13 +0200
+
+mercurial (0.5b+20050618-1) unstable; urgency=low
+
+ * New upstream sources (tip 396:8f8bb77d560e70bcc95577e4dfa877df18d876ab)
+ this fix a alignment bug reported on alpha
+ * many others fix and improvments from upstream
+ * Change short description
+ Closes: #314577: Please spell out the abbreviation in the synopsis
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Sat, 18 Jun 2005 10:02:39 +0200
+
+mercurial (0.5b+20050612-2) unstable; urgency=low
+
+ * Fix spelling mistake (thanks Emanuele Aina)
+ Closes: #314161: Small spelling error in documentation
+ * New package that should solve the FTBFS due to the use of the boggus
+ package debhelper 4.9.0 by autobuilders
+ Closes: #313491: mercurial_0.5b+20050612-1: FTBFS: syntax error at
+ /usr/bin/dh_strip line 191, near 'if'
+ * Closes: #314577: Please spell out the abbreviation in the synopsis
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Fri, 17 Jun 2005 11:14:06 +0200
+
+mercurial (0.5b+20050612-1) unstable; urgency=low
+
+ * New upstream sources
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Sun, 12 Jun 2005 11:40:02 +0200
+
+mercurial (0.5b-5) unstable; urgency=low
+
+ * manually fix wrong build-dependencies that have been previously generated
+ by cdbs (ie remove 'build-essential' and duplicates)
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Sat, 4 Jun 2005 09:16:40 +0200
+
+mercurial (0.5b-4) unstable; urgency=low
+
+ * remove automatic generation of control from control.in (with cdbs
+ dependencies) as requested by ftpmaster to accept this NEW package
+ (see still opened bugs #311724 for more information)
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Fri, 3 Jun 2005 08:57:06 +0200
+
+mercurial (0.5b-3) unstable; urgency=low
+
+ * First official Debian release. (Closes: #308873: ITP: mercurial -- scalable
+ distributed SCM)
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Thu, 2 Jun 2005 08:55:53 +0200
+
+mercurial (0.5b-2) unstable; urgency=low
+
+ * package description improved from the mercurial ML
+ * Add Homepage: to long description (thanks Anibal Monsalve Salazar)
+ * Change Architecture from all to any as mercurial sources now have C files
+ to compile (thanks Anibal Monsalve Salazar)
+ * Update copyright (thanks Anibal Monsalve Salazar)
+ * Add rcs and tkdiff to Recommands as hgmerge use it (only recommands and
+ not depends because if the user set HGMERGE to kdiff3, he does not need
+ them)
+ * use hgmerge if HGMERGE is not set (patch submitted upstream)
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Wed, 1 Jun 2005 11:35:20 +0200
+
+mercurial (0.5b-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Tue, 31 May 2005 00:00:29 +0200
+
+mercurial (0.5-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Sun, 29 May 2005 21:36:55 +0200
+
+mercurial (0.4f-1) unstable; urgency=low
+
+ * New upstream release
+ * english improved in description (thanks Jay Berkenbilt <qjb@debian.org>)
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Sat, 14 May 2005 00:55:40 +0200
+
+mercurial (0.4e-3) unstable; urgency=low
+
+ * package description improved (thanks Bas Zoetekouw <bas@debian.org>)
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Fri, 13 May 2005 13:46:44 +0200
+
+mercurial (0.4e-2) unstable; urgency=low
+
+ * update description
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Thu, 12 May 2005 23:32:43 +0200
+
+mercurial (0.4e-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Thu, 12 May 2005 23:13:54 +0200
+
+mercurial (0.4b-2) unstable; urgency=low
+
+ * add debian watch file
+ * add depend on tkdiff
+ * correct some lintian warnings
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Fri, 29 Apr 2005 12:59:33 +0200
+
+mercurial (0.4b-1) unstable; urgency=low
+
+ * Initial Release.
+
+ -- Vincent Danjean <Vincent.Danjean@ens-lyon.org> Fri, 29 Apr 2005 08:54:25 +0200
--- /dev/null
+Source: mercurial
+Section: vcs
+Priority: optional
+Maintainer: Debian Python Team <team+python@tracker.debian.org>
+Uploaders:
+ Tristan Seligmann <mithrandi@debian.org>,
+ Julien Cristau <jcristau@debian.org>,
+Build-Depends:
+ bash-completion,
+ debhelper-compat (= 13),
+ dh-python,
+ gettext,
+ netbase <!nocheck>,
+ patchutils (>= 0.2.25) <!nocheck>,
+ python3-all-dev,
+ python3-docutils,
+ python3-roman,
+ python3-packaging <!nocheck>,
+ rename <!nocheck>,
+ unzip <!nocheck>,
+ zip <!nocheck>,
+ less <!nocheck>,
+Standards-Version: 4.5.0
+Homepage: https://www.mercurial-scm.org/
+Vcs-Git: https://salsa.debian.org/python-team/packages/mercurial.git
+Vcs-Browser: https://salsa.debian.org/python-team/packages/mercurial
+Rules-Requires-Root: no
+
+Package: mercurial-common
+Architecture: all
+Depends: ${misc:Depends}, ${python3:Depends}
+Recommends: ca-certificates, mercurial (>= ${source:Version}), sensible-utils
+Suggests: python3-mysqldb, python3-openssl, python3-pygments, wish
+Breaks: mercurial (<< ${source:Version})
+Replaces: mercurial (<< 2.6.3)
+Description: easy-to-use, scalable distributed version control system (common files)
+ Mercurial is a fast, lightweight Source Control Management system designed
+ for efficient handling of very large distributed projects.
+ .
+ This package contains the architecture independent components of Mercurial,
+ and is generally useless without the mercurial package.
+
+Package: mercurial
+Architecture: any
+Depends:
+ mercurial-common (= ${source:Version}),
+ ucf (>= 2.0020),
+ ${misc:Depends},
+ ${python3:Depends},
+ ${shlibs:Depends},
+Recommends: openssh-client
+Suggests: kdiff3 | kdiff3-qt | kompare | meld | tkcvs | mgdiff, qct
+Breaks:
+ hgsubversion (<= 1.9.3+git20190419+6a6ce-3),
+ hgview-common,
+ mercurial-crecord (<< 0.20151121-2~),
+ mercurial-git (<= 0.8.12-1.2),
+ qct,
+ mercurial-keyring (<= 1.3.0-1),
+ mercurial-server,
+ python-sphinx-patchqueue,
+ trac-mercurial,
+Provides: python3-mercurial
+Description: easy-to-use, scalable distributed version control system
+ Mercurial is a fast, lightweight Source Control Management system designed
+ for efficient handling of very large distributed projects.
+ .
+ Its features include:
+ * O(1) delta-compressed file storage and retrieval scheme
+ * Complete cross-indexing of files and changesets for efficient exploration
+ of project history
+ * Robust SHA1-based integrity checking and append-only storage model
+ * Decentralized development model with arbitrary merging between trees
+ * High-speed HTTP-based network merge protocol
+ * Easy-to-use command-line interface
+ * Integrated stand-alone web interface
+ * Small Python codebase
+ .
+ This package contains the architecture dependent files.
--- /dev/null
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: mercurial
+Source: http://www.selenic.com/mercurial/
+
+Files: *
+Copyright: 2005-2021, Olivia Mackall and many others.
+License: GPL-2+
+
+Files: contrib/python-zstandard/*
+Copyright: (c) 2016, Gregory Szorc
+License:
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+ .
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ .
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ .
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Files: mercurial/thirdparty/selectors2.py
+Copyright: (c) 2017 Seth Michael Larson
+License:
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+ .
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+
+Files: mercurial/thirdparty/attr/*
+Copyright: (c) 2015 Hynek Schlawack
+License:
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+ .
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+
+Files: mercurial/thirdparty/cbor/*
+Copyright: (c) Alex Grönholm
+License:
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this
+ software and associated documentation files (the "Software"), to deal in the Software
+ without restriction, including without limitation the rights to use, copy, modify, merge,
+ publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
+ to whom the Software is furnished to do so, subject to the following conditions:
+ .
+ The above copyright notice and this permission notice shall be included in all copies or
+ substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+ INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
+ FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ DEALINGS IN THE SOFTWARE.
+
+Files: mercurial/thirdparty/concurrent/*
+Copyright: 2009 Brian Quinlan
+License:
+ PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
+ --------------------------------------------
+ .
+ 1. This LICENSE AGREEMENT is between the Python Software Foundation
+ ("PSF"), and the Individual or Organization ("Licensee") accessing and
+ otherwise using this software ("Python") in source or binary form and
+ its associated documentation.
+ .
+ 2. Subject to the terms and conditions of this License Agreement, PSF
+ hereby grants Licensee a nonexclusive, royalty-free, world-wide
+ license to reproduce, analyze, test, perform and/or display publicly,
+ prepare derivative works, distribute, and otherwise use Python
+ alone or in any derivative version, provided, however, that PSF's
+ License Agreement and PSF's notice of copyright, i.e., "Copyright (c)
+ 2001, 2002, 2003, 2004, 2005, 2006 Python Software Foundation; All Rights
+ Reserved" are retained in Python alone or in any derivative version
+ prepared by Licensee.
+ .
+ 3. In the event Licensee prepares a derivative work that is based on
+ or incorporates Python or any part thereof, and wants to make
+ the derivative work available to others as provided herein, then
+ Licensee hereby agrees to include in any such work a brief summary of
+ the changes made to Python.
+ .
+ 4. PSF is making Python available to Licensee on an "AS IS"
+ basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+ IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
+ DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+ FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
+ INFRINGE ANY THIRD PARTY RIGHTS.
+ .
+ 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
+ FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
+ A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
+ OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+ .
+ 6. This License Agreement will automatically terminate upon a material
+ breach of its terms and conditions.
+ .
+ 7. Nothing in this License Agreement shall be deemed to create any
+ relationship of agency, partnership, or joint venture between PSF and
+ Licensee. This License Agreement does not grant permission to use PSF
+ trademarks or trade name in a trademark sense to endorse or promote
+ products or services of Licensee, or any third party.
+ .
+ 8. By copying, installing or otherwise using Python, Licensee
+ agrees to be bound by the terms and conditions of this License
+ Agreement.
+
+Files: mercurial/thirdparty/xdiff/*
+Copyright: (C) 2003 Davide Libenzi
+License: LGPL-2.1+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+ .
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+ .
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, see
+ <http://www.gnu.org/licenses/>.
+ .
+ On Debian systems, the full text of the GNU Lesser General Public
+ License version 2.1 can be found in the file
+ `/usr/share/common-licenses/LGPL-2.1'.
+
+Files: mercurial/thirdparty/zope/*
+Copyright: 2001-2006 Zope Foundation and Contributors.
+License:
+ Zope Public License (ZPL) Version 2.1
+ .
+ A copyright notice accompanies this license document that identifies the
+ copyright holders.
+ .
+ This license has been certified as open source. It has also been designated as
+ GPL compatible by the Free Software Foundation (FSF).
+ .
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ .
+ 1. Redistributions in source code must retain the accompanying copyright
+ notice, this list of conditions, and the following disclaimer.
+ .
+ 2. Redistributions in binary form must reproduce the accompanying copyright
+ notice, this list of conditions, and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ .
+ 3. Names of the copyright holders must not be used to endorse or promote
+ products derived from this software without prior written permission from the
+ copyright holders.
+ .
+ 4. The right to distribute this software or to use it for any purpose does not
+ give you the right to use Servicemarks (sm) or Trademarks (tm) of the
+ copyright
+ holders. Use of them is covered by separate agreement with the copyright
+ holders.
+ .
+ 5. If any files are modified, you must cause the modified files to carry
+ prominent notices stating that you changed the files and the date of any
+ change.
+ .
+ Disclaimer
+ .
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+ EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Files: contrib/zsh_completion
+Copyright: 2005, 2006 Steve Borho <steve@borho.org>
+ 2006-10 Brendan Cully <brendan@kublai.com>
+License:
+ Permission is hereby granted, without written agreement and without
+ licence or royalty fees, to use, copy, modify, and distribute this
+ software and to distribute modified versions of this software for any
+ purpose, provided that the above copyright notice and the following
+ two paragraphs appear in all copies of this software.
+ .
+ In no event shall the authors be liable to any party for direct,
+ indirect, special, incidental, or consequential damages arising out of
+ the use of this software and its documentation, even if the authors
+ have been advised of the possibility of such damage.
+ .
+ The authors specifically disclaim any warranties, including, but not
+ limited to, the implied warranties of merchantability and fitness for
+ a particular purpose. The software provided hereunder is on an "as
+ is" basis, and the authors have no obligation to provide maintenance,
+ support, updates, enhancements, or modifications.
+
+
+Files: debian/*
+Copyright: 2005-2010, Vincent Danjean <vdanjean@debian.org>
+ 2011-2015, Javi Merino <vicho@debian.org>
+ 2017 Tristan Seligmann <mithrandi@debian.org>
+License: GPL-2+
+
+License: GPL-2+
+ This program is free software; you can redistribute it
+ and/or modify it under the terms of the GNU General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later
+ version.
+ .
+ This program is distributed in the hope that it will be
+ useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the GNU General Public License for more
+ details.
+ .
+ You should have received a copy of the GNU General Public
+ License along with this package; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ Boston, MA 02110-1301 USA
+ .
+ On Debian systems, the full text of the GNU General Public
+ License version 2 can be found in the file
+ `/usr/share/common-licenses/GPL-2'.
--- /dev/null
+[DEFAULT]
+debian-branch=debian/master
+
+[import-orig]
+pristine-tar = True
--- /dev/null
+# mercurial configuration file for bundled hg extensions
+# See hgrc(5) for more information
+
+# Extensions included in Mercurial listed in alphabetical order
+[extensions]
+
+# changeset access control
+# hgext.acl =
+
+# allow user-defined command aliases
+# hgext.alias =
+
+# provides the 'bookmarks' command
+# hgext.bookmarks =
+
+# bugzilla integration
+# requires python3-mysqldb
+# hgext.bugzilla =
+
+# show the children of the given or working dir revision
+# provides the 'children' command
+# hgext.children =
+
+# graph count of revisions grouped by template
+# provides the 'churn' command
+# hgext.churn =
+
+# add color output to status, qseries, and diff-related commands
+# hgext.color =
+
+# converts a foreign SCM to a Mercurial one
+# provides the 'convert' and 'debugsvnlog' commands
+# requires:
+# - bzr to convert from Bazaar
+# - cvs to convert from CVS
+# - darcs to convert from Darcs
+# - git to convert from Git
+# - tla to convert from GNU Arch
+# - monotone to convert from Monotone
+# - python3-subversion to convert from Subversion
+# hgext.convert =
+
+# external diff program support
+# hgext.extdiff =
+
+# pull and merge remote changes
+# provides the 'fetch' command
+# hgext.fetch =
+
+# GnuPG signing
+# provides the 'sign', 'sigcheck' and 'sigs' commands
+# requires gnupg
+# hgext.gpg =
+
+# show revision graphs in terminal windows
+# provides the 'glog' command
+# hgext.graphlog =
+
+# CIA notification hook
+# hgext.hgcia =
+
+# allows browsing the history of a repository in a graphical way
+# provides the 'view' command
+# requires wish
+# hgext.hgk =
+
+# syntax highlighting in hgweb
+# requires python3-pygments
+# hgext.highlight =
+
+# lets you split a merge into pieces
+# provides the 'imerge' command
+# hgext.imerge =
+
+# inotify-based status acceleration for Linux systems
+# provides the 'inserve' command
+# hgext.inotify =
+
+# allows you to change changelog and summary text
+# hgext.interhg =
+
+# CVS/RCS-like keyword expansion
+# hgext.keyword =
+
+# quilt-like patch queues
+# provides the 'q*' commands
+# hgext.mq =
+
+# email notifications
+# hgext.notify =
+
+# display output using a pager
+# hgext.pager =
+
+# make it easy to refer to the parent of a revision
+# hgext.parentrevspec =
+
+# send changes as series of email patches
+# provides the 'email' command
+# hgext.patchbomb =
+
+# removes files not known to mercurial
+# provides the 'purge' command
+# hgext.purge =
+
+# moves sets of revisions to a different ancestor
+# provides the 'rebase' command
+# hgext.rebase =
+
+# interactive change selection during commit
+# provides the 'record' command
+# hgext.record =
+
+# patch transplanting tool
+# provides the 'transplant' command
+# hgext.transplant =
+
+# non-Unicode MBCS filename support
+# hgext.win32mbcs =
+
+# Unix/Mac/DOS line ending conversion utilities
+# hgext.win32text =
+
+# mDNS/DNS-SD (Zeroconf) support for 'hg serve'
+# hgext.zeroconf =
--- /dev/null
+4c808ced6b7ddc2e3c1514703bc238b9 0.9.5-3
+80086669df3007b5b17d7d12efe03775 sarge
--- /dev/null
+# system-wide mercurial configuration file
+# See hgrc(5) for more information
--- /dev/null
+contrib/bash_completion hg
--- /dev/null
+etc/mercurial/hgrc.d
--- /dev/null
+contrib/dumprevlog
+contrib/hgsh
+contrib/hgweb.fcgi
+contrib/hgweb.wsgi
+contrib/mercurial.el
+contrib/perf.py
+contrib/python-hook-examples.py
+contrib/simplemerge
+contrib/tcsh_completion
+contrib/tcsh_completion_build.sh
+contrib/undumprevlog
+contrib/vim
+hgeditor
+hgweb.cgi
--- /dev/null
+contrib/hg-ssh usr/bin
+contrib/hgk usr/share/mercurial/
+contrib/logo-droplets.svg usr/share/mercurial
+contrib/mq.el usr/share/emacs/site-lisp
+debian/cacerts.rc etc/mercurial/hgrc.d/
+debian/hgrc etc/mercurial/
+debian/tmp/usr/lib
+contrib/packaging/debian/default-tools.rc etc/mercurial/hgrc.d/
+debian/tmp/usr/share
--- /dev/null
+rm_conffile /etc/bash_completion.d/mercurial 3.5.1-2~ mercurial-common
+rm_conffile /etc/mercurial/hgrc.d/mergetools.rc 4.7.2-1~ mercurial-common
--- /dev/null
+#!/bin/sh
+
+set -e
+
+#DEBHELPER#
+
+if [ "$1" = configure ]; then
+ if dpkg --compare-versions "$2" lt-nl 4.7.2-1~; then
+ if [ -f "/etc/mercurial/hgrc.d/mergetools.rc.dpkg-bak" ]; then
+ mv /etc/mercurial/hgrc.d/mergetools.rc.dpkg-bak /etc/mercurial/hgrc.d/mergetools.rc
+ fi
+ fi
+fi
--- /dev/null
+usr/share/doc/mercurial
--- /dev/null
+debian/hgext.rc usr/share/mercurial/
+debian/hgext.rc.md5sums usr/share/mercurial/
+debian/tmp/usr/bin
+debian/tmp/usr/lib
+contrib/chg/chg /usr/bin
--- /dev/null
+usr/share/doc/mercurial-common/examples usr/share/doc/mercurial/examples
--- /dev/null
+#!/bin/sh
+# postinst script for mercurial
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <postinst> `abort-remove'
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+case "$1" in
+ configure)
+ for conffile in hgext.rc; do
+ # Tell ucf that the file in /usr/share/mercurial is the latest maintainer
+ # version, and let it handle how to manage the real configuration file in
+ # /etc/mercurial/hgrc.d.
+ ucf --sum-file /usr/share/mercurial/$conffile.md5sums --three-way \
+ /usr/share/mercurial/$conffile /etc/mercurial/hgrc.d/$conffile
+ ucfr mercurial /etc/mercurial/hgrc.d/$conffile
+ done
+
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
--- /dev/null
+#!/bin/sh
+# postrm script for mercurial
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <overwriter>
+# <overwriter-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ purge)
+ for conffile in hgext.rc; do
+ # we mimic dpkg as closely as possible, so we remove configuration
+ # files with dpkg backup extensions too:
+ ### Some of the following is from Tore Anderson:
+ for ext in '~' '%' .bak .dpkg-tmp .dpkg-new .dpkg-old .dpkg-dist .ucf-old .ucf-new .ucf-dist; do
+ rm -f /etc/mercurial/hgrc.d/$conffile$ext
+ done
+ # remove the configuration file itself
+ rm -f /etc/mercurial/hgrc.d/$conffile
+ # and finally clear it out from the ucf database
+ if which ucf >/dev/null; then
+ ucf --purge /etc/mercurial/hgrc.d/$conffile
+ fi
+ if which ucfr >/dev/null; then
+ ucfr --purge mercurial /etc/mercurial/hgrc.d/$conffile
+ fi
+ done
+
+ ;;
+
+ remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
--- /dev/null
+# test-clonebundles.t fails in the reproducible-builds setup due to no
+# name resolution:
+# --- /build/mercurial-3.7.2/tests/test-clonebundles.t
+# +++ /build/mercurial-3.7.2/tests/test-clonebundles.t.err
+# @@ -52,7 +52,7 @@
+# $ echo 'http://does.not.exist/bundle.hg' > server/.hg/clonebundles.manifest
+# $ hg clone http://localhost:$HGPORT 404-url
+# applying clone bundle from http://does.not.exist/bundle.hg
+# - error fetching bundle: (.* not known|getaddrinfo failed) (re)
+# + error fetching bundle: Temporary failure in name resolution
+# abort: error applying bundle
+# (if this error persists, consider contacting the server operator or disable clone bundles via "--config ui.clonebundles=false")
+# [255]
+#
+# ERROR: test-clonebundles.t output changed
+test-clonebundles.t
+
+# upstream don't run this test and it only fails when pyflakes is installed
+test-check-pyflakes.t
+
+# https://bz.mercurial-scm.org/show_bug.cgi?id=6294
+test-debugcommands.t
+
+# These tests are flaky, still need to investigate why:
+test-commandserver.t
+test-largefiles.t
+
+# We don't ship the git extension yet
+test-git-interop.t
+
+# https://bz.mercurial-scm.org/show_bug.cgi?id=6643
+test-http-bad-server.t
+
+# https://bz.mercurial-scm.org/show_bug.cgi?id=3782
+test-convert-cvs-synthetic.t
+
+# https://bz.mercurial-scm.org/show_bug.cgi?id=6783
+test-remotefilelog-gc.t
--- /dev/null
+From: Tristan Seligmann <mithrandi@debian.org>
+Date: Mon, 17 Aug 2020 10:30:26 +0200
+Subject: Tolerate SIGINT getting the kill in test-stdio.py.
+
+Forwarded: https://bz.mercurial-scm.org/show_bug.cgi?id=6402
+---
+ tests/test-stdio.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/tests/test-stdio.py
++++ b/tests/test-stdio.py
+@@ -175,7 +175,7 @@ class TestStdio(unittest.TestCase):
+ raise
+ finally:
+ retcode = proc.wait()
+- self.assertEqual(retcode, 0)
++ self.assertIn(retcode, [0, -2])
+ if post_child_check is not None:
+ post_child_check()
+
--- /dev/null
+# HG changeset patch
+# User Raphaël Gomès <rgomes@octobus.net>
+# Date 1742340720 -3600
+# Wed Mar 19 00:32:00 2025 +0100
+# Branch stable
+# Node ID a5c72ed2929341d97b11968211c880854803f003
+# Parent 74439d1cbebaa9ff8f8300e37e93b42e6d381be4
+hgweb: fix XSS vulnerability in hgweb (CVE-2025-2361)
+
+818598f5bc8b91 is the change that introduced the vulnerability (in 2006!)
+that was disclosed to us, but I found a similar pattern in other places
+in the code.
+
+Since XSS escaping is actually hard and that would mean vendoring some
+better sanitation tool, I decided to simply remove user input from any
+HTML output in hgweb, hopefully in all places.
+
+---
+ mercurial/hgweb/hgweb_mod.py | 5 ++-
+ mercurial/hgweb/webcommands.py | 21 ++++++++++-----
+ tests/test-archive.t | 54 ++++++++++++++++++++--------------------
+ tests/test-hgweb.t | 10 +++----
+ tests/test-lfs-serve-access.t | 4 +-
+ tests/test-remotefilelog-http.t | 4 +-
+ 6 files changed, 54 insertions(+), 44 deletions(-)
+
+--- a/mercurial/hgweb/hgweb_mod.py
++++ b/mercurial/hgweb/hgweb_mod.py
+@@ -455,7 +455,10 @@ class hgweb:
+ res.headers[b'ETag'] = tag
+
+ if cmd not in webcommands.__all__:
+- msg = b'no such method: %s' % cmd
++ msg = b'method not found'
++ # /!\ Do not print `cmd` here unless you do *extensive*
++ # escaping.
++ # Because XSS escaping is hard, we just don't risk it.
+ raise ErrorResponse(HTTP_BAD_REQUEST, msg)
+ else:
+ # Set some globals appropriate for web handlers. Commands can
+--- a/mercurial/hgweb/webcommands.py
++++ b/mercurial/hgweb/webcommands.py
+@@ -585,7 +585,9 @@ def manifest(web):
+ h[None] = None # denotes files present
+
+ if mf and not files and not dirs:
+- raise ErrorResponse(HTTP_NOT_FOUND, b'path not found: ' + path)
++ # /!\ Do not print `path` here unless you do *extensive* escaping.
++ # Because XSS escaping is hard, we just don't risk it.
++ raise ErrorResponse(HTTP_NOT_FOUND, b'path not found')
+
+ def filelist(context):
+ for f in sorted(files):
+@@ -1255,11 +1257,15 @@ def archive(web):
+ key = web.req.qsparams[b'node']
+
+ if type_ not in webutil.archivespecs:
+- msg = b'Unsupported archive type: %s' % stringutil.pprint(type_)
++ # /!\ Do not print `type_` here unless you do *extensive* escaping.
++ # Because XSS escaping is hard, we just don't risk it.
++ msg = b'Unsupported archive type'
+ raise ErrorResponse(HTTP_NOT_FOUND, msg)
+
+- if not ((type_ in allowed or web.configbool(b"web", b"allow" + type_))):
+- msg = b'Archive type not allowed: %s' % type_
++ if not (type_ in allowed or web.configbool(b"web", b"allow" + type_)):
++ # /!\ Do not print `type_` here unless you do *extensive* escaping.
++ # Because XSS escaping is hard, we just don't risk it.
++ msg = b'Archive type not allowed'
+ raise ErrorResponse(HTTP_FORBIDDEN, msg)
+
+ reponame = re.sub(br"\W+", b"-", os.path.basename(web.reponame))
+@@ -1278,9 +1284,10 @@ def archive(web):
+ if pats:
+ files = [f for f in ctx.manifest().keys() if match(f)]
+ if not files:
+- raise ErrorResponse(
+- HTTP_NOT_FOUND, b'file(s) not found: %s' % file
+- )
++ # /!\ Do not print `files` here unless you do *extensive*
++ # escaping.
++ # Because XSS escaping is hard, we just don't risk it.
++ raise ErrorResponse(HTTP_NOT_FOUND, b'file(s) not found')
+
+ mimetype, artype, extension, encoding = webutil.archivespecs[type_]
+
+--- a/tests/test-archive.t
++++ b/tests/test-archive.t
+@@ -135,22 +135,22 @@ check http return codes
+ body: size=506, sha1=70926a04cb8887d0bcccf5380488100a10222def (py38 no-py39 !)
+ body: size=505, sha1=eb823c293bedff0df4070b854e2c5cbb06d6ec62 (py39 !)
+ % tar.bz2 and zip disallowed should both give 403
+- 403 Archive type not allowed: bz2
++ 403 Archive type not allowed
+ content-type: text/html; charset=ascii
+ date: $HTTP_DATE$
+ etag: W/"*" (glob)
+ server: testing stub value
+ transfer-encoding: chunked
+
+- body: size=1451, sha1=4c5cf0f574446c44feb7f88f4e0e2a56bd92c352
+- 403 Archive type not allowed: zip
++ body: size=1446, sha1=023cb60af79cf672217fbae8ecf20ad4b7472c9d
++ 403 Archive type not allowed
+ content-type: text/html; charset=ascii
+ date: $HTTP_DATE$
+ etag: W/"*" (glob)
+ server: testing stub value
+ transfer-encoding: chunked
+
+- body: size=1451, sha1=cbfa5574b337348bfd0564cc534474d002e7d6c7
++ body: size=1446, sha1=023cb60af79cf672217fbae8ecf20ad4b7472c9d
+ $ test_archtype bz2 tar.bz2 zip tar.gz
+ % bz2 allowed should give 200
+ 200 Script output follows
+@@ -165,22 +165,22 @@ check http return codes
+ body: size=506, sha1=1bd1f8e8d3701704bd4385038bd9c09b81c77f4e (py38 no-py39 !)
+ body: size=503, sha1=2d8ce8bb3816603b9683a1804a5a02c11224cb01 (py39 !)
+ % zip and tar.gz disallowed should both give 403
+- 403 Archive type not allowed: zip
++ 403 Archive type not allowed
+ content-type: text/html; charset=ascii
+ date: $HTTP_DATE$
+ etag: W/"*" (glob)
+ server: testing stub value
+ transfer-encoding: chunked
+
+- body: size=1451, sha1=cbfa5574b337348bfd0564cc534474d002e7d6c7
+- 403 Archive type not allowed: gz
++ body: size=1446, sha1=023cb60af79cf672217fbae8ecf20ad4b7472c9d
++ 403 Archive type not allowed
+ content-type: text/html; charset=ascii
+ date: $HTTP_DATE$
+ etag: W/"*" (glob)
+ server: testing stub value
+ transfer-encoding: chunked
+
+- body: size=1450, sha1=71f0b12d59f85fdcfe8ff493e2dc66863f2f7734
++ body: size=1446, sha1=023cb60af79cf672217fbae8ecf20ad4b7472c9d
+ $ test_archtype zip zip tar.gz tar.bz2
+ % zip allowed should give 200
+ 200 Script output follows
+@@ -193,22 +193,22 @@ check http return codes
+
+ body: size=(1377|1461|1489), sha1=(677b14d3d048778d5eb5552c14a67e6192068650|be6d3983aa13dfe930361b2569291cdedd02b537|1897e496871aa89ad685a92b936f5fa0d008b9e8) (re)
+ % tar.gz and tar.bz2 disallowed should both give 403
+- 403 Archive type not allowed: gz
++ 403 Archive type not allowed
+ content-type: text/html; charset=ascii
+ date: $HTTP_DATE$
+ etag: W/"*" (glob)
+ server: testing stub value
+ transfer-encoding: chunked
+
+- body: size=1450, sha1=71f0b12d59f85fdcfe8ff493e2dc66863f2f7734
+- 403 Archive type not allowed: bz2
++ body: size=1446, sha1=023cb60af79cf672217fbae8ecf20ad4b7472c9d
++ 403 Archive type not allowed
+ content-type: text/html; charset=ascii
+ date: $HTTP_DATE$
+ etag: W/"*" (glob)
+ server: testing stub value
+ transfer-encoding: chunked
+
+- body: size=1451, sha1=4c5cf0f574446c44feb7f88f4e0e2a56bd92c352
++ body: size=1446, sha1=023cb60af79cf672217fbae8ecf20ad4b7472c9d
+
+ check http return codes (with deprecated option)
+
+@@ -226,22 +226,22 @@ check http return codes (with deprecated
+ body: size=506, sha1=70926a04cb8887d0bcccf5380488100a10222def (py38 no-py39 !)
+ body: size=505, sha1=eb823c293bedff0df4070b854e2c5cbb06d6ec62 (py39 !)
+ % tar.bz2 and zip disallowed should both give 403
+- 403 Archive type not allowed: bz2
++ 403 Archive type not allowed
+ content-type: text/html; charset=ascii
+ date: $HTTP_DATE$
+ etag: W/"*" (glob)
+ server: testing stub value
+ transfer-encoding: chunked
+
+- body: size=1451, sha1=4c5cf0f574446c44feb7f88f4e0e2a56bd92c352
+- 403 Archive type not allowed: zip
++ body: size=1446, sha1=023cb60af79cf672217fbae8ecf20ad4b7472c9d
++ 403 Archive type not allowed
+ content-type: text/html; charset=ascii
+ date: $HTTP_DATE$
+ etag: W/"*" (glob)
+ server: testing stub value
+ transfer-encoding: chunked
+
+- body: size=1451, sha1=cbfa5574b337348bfd0564cc534474d002e7d6c7
++ body: size=1446, sha1=023cb60af79cf672217fbae8ecf20ad4b7472c9d
+ $ test_archtype_deprecated bz2 tar.bz2 zip tar.gz
+ % bz2 allowed should give 200
+ 200 Script output follows
+@@ -256,22 +256,22 @@ check http return codes (with deprecated
+ body: size=506, sha1=1bd1f8e8d3701704bd4385038bd9c09b81c77f4e (py38 no-py39 !)
+ body: size=503, sha1=2d8ce8bb3816603b9683a1804a5a02c11224cb01 (py39 !)
+ % zip and tar.gz disallowed should both give 403
+- 403 Archive type not allowed: zip
++ 403 Archive type not allowed
+ content-type: text/html; charset=ascii
+ date: $HTTP_DATE$
+ etag: W/"*" (glob)
+ server: testing stub value
+ transfer-encoding: chunked
+
+- body: size=1451, sha1=cbfa5574b337348bfd0564cc534474d002e7d6c7
+- 403 Archive type not allowed: gz
++ body: size=1446, sha1=023cb60af79cf672217fbae8ecf20ad4b7472c9d
++ 403 Archive type not allowed
+ content-type: text/html; charset=ascii
+ date: $HTTP_DATE$
+ etag: W/"*" (glob)
+ server: testing stub value
+ transfer-encoding: chunked
+
+- body: size=1450, sha1=71f0b12d59f85fdcfe8ff493e2dc66863f2f7734
++ body: size=1446, sha1=023cb60af79cf672217fbae8ecf20ad4b7472c9d
+ $ test_archtype_deprecated zip zip tar.gz tar.bz2
+ % zip allowed should give 200
+ 200 Script output follows
+@@ -284,22 +284,22 @@ check http return codes (with deprecated
+
+ body: size=(1377|1461|1489), sha1=(677b14d3d048778d5eb5552c14a67e6192068650|be6d3983aa13dfe930361b2569291cdedd02b537|1897e496871aa89ad685a92b936f5fa0d008b9e8) (re)
+ % tar.gz and tar.bz2 disallowed should both give 403
+- 403 Archive type not allowed: gz
++ 403 Archive type not allowed
+ content-type: text/html; charset=ascii
+ date: $HTTP_DATE$
+ etag: W/"*" (glob)
+ server: testing stub value
+ transfer-encoding: chunked
+
+- body: size=1450, sha1=71f0b12d59f85fdcfe8ff493e2dc66863f2f7734
+- 403 Archive type not allowed: bz2
++ body: size=1446, sha1=023cb60af79cf672217fbae8ecf20ad4b7472c9d
++ 403 Archive type not allowed
+ content-type: text/html; charset=ascii
+ date: $HTTP_DATE$
+ etag: W/"*" (glob)
+ server: testing stub value
+ transfer-encoding: chunked
+
+- body: size=1451, sha1=4c5cf0f574446c44feb7f88f4e0e2a56bd92c352
++ body: size=1446, sha1=023cb60af79cf672217fbae8ecf20ad4b7472c9d
+
+ $ echo "allow-archive = gz bz2 zip" >> .hg/hgrc
+ $ hg serve -p $HGPORT -d --pid-file=hg.pid -E errors.log
+@@ -315,7 +315,7 @@ check archive links' order
+ invalid arch type should give 404
+
+ $ get-with-headers.py localhost:$HGPORT "archive/tip.invalid" | head -n 1
+- 404 Unsupported archive type: None
++ 404 Unsupported archive type
+
+ $ TIP=`hg id -v | cut -f1 -d' '`
+ $ QTIP=`hg id -q`
+@@ -386,12 +386,12 @@ test that we can download single directo
+ test that we detect file patterns that match no files
+
+ $ "$PYTHON" getarchive.py "$TIP" gz foobar
+- HTTP Error 404: file(s) not found: foobar
++ HTTP Error 404: file(s) not found
+
+ test that we reject unsafe patterns
+
+ $ "$PYTHON" getarchive.py "$TIP" gz relre:baz
+- HTTP Error 404: file(s) not found: relre:baz
++ HTTP Error 404: file(s) not found
+
+ $ killdaemons.py
+
+--- a/tests/test-hgweb.t
++++ b/tests/test-hgweb.t
+@@ -122,25 +122,25 @@ should give a 400 - bad command
+ 400* (glob)
+
+
+- error: no such method: spam
++ error: method not found
+ [1]
+
+ $ get-with-headers.py --headeronly localhost:$HGPORT '?cmd=spam'
+- 400 no such method: spam
++ 400 method not found
+ [1]
+
+ should give a 400 - bad command as a part of url path (issue4071)
+
+ $ get-with-headers.py --headeronly localhost:$HGPORT 'spam'
+- 400 no such method: spam
++ 400 method not found
+ [1]
+
+ $ get-with-headers.py --headeronly localhost:$HGPORT 'raw-spam'
+- 400 no such method: spam
++ 400 method not found
+ [1]
+
+ $ get-with-headers.py --headeronly localhost:$HGPORT 'spam/tip/foo'
+- 400 no such method: spam
++ 400 method not found
+ [1]
+
+ should give a 404 - file does not exist
+--- a/tests/test-lfs-serve-access.t
++++ b/tests/test-lfs-serve-access.t
+@@ -30,7 +30,7 @@ Uploads fail...
+ $ hg -R client push http://localhost:$HGPORT
+ pushing to http://localhost:$HGPORT/
+ searching for changes
+- abort: LFS HTTP error: HTTP Error 400: no such method: .git
++ abort: LFS HTTP error: HTTP Error 400: method not found
+ (check that lfs serving is enabled on http://localhost:$HGPORT/.git/info/lfs and "upload" is supported)
+ [50]
+
+@@ -52,7 +52,7 @@ Downloads fail...
+ added 1 changesets with 1 changes to 1 files
+ new changesets 525251863cad
+ updating to branch default
+- abort: LFS HTTP error: HTTP Error 400: no such method: .git
++ abort: LFS HTTP error: HTTP Error 400: method not found
+ (check that lfs serving is enabled on http://localhost:$HGPORT/.git/info/lfs and "download" is supported)
+ [50]
+
+--- a/tests/test-remotefilelog-http.t
++++ b/tests/test-remotefilelog-http.t
+@@ -44,9 +44,9 @@ as the getfile method it offers doesn't
+ x_rfl_getflogheads
+
+ $ get-with-headers.py localhost:$HGPORT '?cmd=this-command-does-not-exist' | head -n 1
+- 400 no such method: this-command-does-not-exist
++ 400 method not found
+ $ get-with-headers.py localhost:$HGPORT '?cmd=x_rfl_getfiles' | head -n 1
+- 400 no such method: x_rfl_getfiles
++ 400 method not found
+
+ Verify serving from a shallow clone doesn't allow for remotefile
+ fetches. This also serves to test the error handling for our batchable
--- /dev/null
+https://bz.mercurial-scm.org/show_bug.cgi?id=6784
+
+diff --git a/tests/test-clone-cgi.t b/tests/test-clone-cgi.t
+--- a/tests/test-clone-cgi.t
++++ b/tests/test-clone-cgi.t
+@@ -7,31 +7,29 @@ initialize repository
+ $ cd test
+ $ echo a > a
+ $ hg ci -Ama
+ adding a
+ $ cd ..
+ $ cat >hgweb.cgi <<HGWEB
+ > #
+ > # An example CGI script to use hgweb, edit as necessary
+- > import cgitb
+- > cgitb.enable()
+ > from mercurial import demandimport; demandimport.enable()
+ > from mercurial.hgweb import hgweb
+ > from mercurial.hgweb import wsgicgi
+ > application = hgweb(b"test", b"Empty test repository")
+ > wsgicgi.launch(application)
+ > HGWEB
+ $ chmod 755 hgweb.cgi
+
+ try hgweb request
+
+ $ . "$TESTDIR/cgienv"
+ $ QUERY_STRING="cmd=changegroup&roots=0000000000000000000000000000000000000000"; export QUERY_STRING
+- $ "$PYTHON" hgweb.cgi >page1 2>&1
++ $ "$PYTHON" hgweb.cgi >page1
+ $ "$PYTHON" "$TESTDIR/md5sum.py" page1
+ 1f424bb22ec05c3c6bc866b6e67efe43 page1
+
+ make sure headers are sent even when there is no body
+
+ $ QUERY_STRING="cmd=listkeys&namespace=nosuchnamespace" "$PYTHON" hgweb.cgi
+ Status: 200 Script output follows\r (esc)
+ Content-Type: application/mercurial-0.1\r (esc)
+diff --git a/tests/test-newcgi.t b/tests/test-newcgi.t
+--- a/tests/test-newcgi.t
++++ b/tests/test-newcgi.t
+@@ -4,19 +4,16 @@ This tests if CGI files from after d0db3
+ before d74fc8dec2b4 still work.
+
+ $ hg init test
+ $ cat >hgweb.cgi <<HGWEB
+ > #!$PYTHON
+ > #
+ > # An example CGI script to use hgweb, edit as necessary
+ >
+- > import cgitb
+- > cgitb.enable()
+- >
+ > from mercurial import demandimport; demandimport.enable()
+ > from mercurial.hgweb import hgweb
+ > from mercurial.hgweb import wsgicgi
+ > from mercurial.hgweb.request import wsgiapplication
+ >
+ > def make_web_app():
+ > return hgweb(b"test", b"Empty test repository")
+ >
+@@ -30,19 +27,16 @@ before d74fc8dec2b4 still work.
+ > test = test
+ > HGWEBDIRCONF
+
+ $ cat >hgwebdir.cgi <<HGWEBDIR
+ > #!$PYTHON
+ > #
+ > # An example CGI script to export multiple hgweb repos, edit as necessary
+ >
+- > import cgitb
+- > cgitb.enable()
+- >
+ > from mercurial import demandimport; demandimport.enable()
+ > from mercurial.hgweb import hgwebdir
+ > from mercurial.hgweb import wsgicgi
+ > from mercurial.hgweb.request import wsgiapplication
+ >
+ > def make_web_app():
+ > return hgwebdir(b"hgweb.config")
+ >
+diff --git a/tests/test-newercgi.t b/tests/test-newercgi.t
+--- a/tests/test-newercgi.t
++++ b/tests/test-newercgi.t
+@@ -4,19 +4,16 @@ This is a rudimentary test of the CGI fi
+
+ $ hg init test
+
+ $ cat >hgweb.cgi <<HGWEB
+ > #!$PYTHON
+ > #
+ > # An example CGI script to use hgweb, edit as necessary
+ >
+- > import cgitb
+- > cgitb.enable()
+- >
+ > from mercurial import demandimport; demandimport.enable()
+ > from mercurial.hgweb import hgweb
+ > from mercurial.hgweb import wsgicgi
+ >
+ > application = hgweb(b"test", b"Empty test repository")
+ > wsgicgi.launch(application)
+ > HGWEB
+
+@@ -27,19 +24,16 @@ This is a rudimentary test of the CGI fi
+ > test = test
+ > HGWEBDIRCONF
+
+ $ cat >hgwebdir.cgi <<HGWEBDIR
+ > #!$PYTHON
+ > #
+ > # An example CGI script to export multiple hgweb repos, edit as necessary
+ >
+- > import cgitb
+- > cgitb.enable()
+- >
+ > from mercurial import demandimport; demandimport.enable()
+ > from mercurial.hgweb import hgwebdir
+ > from mercurial.hgweb import wsgicgi
+ >
+ > application = hgwebdir(b"hgweb.config")
+ > wsgicgi.launch(application)
+ > HGWEBDIR
+
+diff --git a/tests/test-oldcgi.t b/tests/test-oldcgi.t
+--- a/tests/test-oldcgi.t
++++ b/tests/test-oldcgi.t
+@@ -3,19 +3,16 @@
+ This tests if CGI files from before d0db3462d568 still work.
+
+ $ hg init test
+ $ cat >hgweb.cgi <<HGWEB
+ > #!"$PYTHON"
+ > #
+ > # An example CGI script to use hgweb, edit as necessary
+ >
+- > import cgitb, os, sys
+- > cgitb.enable()
+- >
+ > # sys.path.insert(0, "/path/to/python/lib") # if not a system-wide install
+ > from mercurial import hgweb
+ >
+ > h = hgweb.hgweb(b"test", b"Empty test repository")
+ > h.run()
+ > HGWEB
+
+ $ chmod 755 hgweb.cgi
+@@ -25,19 +22,16 @@ This tests if CGI files from before d0db
+ > test = test
+ > HGWEBDIRCONF
+
+ $ cat >hgwebdir.cgi <<HGWEBDIR
+ > #!"$PYTHON"
+ > #
+ > # An example CGI script to export multiple hgweb repos, edit as necessary
+ >
+- > import cgitb, sys
+- > cgitb.enable()
+- >
+ > # sys.path.insert(0, "/path/to/python/lib") # if not a system-wide install
+ > from mercurial import hgweb
+ >
+ > # The config file looks like this. You can have paths to individual
+ > # repos, collections of repos in a directory tree, or both.
+ > #
+ > # [paths]
+ > # virtual/path = /real/path
+diff --git a/tests/test-push-cgi.t b/tests/test-push-cgi.t
+--- a/tests/test-push-cgi.t
++++ b/tests/test-push-cgi.t
+@@ -11,18 +11,16 @@ initialize repository
+ adding a
+ $ echo '[web]' > .hg/hgrc
+ $ echo 'allow_push = *' >> .hg/hgrc
+ $ echo 'push_ssl = false' >> .hg/hgrc
+
+ create hgweb invocation script
+
+ $ cat >hgweb.cgi <<HGWEB
+- > import cgitb
+- > cgitb.enable()
+ > from mercurial import demandimport; demandimport.enable()
+ > from mercurial.hgweb import hgweb
+ > from mercurial.hgweb import wsgicgi
+ > application = hgweb(b'.', b'test repository')
+ > wsgicgi.launch(application)
+ > HGWEB
+ $ chmod 755 hgweb.cgi
+
--- /dev/null
+From: Stefano Rivera <stefanor@debian.org>
+Date: Sun, 16 Aug 2020 11:03:07 +0200
+Subject: Disabled hginstallscripts @LIBDIR@ replacement in setup.py.
+
+Bug-Debian: http://bugs.debian.org/620087
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/745250
+Forwarded: not-needed
+
+setup.py replaces @LIBDIR@ in the hg script, with a path that differs between
+Python versions.
+libdir in hg doesn't need to be set if mercurial is available in the public
+namespace, as it is in Debian.
+hg doesn't alter sys.paths if this replacement hasn't happened.
+---
+ setup.py | 1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/setup.py
++++ b/setup.py
+@@ -1239,7 +1239,6 @@ cmdclass = {
+ 'install': hginstall,
+ 'install_completion': hginstallcompletion,
+ 'install_lib': hginstalllib,
+- 'install_scripts': hginstallscripts,
+ 'build_hgexe': buildhgexe,
+ }
+
--- /dev/null
+From: Python Applications Packaging Team
+ <python-apps-team@lists.alioth.debian.org>
+Date: Sun, 16 Aug 2020 11:03:07 +0200
+Subject: deb_specific__hgk.py
+
+Set default hgk path for hgk outside bin.
+---
+ hgext/hgk.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/hgext/hgk.py
++++ b/hgext/hgk.py
+@@ -65,7 +65,7 @@ configitem = registrar.configitem(config
+ configitem(
+ b'hgk',
+ b'path',
+- default=b'hgk',
++ default=b'/usr/share/mercurial/hgk',
+ )
+
+
--- /dev/null
+From: Python Applications Packaging Team
+ <python-apps-team@lists.alioth.debian.org>
+Date: Sun, 16 Aug 2020 11:03:07 +0200
+Subject: deb_specific__optional-dependencies
+
+Suggest Debian packages for some optional dependencies.
+---
+ hgext/bugzilla.py | 3 ++-
+ hgext/convert/bzr.py | 3 ++-
+ hgext/convert/common.py | 5 +++--
+ hgext/convert/cvs.py | 2 +-
+ hgext/convert/darcs.py | 2 +-
+ hgext/convert/git.py | 2 +-
+ hgext/convert/gnuarch.py | 3 ++-
+ hgext/convert/monotone.py | 2 +-
+ hgext/convert/subversion.py | 11 ++++++++---
+ mercurial/sslutil.py | 3 ++-
+ tests/test-https.t | 2 +-
+ 11 files changed, 24 insertions(+), 14 deletions(-)
+
+--- a/hgext/bugzilla.py
++++ b/hgext/bugzilla.py
+@@ -503,7 +503,8 @@ class bzmysql(bzaccess):
+ bzmysql._MySQLdb = mysql
+ except ImportError as err:
+ raise error.Abort(
+- _(b'python mysql support not available: %s') % err
++ _(b'python mysql support not available: %s') % err +
++ _(b' (try installing the %s package)') % b'python3-mysqldb'
+ )
+
+ bzaccess.__init__(self, ui)
+--- a/hgext/convert/bzr.py
++++ b/hgext/convert/bzr.py
+@@ -62,7 +62,8 @@ class bzr_source(common.converter_source
+ # access breezy stuff
+ bzrdir
+ except NameError:
+- raise common.NoRepo(_(b'Bazaar modules could not be loaded'))
++ raise common.NoRepo(_(b'Bazaar modules could not be loaded') +
++ _(b' (try installing the %s package)') % b'bzr')
+
+ path = util.abspath(path)
+ self._checkrepotype(path)
+--- a/hgext/convert/common.py
++++ b/hgext/convert/common.py
+@@ -89,14 +89,15 @@ class MissingTool(Exception):
+ pass
+
+
+-def checktool(exe, name=None, abort=True):
++def checktool(exe, name=None, abort=True, debname=None):
+ name = name or exe
+ if not procutil.findexe(exe):
+ if abort:
+ exc = error.Abort
+ else:
+ exc = MissingTool
+- raise exc(_(b'cannot find required "%s" tool') % name)
++ raise exc(_(b'cannot find required "%s" tool') % name +
++ (debname and _(b' (try installing the %s package)') % debname or b''))
+
+
+ class NoRepo(Exception):
+--- a/hgext/convert/cvs.py
++++ b/hgext/convert/cvs.py
+@@ -46,7 +46,7 @@ class convert_cvs(converter_source):
+ if not os.path.exists(cvs):
+ raise NoRepo(_(b"%s does not look like a CVS checkout") % path)
+
+- checktool(b'cvs')
++ checktool(b'cvs', debname=b'cvs')
+
+ self.changeset = None
+ self.files = {}
+--- a/hgext/convert/darcs.py
++++ b/hgext/convert/darcs.py
+@@ -35,7 +35,7 @@ class darcs_source(common.converter_sour
+ if not os.path.exists(os.path.join(path, b'_darcs')):
+ raise NoRepo(_(b"%s does not look like a darcs repository") % path)
+
+- common.checktool(b'darcs')
++ common.checktool(b'darcs', debname=b'darcs')
+ version = self.run0(b'--version').splitlines()[0].strip()
+ if version < b'2.1':
+ raise error.Abort(
+--- a/hgext/convert/git.py
++++ b/hgext/convert/git.py
+@@ -100,7 +100,7 @@ class convert_git(common.converter_sourc
+ else:
+ self.simopt = []
+
+- common.checktool(b'git', b'git')
++ common.checktool(b'git', b'git', debname=b'git')
+
+ self.path = path
+ self.submodules = []
+--- a/hgext/convert/gnuarch.py
++++ b/hgext/convert/gnuarch.py
+@@ -56,7 +56,8 @@ class gnuarch_source(common.converter_so
+ if procutil.findexe(b'tla'):
+ self.execmd = b'tla'
+ else:
+- raise error.Abort(_(b'cannot find a GNU Arch tool'))
++ raise error.Abort(_(b'cannot find a GNU Arch tool') +
++ _(b' (try installing the %s package)') % b'tla')
+
+ common.commandline.__init__(self, ui, self.execmd)
+
+--- a/hgext/convert/monotone.py
++++ b/hgext/convert/monotone.py
+@@ -86,7 +86,7 @@ class monotone_source(common.converter_s
+ self.files = None
+ self.dirs = None
+
+- common.checktool(b'mtn', abort=False)
++ common.checktool(b'mtn', abort=False, debname=b'monotone')
+
+ def mtnrun(self, *args, **kwargs):
+ if self.automatestdio:
+--- a/hgext/convert/subversion.py
++++ b/hgext/convert/subversion.py
+@@ -474,7 +474,8 @@ class svn_source(converter_source):
+ _(b"%s does not look like a Subversion repository") % url
+ )
+ if svn is None:
+- raise MissingTool(_(b'could not load Subversion python bindings'))
++ raise MissingTool(_(b'could not load Subversion python bindings') +
++ _(b' (try installing the %s package)') % b'python3-subversion')
+
+ try:
+ version = svn.core.SVN_VER_MAJOR, svn.core.SVN_VER_MINOR
+@@ -484,14 +485,16 @@ class svn_source(converter_source):
+ b'Subversion python bindings %d.%d found, '
+ b'1.4 or later required'
+ )
+- % version
++ % version +
++ _(b' (try upgrading the %s package)') % b'python-subversion'
+ )
+ except AttributeError:
+ raise MissingTool(
+ _(
+ b'Subversion python bindings are too old, 1.4 '
+ b'or later required'
+- )
++ ) +
++ _(b' (try upgrading the %s package)') % b'python-subversion'
+ )
+
+ self.lastrevs = {}
+@@ -1416,6 +1419,8 @@ class svn_sink(converter_sink, commandli
+ return self.join(b'hg-authormap')
+
+ def __init__(self, ui, repotype, path):
++ common.checktool(b'svn', debname=b'subversion')
++ common.checktool(b'svnadmin', debname=b'subversion')
+
+ converter_sink.__init__(self, ui, repotype, path)
+ commandline.__init__(self, ui, b'svn')
+--- a/mercurial/sslutil.py
++++ b/mercurial/sslutil.py
+@@ -207,7 +207,8 @@ def _hostsettings(ui, hostname):
+ cafile = util.expandpath(cafile)
+ if not os.path.exists(cafile):
+ raise error.Abort(
+- _(b'could not find web.cacerts: %s') % cafile
++ _(b'could not find web.cacerts: %s') % cafile +
++ _(b' (try installing the %s package)') % b'ca-certificates'
+ )
+ elif s[b'allowloaddefaultcerts']:
+ # CAs not defined in config. Try to find system bundles.
+--- a/tests/test-https.t
++++ b/tests/test-https.t
+@@ -34,7 +34,7 @@ Make server certificates:
+ cacert not found
+
+ $ hg in --config web.cacerts=no-such.pem https://localhost:$HGPORT/
+- abort: could not find web.cacerts: no-such.pem
++ abort: could not find web.cacerts: no-such.pem (try installing the ca-certificates package)
+ [255]
+
+ Test server address cannot be reused
--- /dev/null
+diff --git a/.hgsigs b/.hgsigs
+--- a/.hgsigs
++++ b/.hgsigs
+@@ -232,8 +232,9 @@ 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
+diff --git a/.hgtags b/.hgtags
+--- a/.hgtags
++++ b/.hgtags
+@@ -248,8 +248,9 @@ f69bffd00abe3a1b94d1032eb2c92e611d16a192
+ b5c8524827d20fe2e0ca8fb1234a0fe35a1a36c7 6.2.2
+ dbdee8ac3e3fcdda1fa55b90c0a235125b7f8e6f 6.2.3
+ a3356ab610fc50000cf0ba55c424a4d96da11db7 6.3rc0
+ 04f1dba53c961dfdb875c8469adc96fa999cfbed 6.3.0
+ 04f1dba53c961dfdb875c8469adc96fa999cfbed 6.3
+ 04f1dba53c961dfdb875c8469adc96fa999cfbed 6.3.0
+ 0000000000000000000000000000000000000000 6.3.0
+ c890d8b8bc59b18e5febf60caada629df5356ee2 6.3.1
++59466b13a3ae0e29a5d4f485393e516cfbb057d0 6.3.2
+diff --git a/Makefile b/Makefile
+--- a/Makefile
++++ b/Makefile
+@@ -53,17 +53,17 @@ help:
+ @echo ' make all && su -c "make install" && hg version'
+ @echo
+ @echo 'Example for a local installation (usable in this directory):'
+ @echo ' make local && ./hg version'
+
+ all: build doc
+
+ local:
+- $(PYTHON) setup.py $(PURE) \
++ MERCURIAL_SETUP_MAKE_LOCAL=1 $(PYTHON) setup.py $(PURE) \
+ build_py -c -d . \
+ build_ext $(COMPILERFLAG) -i \
+ build_hgexe $(COMPILERFLAG) -i \
+ build_mo
+ env HGRCPATH= $(PYTHON) hg version
+
+ build:
+ $(PYTHON) setup.py $(PURE) build $(COMPILERFLAG)
+diff --git a/contrib/heptapod-ci.yml b/contrib/heptapod-ci.yml
+--- a/contrib/heptapod-ci.yml
++++ b/contrib/heptapod-ci.yml
+@@ -29,25 +29,27 @@ variables:
+ - echo "$RUNTEST_ARGS"
+ - HGTESTS_ALLOW_NETIO="$TEST_HGTESTS_ALLOW_NETIO" HGMODULEPOLICY="$TEST_HGMODULEPOLICY" "$PYTHON" tests/run-tests.py --color=always $RUNTEST_ARGS
+
+ checks:
+ <<: *runtests
+ variables:
+ RUNTEST_ARGS: "--time --test-list /tmp/check-tests.txt"
+ PYTHON: python3
++ CI_CLEVER_CLOUD_FLAVOR: S
+
+ rust-cargo-test:
+ <<: *all
+ stage: tests
+ script:
+ - echo "python used, $PYTHON"
+ - make rust-tests
+ variables:
+ PYTHON: python3
++ CI_CLEVER_CLOUD_FLAVOR: S
+
+ test-c:
+ <<: *runtests
+ variables:
+ RUNTEST_ARGS: " --no-rust --blacklist /tmp/check-tests.txt"
+ PYTHON: python3
+ TEST_HGMODULEPOLICY: "c"
+ TEST_HGTESTS_ALLOW_NETIO: "1"
+diff --git a/hgext/convert/bzr.py b/hgext/convert/bzr.py
+--- a/hgext/convert/bzr.py
++++ b/hgext/convert/bzr.py
+@@ -36,16 +36,22 @@ try:
+ import breezy.revision
+ import breezy.revisionspec
+
+ bzrdir = breezy.bzr.bzrdir
+ errors = breezy.errors
+ revision = breezy.revision
+ revisionspec = breezy.revisionspec
+ revisionspec.RevisionSpec
++
++ try:
++ # brz 3.3.0 (revno: 7614.2.2)
++ from breezy.transport import NoSuchFile
++ except ImportError:
++ from breezy.errors import NoSuchFile
+ except ImportError:
+ pass
+
+ supportedkinds = ('file', 'symlink')
+
+
+ class bzr_source(common.converter_source):
+ """Reads Bazaar repositories by using the Bazaar Python libraries"""
+@@ -145,17 +151,17 @@ class bzr_source(common.converter_source
+ return heads
+
+ def getfile(self, name, rev):
+ name = name.decode()
+ revtree = self.sourcerepo.revision_tree(rev)
+
+ try:
+ kind = revtree.kind(name)
+- except breezy.errors.NoSuchFile:
++ except NoSuchFile:
+ return None, None
+ if kind not in supportedkinds:
+ # the file is not available anymore - was deleted
+ return None, None
+ mode = self._modecache[(name.encode(), rev)]
+ if kind == 'symlink':
+ target = revtree.get_symlink_target(name)
+ if target is None:
+diff --git a/hgext/convert/cvs.py b/hgext/convert/cvs.py
+--- a/hgext/convert/cvs.py
++++ b/hgext/convert/cvs.py
+@@ -137,17 +137,19 @@ class convert_cvs(converter_source):
+ conntype = None
+ user, host = None, None
+ cmd = [b'cvs', b'server']
+
+ self.ui.status(_(b"connecting to %s\n") % root)
+
+ if root.startswith(b":pserver:"):
+ root = root[9:]
+- m = re.match(r'(?:(.*?)(?::(.*?))?@)?([^:/]*)(?::(\d*))?(.*)', root)
++ m = re.match(
++ br'(?:(.*?)(?::(.*?))?@)?([^:/]*)(?::(\d*))?(.*)', root
++ )
+ if m:
+ conntype = b"pserver"
+ user, passw, serv, port, root = m.groups()
+ if not user:
+ user = b"anonymous"
+ if not port:
+ port = 2401
+ else:
+@@ -192,17 +194,17 @@ class convert_cvs(converter_source):
+ b"END AUTH REQUEST",
+ b"",
+ ]
+ )
+ )
+ if sck.recv(128) != b"I LOVE YOU\n":
+ raise error.Abort(_(b"CVS pserver authentication failed"))
+
+- self.writep = self.readp = sck.makefile(b'r+')
++ self.writep = self.readp = sck.makefile('rwb')
+
+ if not conntype and root.startswith(b":local:"):
+ conntype = b"local"
+ root = root[7:]
+
+ if not conntype:
+ # :ext:user@host/home/user/path/to/cvsroot
+ if root.startswith(b":ext:"):
+diff --git a/hgext/convert/cvsps.py b/hgext/convert/cvsps.py
+--- a/hgext/convert/cvsps.py
++++ b/hgext/convert/cvsps.py
+@@ -681,17 +681,20 @@ def createchangeset(ui, log, fuzz=60, me
+ mergepoint=e.mergepoint,
+ branchpoints=e.branchpoints,
+ commitid=e.commitid,
+ )
+ changesets.append(c)
+
+ files = set()
+ if len(changesets) % 100 == 0:
+- t = b'%d %s' % (len(changesets), repr(e.comment)[1:-1])
++ t = b'%d %s' % (
++ len(changesets),
++ pycompat.byterepr(e.comment)[2:-1],
++ )
+ ui.status(stringutil.ellipsis(t, 80) + b'\n')
+
+ c.entries.append(e)
+ files.add(e.file)
+ c.date = e.date # changeset date is date of latest commit in it
+
+ # Mark synthetic changesets
+
+diff --git a/hgext/convert/darcs.py b/hgext/convert/darcs.py
+--- a/hgext/convert/darcs.py
++++ b/hgext/convert/darcs.py
+@@ -138,17 +138,17 @@ class darcs_source(common.converter_sour
+ return man
+
+ def getheads(self):
+ return self.parents[None]
+
+ def getcommit(self, rev):
+ elt = self.changes[rev]
+ dateformat = b'%a %b %d %H:%M:%S %Z %Y'
+- date = dateutil.strdate(elt.get('local_date'), dateformat)
++ date = dateutil.strdate(self.recode(elt.get('local_date')), dateformat)
+ desc = elt.findtext('name') + '\n' + elt.findtext('comment', '')
+ # etree can return unicode objects for name, comment, and author,
+ # so recode() is used to ensure str objects are emitted.
+ newdateformat = b'%Y-%m-%d %H:%M:%S %1%2'
+ return common.commit(
+ author=self.recode(elt.get('author')),
+ date=dateutil.datestr(date, newdateformat),
+ desc=self.recode(desc).strip(),
+diff --git a/hgext/fix.py b/hgext/fix.py
+--- a/hgext/fix.py
++++ b/hgext/fix.py
+@@ -693,16 +693,19 @@ def fixfile(ui, repo, opts, fixers, fixc
+ for fixername, fixer in fixers.items():
+ if fixer.affects(opts, fixctx, path):
+ ranges = lineranges(
+ opts, path, basepaths, basectxs, fixctx, newdata
+ )
+ command = fixer.command(ui, path, ranges)
+ if command is None:
+ continue
++ msg = b'fixing: %s - %s - %s\n'
++ msg %= (fixctx, fixername, path)
++ ui.debug(msg)
+ ui.debug(b'subprocess: %s\n' % (command,))
+ proc = subprocess.Popen(
+ procutil.tonativestr(command),
+ shell=True,
+ cwd=procutil.tonativestr(repo.root),
+ stdin=subprocess.PIPE,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE,
+diff --git a/hgext/histedit.py b/hgext/histedit.py
+--- a/hgext/histedit.py
++++ b/hgext/histedit.py
+@@ -991,17 +991,17 @@ class base(histeditaction):
+ msg % (self.verb, short(self.node)),
+ hint=_(b'base must only use unlisted changesets'),
+ )
+
+
+ @action(
+ [b'_multifold'],
+ _(
+- """fold subclass used for when multiple folds happen in a row
++ b"""fold subclass used for when multiple folds happen in a row
+
+ We only want to fire the editor for the folded message once when
+ (say) four changes are folded down into a single change. This is
+ similar to rollup, but we should preserve both messages so that
+ when the last fold operation runs we can show the user all the
+ commit messages in their editor.
+ """
+ ),
+diff --git a/hgext/sparse.py b/hgext/sparse.py
+--- a/hgext/sparse.py
++++ b/hgext/sparse.py
+@@ -369,17 +369,17 @@ def debugsparse(ui, repo, **opts):
+ sparse.importfromfiles(repo, opts, importrules, force=force)
+
+ if clearrules:
+ sparse.clearrules(repo, force=force)
+
+ if refresh:
+ try:
+ wlock = repo.wlock()
+- fcounts = map(
++ fcounts = pycompat.maplist(
+ len,
+ sparse.refreshwdir(
+ repo, repo.status(), sparse.matcher(repo), force=force
+ ),
+ )
+ sparse.printchanges(
+ ui,
+ opts,
+diff --git a/mercurial/bundlerepo.py b/mercurial/bundlerepo.py
+--- a/mercurial/bundlerepo.py
++++ b/mercurial/bundlerepo.py
+@@ -528,16 +528,18 @@ def makebundlerepository(ui, repopath, b
+ # a repo instance. Then, we dynamically create a new type derived from
+ # both it and our ``bundlerepository`` class which overrides some
+ # functionality. We then change the type of the constructed repository
+ # to this new type and initialize the bundle-specific bits of it.
+
+ try:
+ repo = localrepo.instance(ui, repopath, create=False)
+ tempparent = None
++ except error.RequirementError:
++ raise # no fallback if the backing repo is unsupported
+ except error.RepoError:
+ tempparent = pycompat.mkdtemp()
+ try:
+ repo = localrepo.instance(ui, tempparent, create=True)
+ except Exception:
+ shutil.rmtree(tempparent)
+ raise
+
+diff --git a/mercurial/commands.py b/mercurial/commands.py
+--- a/mercurial/commands.py
++++ b/mercurial/commands.py
+@@ -7467,16 +7467,19 @@ def tag(ui, repo, name1, *names, **opts)
+ raise error.InputError(
+ _(
+ b'working directory is not at a branch head '
+ b'(use -f to force)'
+ )
+ )
+ node = logcmdutil.revsingle(repo, rev_).node()
+
++ if node is None:
++ raise error.InputError(_(b"cannot tag working directory"))
++
+ if not message:
+ # we don't translate commit messages
+ message = b'Added tag %s for changeset %s' % (
+ b', '.join(names),
+ short(node),
+ )
+
+ date = opts.get(b'date')
+diff --git a/mercurial/dirstate.py b/mercurial/dirstate.py
+--- a/mercurial/dirstate.py
++++ b/mercurial/dirstate.py
+@@ -1439,16 +1439,19 @@ class dirstate:
+ if not self._use_dirstate_v2:
+ return None
+ return backupname + b'.v2-data'
+
+ def _new_backup_data_filename(self, backupname):
+ """return a filename to backup a data-file or None"""
+ if not self._use_dirstate_v2:
+ return None
++ if self._map.docket.uuid is None:
++ # not created yet, nothing to backup
++ return None
+ data_filename = self._map.docket.data_filename()
+ return data_filename, self.data_backup_filename(backupname)
+
+ def backup_data_file(self, backupname):
+ if not self._use_dirstate_v2:
+ return None
+ docket = docketmod.DirstateDocket.parse(
+ self._opener.read(backupname),
+@@ -1509,41 +1512,54 @@ class dirstate:
+ # end of this transaction
+ tr.registertmp(bck_data_filename, location=b'plain')
+
+ def restorebackup(self, tr, backupname):
+ '''Restore dirstate by backup file'''
+ # this "invalidate()" prevents "wlock.release()" from writing
+ # changes of dirstate out after restoring from backup file
+ self.invalidate()
++ o = self._opener
++ if not o.exists(backupname):
++ # there was no file backup, delete existing files
++ filename = self._actualfilename(tr)
++ data_file = None
++ if self._use_dirstate_v2 and self._map.docket.uuid is not None:
++ data_file = self._map.docket.data_filename()
++ if o.exists(filename):
++ o.unlink(filename)
++ if data_file is not None and o.exists(data_file):
++ o.unlink(data_file)
++ return
+ filename = self._actualfilename(tr)
+- o = self._opener
+ data_pair = self.backup_data_file(backupname)
+- if util.samefile(o.join(backupname), o.join(filename)):
++ if o.exists(filename) and util.samefile(
++ o.join(backupname), o.join(filename)
++ ):
+ o.unlink(backupname)
+ else:
+ o.rename(backupname, filename, checkambig=True)
+
+ if data_pair is not None:
+ data_backup, target = data_pair
+ if o.exists(target) and util.samefile(
+ o.join(data_backup), o.join(target)
+ ):
+ o.unlink(data_backup)
+ else:
+ o.rename(data_backup, target, checkambig=True)
+
+ def clearbackup(self, tr, backupname):
+ '''Clear backup file'''
+ o = self._opener
+- data_backup = self.backup_data_file(backupname)
+- o.unlink(backupname)
+-
+- if data_backup is not None:
+- o.unlink(data_backup[0])
++ if o.exists(backupname):
++ data_backup = self.backup_data_file(backupname)
++ o.unlink(backupname)
++ if data_backup is not None:
++ o.unlink(data_backup[0])
+
+ def verify(self, m1, m2):
+ """check the dirstate content again the parent manifest and yield errors"""
+ missing_from_p1 = b"%s in state %s, but not in manifest1\n"
+ unexpected_in_p1 = b"%s in state %s, but also in manifest1\n"
+ missing_from_ps = b"%s in state %s, but not in either manifest\n"
+ missing_from_ds = b"%s in manifest1, but listed as state %s\n"
+ for f, entry in self.items():
+diff --git a/mercurial/dirstatemap.py b/mercurial/dirstatemap.py
+--- a/mercurial/dirstatemap.py
++++ b/mercurial/dirstatemap.py
+@@ -109,16 +109,18 @@ class _dirstatemapcommon:
+ )
+ return self._docket
+
+ def write_v2_no_append(self, tr, st, meta, packed):
+ old_docket = self.docket
+ new_docket = docketmod.DirstateDocket.with_new_uuid(
+ self.parents(), len(packed), meta
+ )
++ if old_docket.uuid == new_docket.uuid:
++ raise error.ProgrammingError(b'dirstate docket name collision')
+ data_filename = new_docket.data_filename()
+ self._opener.write(data_filename, packed)
+ # Write the new docket after the new data file has been
+ # written. Because `st` was opened with `atomictemp=True`,
+ # the actual `.hg/dirstate` file is only affected on close.
+ st.write(new_docket.serialize())
+ st.close()
+ # Remove the old data file after the new docket pointing to
+diff --git a/mercurial/hgweb/server.py b/mercurial/hgweb/server.py
+--- a/mercurial/hgweb/server.py
++++ b/mercurial/hgweb/server.py
+@@ -198,17 +198,17 @@ class _httprequesthandler(httpservermod.
+ hkey = 'HTTP_' + header.replace('-', '_').upper()
+ hval = self.headers.get(header)
+ hval = hval.replace('\n', '').strip()
+ if hval:
+ env[hkey] = hval
+ env['SERVER_PROTOCOL'] = self.request_version
+ env['wsgi.version'] = (1, 0)
+ env['wsgi.url_scheme'] = pycompat.sysstr(self.url_scheme)
+- if env.get('HTTP_EXPECT', b'').lower() == b'100-continue':
++ if env.get('HTTP_EXPECT', '').lower() == '100-continue':
+ self.rfile = common.continuereader(self.rfile, self.wfile.write)
+
+ env['wsgi.input'] = self.rfile
+ env['wsgi.errors'] = _error_logger(self)
+ env['wsgi.multithread'] = isinstance(
+ self.server, socketserver.ThreadingMixIn
+ )
+ if util.safehasattr(socketserver, b'ForkingMixIn'):
+diff --git a/mercurial/revset.py b/mercurial/revset.py
+--- a/mercurial/revset.py
++++ b/mercurial/revset.py
+@@ -5,17 +5,16 @@
+ # This software may be used and distributed according to the terms of the
+ # GNU General Public License version 2 or any later version.
+
+
+ import binascii
+ import functools
+ import random
+ import re
+-import sys
+
+ from .i18n import _
+ from .pycompat import getattr
+ from .node import (
+ bin,
+ nullrev,
+ wdirrev,
+ )
+@@ -2350,17 +2349,17 @@ def roots(repo, subset, x):
+ for p in repo[None].parents():
+ if p.rev() in s:
+ return False
+ return True
+
+ return subset & s.filter(filter, condrepr=b'<roots>')
+
+
+-MAXINT = sys.maxsize
++MAXINT = (1 << 31) - 1
+ MININT = -MAXINT - 1
+
+
+ def pick_random(c, gen=random):
+ # exists as its own function to make it possible to overwrite the seed
+ return gen.randint(MININT, MAXINT)
+
+
+diff --git a/mercurial/scmutil.py b/mercurial/scmutil.py
+--- a/mercurial/scmutil.py
++++ b/mercurial/scmutil.py
+@@ -273,16 +273,21 @@ def checknewlabel(repo, lbl, kind):
+ raise error.InputError(_(b"the name '%s' is reserved") % lbl)
+ for c in (b':', b'\0', b'\n', b'\r'):
+ if c in lbl:
+ raise error.InputError(
+ _(b"%r cannot be used in a name") % pycompat.bytestr(c)
+ )
+ try:
+ int(lbl)
++ if b'_' in lbl:
++ # If label contains underscores, Python might consider it an
++ # integer (with "_" as visual separators), but we do not.
++ # See PEP 515 - Underscores in Numeric Literals.
++ raise ValueError
+ raise error.InputError(_(b"cannot use an integer as a name"))
+ except ValueError:
+ pass
+ if lbl.strip() != lbl:
+ raise error.InputError(
+ _(b"leading or trailing whitespace in name %r") % lbl
+ )
+
+diff --git a/mercurial/utils/resourceutil.py b/mercurial/utils/resourceutil.py
+--- a/mercurial/utils/resourceutil.py
++++ b/mercurial/utils/resourceutil.py
+@@ -54,17 +54,20 @@ else:
+
+
+ try:
+ # importlib.resources exists from Python 3.7; see fallback in except clause
+ # further down
+ from importlib import resources # pytype: disable=import-error
+
+ # Force loading of the resources module
+- resources.open_binary # pytype: disable=module-attr
++ if pycompat.safehasattr(resources, 'files'):
++ resources.files # pytype: disable=module-attr
++ else:
++ resources.open_binary # pytype: disable=module-attr
+
+ # py2exe raises an AssertionError if uses importlib.resources
+ if getattr(sys, "frozen", None) in ("console_exe", "windows_exe"):
+ raise ImportError
+
+ except (ImportError, AttributeError):
+ # importlib.resources was not found (almost definitely because we're on a
+ # Python version before 3.7)
+@@ -87,19 +90,28 @@ except (ImportError, AttributeError):
+ for p in os.listdir(path):
+ yield pycompat.fsencode(p)
+
+
+ else:
+ from .. import encoding
+
+ def open_resource(package, name):
+- return resources.open_binary( # pytype: disable=module-attr
+- pycompat.sysstr(package), pycompat.sysstr(name)
+- )
++ if pycompat.safehasattr(resources, 'files'):
++ return (
++ resources.files( # pytype: disable=module-attr
++ pycompat.sysstr(package)
++ )
++ .joinpath(pycompat.sysstr(name))
++ .open('rb')
++ )
++ else:
++ return resources.open_binary( # pytype: disable=module-attr
++ pycompat.sysstr(package), pycompat.sysstr(name)
++ )
+
+ def is_resource(package, name):
+ return resources.is_resource( # pytype: disable=module-attr
+ pycompat.sysstr(package), encoding.strfromlocal(name)
+ )
+
+ def contents(package):
+ # pytype: disable=module-attr
+diff --git a/relnotes/6.3 b/relnotes/6.3
+--- a/relnotes/6.3
++++ b/relnotes/6.3
+@@ -1,8 +1,28 @@
++= Mercurial 6.3.2 =
++
++ * [ecfc84b956a8] tests: expect the message from 1baf0fffd82f in test-hghave.t (issue6762)
++ * [5c095119bff4] tests: add the missing space to test-hghave.t (issue6762)
++ * [2c346c1c75ec] tests: use an all too familiar executable in test-run-tests.t (issue6661)
++ * [13c0e3b4fd35] tests: use `test -f` instead of `ls` to see if a file is present (issue6662)
++ * [8ced4ca30ea1] bisect: correct message about aborting an in-progress bisect (issue6527)
++ * filemerge: fix crash when using filesets in [partial-merge-tools]
++ * help: fix a py3 error interpolating Set into b'%s'
++ * match: make the FLAG_RE pattern a raw string
++ * python-compat: adapt to Python 3.11 BC breakage with `random.sample`
++ * rust-status: fix thread count ceiling
++ * hg: show the correct message when cloning an LFS repo with extension disabled
++ * extensions: process disabled external paths when `hgext` package is in-memory
++ * emitrevision: consider ancestors revision to emit as available base
++ * make: add a target for building pyoxidizer tests on macOS
++ * run-tests: support --pyoxidized on macOS
++ * packaging: add dependencies to the PyOxidizer build on macOS
++ * Miscellaneous test fixes
++
+ = Mercurial 6.3.1 =
+
+ * memory-usage: fix `hg log --follow --rev R F` space complexity (dcb2581e33be)
+ * Improve portability and robustness of test harness
+ * hg-core: relax dependencies pinning
+ * matcher: fix issues regex flag contained in pattern (issue6759)
+ * matcher: do not prepend '.*' to pattern using ^ after flags
+ * packaging: refresh dependency hashes (issue6750)
+diff --git a/rust/Cargo.lock b/rust/Cargo.lock
+--- a/rust/Cargo.lock
++++ b/rust/Cargo.lock
+@@ -227,19 +227,19 @@ source = "registry+https://github.com/ru
+ checksum = "e54ea8bc3fb1ee042f5aace6e3c6e025d3874866da222930f70ce62aceba0bfa"
+ dependencies = [
+ "cfg-if 1.0.0",
+ "crossbeam-utils",
+ ]
+
+ [[package]]
+ name = "crossbeam-deque"
+-version = "0.8.0"
++version = "0.8.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9"
++checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc"
+ dependencies = [
+ "cfg-if 1.0.0",
+ "crossbeam-epoch",
+ "crossbeam-utils",
+ ]
+
+ [[package]]
+ name = "crossbeam-epoch"
+@@ -911,36 +911,33 @@ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "a9fcdd2e881d02f1d9390ae47ad8e5696a9e4be7b547a1da2afbc61973217004"
+ dependencies = [
+ "rand_core 0.5.1",
+ ]
+
+ [[package]]
+ name = "rayon"
+-version = "1.5.1"
++version = "1.6.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90"
++checksum = "6db3a213adf02b3bcfd2d3846bb41cb22857d131789e01df434fb7e7bc0759b7"
+ dependencies = [
+- "autocfg",
+- "crossbeam-deque",
+ "either",
+ "rayon-core",
+ ]
+
+ [[package]]
+ name = "rayon-core"
+-version = "1.9.1"
++version = "1.10.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e"
++checksum = "356a0625f1954f730c0201cdab48611198dc6ce21f4acff55089b5a78e6e835b"
+ dependencies = [
+ "crossbeam-channel",
+ "crossbeam-deque",
+ "crossbeam-utils",
+- "lazy_static",
+ "num_cpus",
+ ]
+
+ [[package]]
+ name = "redox_syscall"
+ version = "0.2.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "8380fe0152551244f0747b1bf41737e0f8a74f97a14ccefd1148187271634f3c"
+diff --git a/rust/hg-core/Cargo.toml b/rust/hg-core/Cargo.toml
+--- a/rust/hg-core/Cargo.toml
++++ b/rust/hg-core/Cargo.toml
+@@ -18,17 +18,17 @@ home = "0.5.3"
+ im-rc = "15.0"
+ itertools = "0.10.3"
+ lazy_static = "1.4.0"
+ libc = "0.2"
+ ouroboros = "0.15.0"
+ rand = "0.8.4"
+ rand_pcg = "0.3.1"
+ rand_distr = "0.4.3"
+-rayon = "1.5.1"
++rayon = "1.6.1"
+ regex = "1.5.5"
+ sha-1 = "0.10.0"
+ twox-hash = "1.6.2"
+ same-file = "1.0.6"
+ tempfile = "3.1.0"
+ thread_local = "1.1.4"
+ crossbeam-channel = "0.5.0"
+ micro-timer = "0.4.0"
+diff --git a/rust/hg-core/src/narrow.rs b/rust/hg-core/src/narrow.rs
+--- a/rust/hg-core/src/narrow.rs
++++ b/rust/hg-core/src/narrow.rs
+@@ -95,17 +95,17 @@ pub fn matcher(
+
+ fn validate_patterns(patterns: &[u8]) -> Result<(), SparseConfigError> {
+ for pattern in patterns.split(|c| *c == b'\n') {
+ if pattern.is_empty() {
+ continue;
+ }
+ for prefix in VALID_PREFIXES.iter() {
+ if pattern.starts_with(prefix.as_bytes()) {
+- break;
++ return Ok(());
+ }
+- return Err(SparseConfigError::InvalidNarrowPrefix(
+- pattern.to_owned(),
+- ));
+ }
++ return Err(SparseConfigError::InvalidNarrowPrefix(
++ pattern.to_owned(),
++ ));
+ }
+ Ok(())
+ }
+diff --git a/rust/rhg/Cargo.toml b/rust/rhg/Cargo.toml
+--- a/rust/rhg/Cargo.toml
++++ b/rust/rhg/Cargo.toml
+@@ -17,9 +17,9 @@ home = "0.5.3"
+ lazy_static = "1.4.0"
+ log = "0.4.14"
+ micro-timer = "0.4.0"
+ regex = "1.5.5"
+ env_logger = "0.9.0"
+ format-bytes = "0.3.0"
+ users = "0.11.0"
+ which = "4.2.5"
+-rayon = "1.5.1"
++rayon = "1.6.1"
+diff --git a/setup.py b/setup.py
+--- a/setup.py
++++ b/setup.py
+@@ -16,16 +16,21 @@ supportedpy = ','.join(
+ import sys, platform
+ import sysconfig
+
+
+ def sysstr(s):
+ return s.decode('latin-1')
+
+
++def eprint(*args, **kwargs):
++ kwargs['file'] = sys.stderr
++ print(*args, **kwargs)
++
++
+ import ssl
+
+ # ssl.HAS_TLSv1* are preferred to check support but they were added in Python
+ # 3.7. Prior to CPython commit 6e8cda91d92da72800d891b2fc2073ecbc134d98
+ # (backported to the 3.7 branch), ssl.PROTOCOL_TLSv1_1 / ssl.PROTOCOL_TLSv1_2
+ # were defined only if compiled against a OpenSSL version with TLS 1.1 / 1.2
+ # support. At the mentioned commit, they were unconditionally defined.
+ _notset = object()
+@@ -216,19 +221,20 @@ class hgcommand:
+ def __init__(self, cmd, env):
+ self.cmd = cmd
+ self.env = env
+
+ def run(self, args):
+ cmd = self.cmd + args
+ returncode, out, err = runcmd(cmd, self.env)
+ err = filterhgerr(err)
+- if err or returncode != 0:
++ if err:
+ print("stderr from '%s':" % (' '.join(cmd)), file=sys.stderr)
+ print(err, file=sys.stderr)
++ if returncode != 0:
+ return b''
+ return out
+
+
+ def filterhgerr(err):
+ # If root is executing setup.py, but the repository is owned by
+ # another user (as in "sudo python setup.py install") we will get
+ # trust warnings since the .hg/hgrc file is untrusted. That is
+@@ -286,20 +292,21 @@ def findhg():
+ hgcmd = [sys.executable, 'hg']
+ try:
+ retcode, out, err = runcmd(hgcmd + check_cmd, hgenv)
+ except EnvironmentError:
+ retcode = -1
+ if retcode == 0 and not filterhgerr(err):
+ return hgcommand(hgcmd, hgenv)
+
+- raise SystemExit(
+- 'Unable to find a working hg binary to extract the '
+- 'version from the repository tags'
+- )
++ eprint("/!\\")
++ eprint(r"/!\ Unable to find a working hg binary")
++ eprint(r"/!\ Version cannot be extract from the repository")
++ eprint(r"/!\ Re-run the setup once a first version is built")
++ return None
+
+
+ def localhgenv():
+ """Get an environment dictionary to use for invoking or importing
+ mercurial from the local repository."""
+ # Execute hg out of this directory with a custom environment which takes
+ # care to not use any hgrc files and do no localization.
+ env = {
+@@ -314,39 +321,56 @@ def localhgenv():
+ # SystemRoot is required by Windows to load various DLLs. See:
+ # https://bugs.python.org/issue13524#msg148850
+ env['SystemRoot'] = os.environ['SystemRoot']
+ return env
+
+
+ version = ''
+
+-if os.path.isdir('.hg'):
++
++def _try_get_version():
+ hg = findhg()
++ if hg is None:
++ return ''
++ hgid = None
++ numerictags = []
+ cmd = ['log', '-r', '.', '--template', '{tags}\n']
+- numerictags = [t for t in sysstr(hg.run(cmd)).split() if t[0:1].isdigit()]
++ pieces = sysstr(hg.run(cmd)).split()
++ numerictags = [t for t in pieces if t[0:1].isdigit()]
+ hgid = sysstr(hg.run(['id', '-i'])).strip()
+ if not hgid:
+- # Bail out if hg is having problems interacting with this repository,
+- # rather than falling through and producing a bogus version number.
+- # Continuing with an invalid version number will break extensions
+- # that define minimumhgversion.
+- raise SystemExit('Unable to determine hg version from local repository')
++ eprint("/!\\")
++ eprint(r"/!\ Unable to determine hg version from local repository")
++ eprint(r"/!\ Failed to retrieve current revision tags")
++ return ''
+ if numerictags: # tag(s) found
+ version = numerictags[-1]
+ if hgid.endswith('+'): # propagate the dirty status to the tag
+ version += '+'
+- else: # no tag found
++ else: # no tag found on the checked out revision
+ ltagcmd = ['parents', '--template', '{latesttag}']
+ ltag = sysstr(hg.run(ltagcmd))
++ if not ltag:
++ eprint("/!\\")
++ eprint(r"/!\ Unable to determine hg version from local repository")
++ eprint(
++ r"/!\ Failed to retrieve current revision distance to lated tag"
++ )
++ return ''
+ changessincecmd = ['log', '-T', 'x\n', '-r', "only(.,'%s')" % ltag]
+ changessince = len(hg.run(changessincecmd).splitlines())
+ version = '%s+hg%s.%s' % (ltag, changessince, hgid)
+ if version.endswith('+'):
+ version = version[:-1] + 'local' + time.strftime('%Y%m%d')
++ return version
++
++
++if os.path.isdir('.hg'):
++ version = _try_get_version()
+ elif os.path.exists('.hg_archival.txt'):
+ kw = dict(
+ [[t.strip() for t in l.split(':', 1)] for l in open('.hg_archival.txt')]
+ )
+ if 'tag' in kw:
+ version = kw['tag']
+ elif 'latesttag' in kw:
+ if 'changessincelatesttag' in kw:
+@@ -356,31 +380,45 @@ elif os.path.exists('.hg_archival.txt'):
+ else:
+ version = '%(latesttag)s+hg%(latesttagdistance)s.%(node).12s' % kw
+ else:
+ version = '0+hg' + kw.get('node', '')[:12]
+ elif os.path.exists('mercurial/__version__.py'):
+ with open('mercurial/__version__.py') as f:
+ data = f.read()
+ version = re.search('version = b"(.*)"', data).group(1)
+-
+-if version:
+- versionb = version
+- if not isinstance(versionb, bytes):
+- versionb = versionb.encode('ascii')
++if not version:
++ if os.environ.get("MERCURIAL_SETUP_MAKE_LOCAL") == "1":
++ version = "0.0+0"
++ eprint("/!\\")
++ eprint(r"/!\ Using '0.0+0' as the default version")
++ eprint(r"/!\ Re-run make local once that first version is built")
++ eprint("/!\\")
++ else:
++ eprint("/!\\")
++ eprint(r"/!\ Could not determine the Mercurial version")
++ eprint(r"/!\ You need to build a local version first")
++ eprint(r"/!\ Run `make local` and try again")
++ eprint("/!\\")
++ msg = "Run `make local` first to get a working local version"
++ raise SystemExit(msg)
+
+- write_if_changed(
+- 'mercurial/__version__.py',
+- b''.join(
+- [
+- b'# this file is autogenerated by setup.py\n'
+- b'version = b"%s"\n' % versionb,
+- ]
+- ),
+- )
++versionb = version
++if not isinstance(versionb, bytes):
++ versionb = versionb.encode('ascii')
++
++write_if_changed(
++ 'mercurial/__version__.py',
++ b''.join(
++ [
++ b'# this file is autogenerated by setup.py\n'
++ b'version = b"%s"\n' % versionb,
++ ]
++ ),
++)
+
+
+ class hgbuild(build):
+ # Insert hgbuildmo first so that files in mercurial/locale/ are found
+ # when build_py is run next.
+ sub_commands = [('build_mo', None)] + build.sub_commands
+
+
+diff --git a/tests/filtertraceback.py b/tests/filtertraceback.py
+--- a/tests/filtertraceback.py
++++ b/tests/filtertraceback.py
+@@ -26,14 +26,19 @@ for line in sys.stdin:
+ elif state == 'tb':
+ if line.startswith(' File '):
+ state = 'file'
+ continue
+
+ elif not line.startswith(' '):
+ state = 'none'
+
++ elif not line.replace('^', '').replace('~', '').strip():
++ # PEP 657: Fine-grained error locations in tracebacks
++ # ~~~~~~^^^^^^^^^
++ continue
++
+ elif state == 'file':
+ # Ignore lines after " File "
+ state = 'tb'
+ continue
+
+ print(line, end='')
+diff --git a/tests/hghave.py b/tests/hghave.py
+--- a/tests/hghave.py
++++ b/tests/hghave.py
+@@ -201,25 +201,25 @@ def has_rhg():
+ def has_pyoxidizer():
+ return 'PYOXIDIZED_INSTALLED_AS_HG' in os.environ
+
+
+ @check(
+ "pyoxidizer-in-memory",
+ "running with pyoxidizer build as 'hg' with embedded resources",
+ )
+-def has_pyoxidizer():
++def has_pyoxidizer_mem():
+ return 'PYOXIDIZED_IN_MEMORY_RSRC' in os.environ
+
+
+ @check(
+ "pyoxidizer-in-filesystem",
+ "running with pyoxidizer build as 'hg' with external resources",
+ )
+-def has_pyoxidizer():
++def has_pyoxidizer_fs():
+ return 'PYOXIDIZED_FILESYSTEM_RSRC' in os.environ
+
+
+ @check("cvs", "cvs client/server")
+ def has_cvs():
+ re = br'Concurrent Versions System.*?server'
+ return matchoutput('cvs --version 2>&1', re) and not has_msys()
+
+@@ -656,46 +656,32 @@ def has_pygments():
+ import pygments
+
+ pygments.highlight # silence unused import warning
+ return True
+ except ImportError:
+ return False
+
+
+-@check("pygments25", "Pygments version >= 2.5")
+-def pygments25():
++def getpygmentsversion():
+ try:
+ import pygments
+
+ v = pygments.__version__
++
++ parts = v.split(".")
++ return (int(parts[0]), int(parts[1]))
+ except ImportError:
+- return False
+-
+- parts = v.split(".")
+- major = int(parts[0])
+- minor = int(parts[1])
+-
+- return (major, minor) >= (2, 5)
++ return (0, 0)
+
+
+-@check("pygments211", "Pygments version >= 2.11")
+-def pygments211():
+- try:
+- import pygments
+-
+- v = pygments.__version__
+- except ImportError:
+- return False
+-
+- parts = v.split(".")
+- major = int(parts[0])
+- minor = int(parts[1])
+-
+- return (major, minor) >= (2, 11)
++@checkvers("pygments", "Pygments version >= %s", (2.5, 2.11, 2.14))
++def has_pygments_range(v):
++ major, minor = v.split('.')[0:2]
++ return getpygmentsversion() >= (int(major), int(minor))
+
+
+ @check("outer-repo", "outer repo")
+ def has_outer_repo():
+ # failing for other reasons than 'no repo' imply that there is a repo
+ return not matchoutput('hg root 2>&1', br'abort: no repository found', True)
+
+
+diff --git a/tests/test-branches.t b/tests/test-branches.t
+--- a/tests/test-branches.t
++++ b/tests/test-branches.t
+@@ -77,16 +77,21 @@ trailing or leading spaces should be str
+ (use 'hg update' to switch to it)
+ [10]
+
+ $ hg branch ' b'
+ abort: a branch of the same name already exists
+ (use 'hg update' to switch to it)
+ [10]
+
++underscores in numeric branch names (issue6737)
++
++ $ hg branch 2700_210
++ marked working directory as branch 2700_210
++
+ verify update will accept invalid legacy branch names
+
+ $ hg init test-invalid-branch-name
+ $ cd test-invalid-branch-name
+ $ hg unbundle -u "$TESTDIR"/bundles/test-invalid-branch-name.hg
+ adding changesets
+ adding manifests
+ adding file changes
+diff --git a/tests/test-check-shbang.t b/tests/test-check-shbang.t
+--- a/tests/test-check-shbang.t
++++ b/tests/test-check-shbang.t
+@@ -9,17 +9,18 @@ look for python scripts that do not use
+ [1]
+
+ In tests, enforce $PYTHON and *not* /usr/bin/env python or similar:
+ $ testrepohg files 'set:grep(r"#!.*?python") and **/*.t' \
+ > -X tests/test-check-execute.t \
+ > -X tests/test-check-format.t \
+ > -X tests/test-check-module-imports.t \
+ > -X tests/test-check-pyflakes.t \
+- > -X tests/test-check-shbang.t
++ > -X tests/test-check-shbang.t \
++ > -X tests/test-highlight.t
+ [1]
+
+ The above exclusions are because they're looking for files that
+ contain Python but don't end in .py - please avoid adding more.
+
+ look for shell scripts that do not use /bin/sh
+
+ $ testrepohg files 'set:grep(r"^#!.*/bi{1}n/sh") and not grep(r"^#!/bi{1}n/sh")'
+diff --git a/tests/test-chg.t b/tests/test-chg.t
+--- a/tests/test-chg.t
++++ b/tests/test-chg.t
+@@ -347,21 +347,20 @@ remove foo
+ $ hg debugexpandscheme bar://expanded
+ https://bar.example.org/expanded
+
+ $ cd ..
+
+ repository cache
+ ----------------
+
+- $ rm log/server.log*
+ $ cp $HGRCPATH.unconfigured $HGRCPATH
+ $ cat <<'EOF' >> $HGRCPATH
+ > [cmdserver]
+- > log = $TESTTMP/log/server.log
++ > log = $TESTTMP/log/server-cached.log
+ > max-repo-cache = 1
+ > track-log = command, repocache
+ > EOF
+
+ isolate socket directory for stable result:
+
+ $ OLDCHGSOCKNAME=$CHGSOCKNAME
+ $ mkdir chgsock
+@@ -415,19 +414,17 @@ read uncached repo:
+ shut down servers and restore environment:
+
+ $ rm -R chgsock
+ $ sleep 2
+ $ CHGSOCKNAME=$OLDCHGSOCKNAME
+
+ check server log:
+
+- $ cat log/server.log | filterlog
+- YYYY/MM/DD HH:MM:SS (PID)> worker process exited (pid=...)
+- YYYY/MM/DD HH:MM:SS (PID)> worker process exited (pid=...) (?)
++ $ cat log/server-cached.log | filterlog
+ YYYY/MM/DD HH:MM:SS (PID)> init cached
+ YYYY/MM/DD HH:MM:SS (PID)> id -R cached
+ YYYY/MM/DD HH:MM:SS (PID)> loaded repo into cache: $TESTTMP/cached (in ...s)
+ YYYY/MM/DD HH:MM:SS (PID)> repo from cache: $TESTTMP/cached
+ YYYY/MM/DD HH:MM:SS (PID)> ci -R cached -Am 'add a'
+ YYYY/MM/DD HH:MM:SS (PID)> loaded repo into cache: $TESTTMP/cached (in ...s)
+ YYYY/MM/DD HH:MM:SS (PID)> repo from cache: $TESTTMP/cached
+ YYYY/MM/DD HH:MM:SS (PID)> log -R cached
+diff --git a/tests/test-demandimport.py b/tests/test-demandimport.py
+--- a/tests/test-demandimport.py
++++ b/tests/test-demandimport.py
+@@ -4,16 +4,17 @@ demandimport.enable()
+
+ import os
+ import subprocess
+ import sys
+ import types
+
+ # Don't import pycompat because it has too many side-effects.
+ ispy3 = sys.version_info[0] >= 3
++ispy311 = (sys.version_info.major, sys.version_info.minor) >= (3, 11)
+
+ # Only run if demandimport is allowed
+ if subprocess.call(
+ [os.environ['PYTHON'], '%s/hghave' % os.environ['TESTDIR'], 'demandimport']
+ ):
+ sys.exit(80)
+
+ # We rely on assert, which gets optimized out.
+@@ -76,18 +77,17 @@ else:
+ del os.environ['HGDEMANDIMPORT']
+ demandimport.enable()
+
+ # Test access to special attributes through demandmod proxy
+ assert 'mercurial.error' not in sys.modules
+ from mercurial import error as errorproxy
+
+ if ispy3:
+- # unsure why this isn't lazy.
+- assert not isinstance(f, _LazyModule)
++ assert isinstance(errorproxy, _LazyModule)
+ assert f(errorproxy) == "<module 'mercurial.error' from '?'>", f(errorproxy)
+ else:
+ assert f(errorproxy) == "<unloaded module 'error'>", f(errorproxy)
+
+ doc = ' '.join(errorproxy.__doc__.split()[:3])
+ assert doc == 'Mercurial exceptions. This', doc
+ assert errorproxy.__name__ == 'mercurial.error', errorproxy.__name__
+
+@@ -101,22 +101,28 @@ if ispy3:
+ assert f(errorproxy) == "<module 'mercurial.error' from '?'>", f(errorproxy)
+ else:
+ assert f(errorproxy) == "<proxied module 'error'>", f(errorproxy)
+
+ import os
+
+ if ispy3:
+ assert not isinstance(os, _LazyModule)
+- assert f(os) == "<module 'os' from '?'>", f(os)
++ if ispy311:
++ assert f(os) == "<module 'os' (frozen)>", f(os)
++ else:
++ assert f(os) == "<module 'os' from '?'>", f(os)
+ else:
+ assert f(os) == "<unloaded module 'os'>", f(os)
+
+ assert f(os.system) == '<built-in function system>', f(os.system)
+-assert f(os) == "<module 'os' from '?'>", f(os)
++if ispy311:
++ assert f(os) == "<module 'os' (frozen)>", f(os)
++else:
++ assert f(os) == "<module 'os' from '?'>", f(os)
+
+ assert 'mercurial.utils.procutil' not in sys.modules
+ from mercurial.utils import procutil
+
+ if ispy3:
+ assert isinstance(procutil, _LazyModule)
+ assert f(procutil) == "<module 'mercurial.utils.procutil' from '?'>", f(
+ procutil
+diff --git a/tests/test-extension.t b/tests/test-extension.t
+--- a/tests/test-extension.t
++++ b/tests/test-extension.t
+@@ -593,16 +593,17 @@ Make sure a broken uisetup doesn't globa
+ Even though the extension fails during uisetup, hg is still basically usable:
+ $ hg --config extensions.baduisetup=$TESTTMP/baduisetup.py version
+ Traceback (most recent call last):
+ File "*/mercurial/extensions.py", line *, in _runuisetup (glob) (no-pyoxidizer !)
+ File "mercurial.extensions", line *, in _runuisetup (glob) (pyoxidizer !)
+ uisetup(ui)
+ File "$TESTTMP/baduisetup.py", line 2, in uisetup
+ 1 / 0
++ ~~^~~ (py311 !)
+ ZeroDivisionError: * by zero (glob)
+ *** failed to set up extension baduisetup: * by zero (glob)
+ Mercurial Distributed SCM (version *) (glob)
+ (see https://mercurial-scm.org for more information)
+
+ Copyright (C) 2005-* Olivia Mackall and others (glob)
+ This is free software; see the source for copying conditions. There is NO
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+diff --git a/tests/test-fix.t b/tests/test-fix.t
+--- a/tests/test-fix.t
++++ b/tests/test-fix.t
+@@ -1148,16 +1148,17 @@ useful for anyone trying to set up a new
+
+ $ hg init debugoutput
+ $ cd debugoutput
+
+ $ printf "foo\nbar\nbaz\n" > foo.changed
+ $ hg commit -Aqm "foo"
+ $ printf "Foo\nbar\nBaz\n" > foo.changed
+ $ hg --debug fix --working-dir
++ fixing: f65cf3136d41+ - uppercase-changed-lines - foo.changed
+ subprocess: * $TESTTMP/uppercase.py 1-1 3-3 (glob)
+
+ $ cd ..
+
+ Fixing an obsolete revision can cause divergence, so we abort unless the user
+ configures to allow it. This is not yet smart enough to know whether there is a
+ successor, but even then it is not likely intentional or idiomatic to fix an
+ obsolete revision.
+diff --git a/tests/test-highlight.t b/tests/test-highlight.t
+--- a/tests/test-highlight.t
++++ b/tests/test-highlight.t
+@@ -158,17 +158,18 @@ hgweb filerevision, html
+ <span id="l2"></span><a href="#l2"></a>
+ <span id="l3"><span class="sd">primes = 2 : sieve [3, 5..]</span></span><a href="#l3"></a>
+ <span id="l4"><span class="sd"> where sieve (p:ns) = p : sieve [n | n <- ns, mod n p /= 0]</span></span><a href="#l4"></a>
+ <span id="l5"><span class="sd">"""</span></span><a href="#l5"></a>
+ <span id="l6"></span><a href="#l6"></a>
+ <span id="l7"><span class="kn">import</span> <span class="nn">itertools</span></span><a href="#l7"></a>
+ <span id="l8"></span><a href="#l8"></a>
+ <span id="l9"><span class="kn">def</span> <span class="nf">primes</span><span class="p">():</span></span><a href="#l9"></a>
+- <span id="l10"> <span class="sd">"""Generate all primes."""</span></span><a href="#l10"></a>
++ <span id="l10"><span class="w"> </span><span class="sd">"""Generate all primes."""</span></span><a href="#l10"></a> (pygments214 !)
++ <span id="l10"> <span class="sd">"""Generate all primes."""</span></span><a href="#l10"></a> (no-pygments214 !)
+ <span id="l11"> <span class="kn">def</span> <span class="nf">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></span><a href="#l11"></a>
+ <span id="l12"> <span class="n">p</span> <span class="o">=</span> <span class="n">ns</span><span class="o">.</span><span class="n">next</span><span class="p">()</span></span><a href="#l12"></a>
+ <span id="l13"> <span class="c"># It is important to yield *here* in order to stop the</span></span><a href="#l13"></a>
+ <span id="l14"> <span class="c"># infinite recursion.</span></span><a href="#l14"></a>
+ <span id="l15"> <span class="kn">yield</span> <span class="n">p</span></span><a href="#l15"></a>
+ <span id="l16"> <span class="n">ns</span> <span class="o">=</span> <span class="n">itertools</span><span class="o">.</span><span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">%</span> <span class="n">p</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">ns</span><span class="p">)</span></span><a href="#l16"></a>
+ <span id="l17"> <span class="kn">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></span><a href="#l17"></a>
+ <span id="l18"> <span class="kn">yield</span> <span class="n">n</span></span><a href="#l18"></a>
+@@ -484,17 +485,18 @@ hgweb fileannotate, html
+ a
+ </div>
+ <div><em>test</em></div>
+ <div>parents: </div>
+ <a href="/diff/687f2d169546/primes.py">diff</a>
+ <a href="/rev/687f2d169546">changeset</a>
+ </div>
+ </td>
+- <td class="source followlines-btn-parent"><a href="#l10"> 10</a> <span class="sd">"""Generate all primes."""</span></td>
++ <td class="source followlines-btn-parent"><a href="#l10"> 10</a> <span class="w"> </span><span class="sd">"""Generate all primes."""</span></td> (pygments214 !)
++ <td class="source followlines-btn-parent"><a href="#l10"> 10</a> <span class="sd">"""Generate all primes."""</span></td> (no-pygments214 !)
+ </tr>
+ <tr id="l11" class="thisrev">
+ <td class="annotate parity0">
+
+ <div class="annotate-info">
+ <div>
+ <a href="/annotate/687f2d169546/primes.py#l11">
+ 687f2d169546</a>
+@@ -1003,17 +1005,17 @@ We attempt to highlight unknown files by
+ $ killdaemons.py
+
+ $ cat > .hg/hgrc << EOF
+ > [web]
+ > highlightfiles = **
+ > EOF
+
+ $ cat > unknownfile << EOF
+- > #!$PYTHON
++ > #!/this/helps/pygments/detect/python
+ > def foo():
+ > pass
+ > EOF
+
+ $ hg add unknownfile
+ $ hg commit -m unknown unknownfile
+
+ $ hg serve -p $HGPORT -d -n test --pid-file=hg.pid
+diff --git a/tests/test-lfs-serve-access.t b/tests/test-lfs-serve-access.t
+--- a/tests/test-lfs-serve-access.t
++++ b/tests/test-lfs-serve-access.t
+@@ -335,22 +335,24 @@ Test a checksum failure during the proce
+ $LOCALIP - - [$LOGDATE$] "GET /.hg/lfs/objects/276f73cfd75f9fb519810df5f5d96d6594ca2521abd86cbcd92122f7d51a1f3d HTTP/1.1" 500 - (glob)
+ $LOCALIP - - [$LOGDATE$] "POST /.git/info/lfs/objects/batch HTTP/1.1" 200 - (glob)
+ $LOCALIP - - [$LOGDATE$] "GET /.hg/lfs/objects/276f73cfd75f9fb519810df5f5d96d6594ca2521abd86cbcd92122f7d51a1f3d HTTP/1.1" 422 - (glob)
+
+ $ grep -v ' File "' $TESTTMP/errors.log
+ $LOCALIP - - [$ERRDATE$] HG error: Exception happened while processing request '/.git/info/lfs/objects/batch': (glob)
+ $LOCALIP - - [$ERRDATE$] HG error: Traceback (most recent call last): (glob)
+ $LOCALIP - - [$ERRDATE$] HG error: verifies = store.verify(oid) (glob)
++ $LOCALIP - - [$ERRDATE$] HG error: ^^^^^^^^^^^^^^^^^ (glob) (py311 !)
+ $LOCALIP - - [$ERRDATE$] HG error: raise IOError(errno.EIO, r'%s: I/O error' % oid.decode("utf-8")) (glob)
+ $LOCALIP - - [$ERRDATE$] HG error: *Error: [Errno *] f03217a32529a28a42d03b1244fe09b6e0f9fd06d7b966d4d50567be2abe6c0e: I/O error (glob)
+ $LOCALIP - - [$ERRDATE$] HG error: (glob)
+ $LOCALIP - - [$ERRDATE$] HG error: Exception happened while processing request '/.git/info/lfs/objects/batch': (glob)
+ $LOCALIP - - [$ERRDATE$] HG error: Traceback (most recent call last): (glob)
+ $LOCALIP - - [$ERRDATE$] HG error: verifies = store.verify(oid) (glob)
++ $LOCALIP - - [$ERRDATE$] HG error: ^^^^^^^^^^^^^^^^^ (glob) (py311 !)
+ $LOCALIP - - [$ERRDATE$] HG error: raise IOError(errno.EIO, r'%s: I/O error' % oid.decode("utf-8")) (glob)
+ $LOCALIP - - [$ERRDATE$] HG error: *Error: [Errno *] b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c: I/O error (glob)
+ $LOCALIP - - [$ERRDATE$] HG error: (glob)
+ $LOCALIP - - [$ERRDATE$] HG error: Exception happened while processing request '/.hg/lfs/objects/b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c': (glob)
+ $LOCALIP - - [$ERRDATE$] HG error: Traceback (most recent call last): (glob)
+ $LOCALIP - - [$ERRDATE$] HG error: localstore.download(oid, req.bodyfh, req.headers[b'Content-Length'])
+ $LOCALIP - - [$ERRDATE$] HG error: super(badstore, self).download(oid, src, contentlength)
+ $LOCALIP - - [$ERRDATE$] HG error: raise LfsCorruptionError( (glob) (py38 !)
+@@ -358,29 +360,36 @@ Test a checksum failure during the proce
+ $LOCALIP - - [$ERRDATE$] HG error: hgext.lfs.blobstore.LfsCorruptionError: corrupt remote lfs object: b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c (py3 !)
+ $LOCALIP - - [$ERRDATE$] HG error: (glob)
+ $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/.hg/lfs/objects/276f73cfd75f9fb519810df5f5d96d6594ca2521abd86cbcd92122f7d51a1f3d': (glob)
+ Traceback (most recent call last):
+ self.do_write()
+ self.do_hgweb()
+ for chunk in self.server.application(env, self._start_response):
+ for r in self._runwsgi(req, res, repo):
++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (py311 !)
+ handled = wireprotoserver.handlewsgirequest( (py38 !)
++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (py311 !)
+ return _processbasictransfer( (py38 !)
++ ^^^^^^^^^^^^^^^^^^^^^^ (py311 !)
+ rctx, req, res, self.check_perm (no-py38 !)
+ rctx.repo, req, res, lambda perm: checkperm(rctx, req, perm) (no-py38 !)
+ res.setbodybytes(localstore.read(oid))
++ ^^^^^^^^^^^^^^^^^^^^ (py311 !)
+ blob = self._read(self.vfs, oid, verify)
++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (py311 !)
+ raise IOError(errno.EIO, r'%s: I/O error' % oid.decode("utf-8"))
+ *Error: [Errno *] 276f73cfd75f9fb519810df5f5d96d6594ca2521abd86cbcd92122f7d51a1f3d: I/O error (glob)
+
+ $LOCALIP - - [$ERRDATE$] HG error: Exception happened while processing request '/.hg/lfs/objects/276f73cfd75f9fb519810df5f5d96d6594ca2521abd86cbcd92122f7d51a1f3d': (glob)
+ $LOCALIP - - [$ERRDATE$] HG error: Traceback (most recent call last): (glob)
+ $LOCALIP - - [$ERRDATE$] HG error: res.setbodybytes(localstore.read(oid)) (glob)
++ $LOCALIP - - [$ERRDATE$] HG error: ^^^^^^^^^^^^^^^^^^^^ (glob) (py311 !)
+ $LOCALIP - - [$ERRDATE$] HG error: blob = self._read(self.vfs, oid, verify) (glob)
++ $LOCALIP - - [$ERRDATE$] HG error: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (glob) (py311 !)
+ $LOCALIP - - [$ERRDATE$] HG error: blobstore._verify(oid, b'dummy content') (glob)
+ $LOCALIP - - [$ERRDATE$] HG error: raise LfsCorruptionError( (glob) (py38 !)
+ $LOCALIP - - [$ERRDATE$] HG error: hint=_(b'run hg verify'), (glob) (no-py38 !)
+ $LOCALIP - - [$ERRDATE$] HG error: hgext.lfs.blobstore.LfsCorruptionError: detected corrupt lfs object: 276f73cfd75f9fb519810df5f5d96d6594ca2521abd86cbcd92122f7d51a1f3d (py3 !)
+ $LOCALIP - - [$ERRDATE$] HG error: (glob)
+
+ Basic Authorization headers are returned by the Batch API, and sent back with
+ the GET/PUT request.
+diff --git a/tests/test-narrow-clone.t b/tests/test-narrow-clone.t
+--- a/tests/test-narrow-clone.t
++++ b/tests/test-narrow-clone.t
+@@ -23,16 +23,28 @@ Only path: and rootfilesin: pattern pref
+ (narrow patterns must begin with one of the following: path:, rootfilesin:)
+ [255]
+
+ $ hg clone --narrow ssh://user@dummy/master badnarrow --noupdate --exclude 'set:ignored'
+ abort: invalid prefix on narrow pattern: set:ignored
+ (narrow patterns must begin with one of the following: path:, rootfilesin:)
+ [255]
+
++rootfilesin: patterns work
++
++ $ hg clone --narrow ssh://user@dummy/master rootfilesin --noupdate --include 'rootfilesin:dir'
++ requesting all changes
++ adding changesets
++ adding manifests
++ adding file changes
++ added 1 changesets with 0 changes to 0 files
++ new changesets 26ce255d5b5d
++ $ hg tracked -R rootfilesin
++ I rootfilesin:dir
++
+ narrow clone a file, f10
+
+ $ hg clone --narrow ssh://user@dummy/master narrow --noupdate --include "dir/src/f10"
+ requesting all changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 3 changesets with 1 changes to 1 files
+diff --git a/tests/test-remotefilelog-local.t b/tests/test-remotefilelog-local.t
+--- a/tests/test-remotefilelog-local.t
++++ b/tests/test-remotefilelog-local.t
+@@ -72,16 +72,21 @@
+ 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ clearcache
+ $ hg debugdirstate
+ n 644 2 * x (glob)
+ n 644 2 * y (glob)
+ n 644 2 * z (glob)
+ $ echo xxxx > x
+ $ echo yyyy > y
++# run status early to avoid a flaky second fetch during commit.
++ $ hg st
++ M x
++ M y
++ \d+ files fetched over \d+ fetches .* (re) (?)
+ $ hg commit -m x
+ created new head
+ 2 files fetched over 1 fetches - (2 misses, 0.00% hit ratio) over *s (glob)
+
+ # restore state for future tests
+
+ $ hg -q strip .
+ $ hg -q up tip
+@@ -99,16 +104,19 @@
+ searching for changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 1 changesets with 0 changes to 0 files (+1 heads)
+ new changesets fed61014d323
+ (run 'hg heads' to see heads, 'hg merge' to merge)
+
++# run status early to avoid a flaky second fetch during commit
++ $ hg status
++ \d+ files fetched over \d+ fetches .* (re) (?)
+ $ hg rebase -d tip
+ rebasing 1:9abfe7bca547 "a"
+ saved backup bundle to $TESTTMP/shallow/.hg/strip-backup/9abfe7bca547-8b11e5ff-rebase.hg (glob)
+ 3 files fetched over 2 fetches - (3 misses, 0.00% hit ratio) over *s (glob)
+
+ # strip
+
+ $ clearcache
+diff --git a/tests/test-requires.t b/tests/test-requires.t
+--- a/tests/test-requires.t
++++ b/tests/test-requires.t
+@@ -76,9 +76,19 @@ another repository of push/pull/clone on
+ $ hg clone supported clone-dst
+ abort: repository requires features unknown to this Mercurial: featuresetup-test
+ (see https://mercurial-scm.org/wiki/MissingRequirement for more information)
+ [255]
+ $ hg clone --pull supported clone-dst
+ abort: required features are not supported in the destination: featuresetup-test
+ [255]
+
++Bundlerepo also enforces the underlying repo requirements
++
++ $ hg --cwd supported bundle --all ../bundle.hg
++ 1 changesets found
++ $ echo outdoor-pool > push-dst/.hg/requires
++ $ hg --cwd push-dst log -R ../bundle.hg -T phases
++ abort: repository requires features unknown to this Mercurial: outdoor-pool
++ (see https://mercurial-scm.org/wiki/MissingRequirement for more information)
++ [255]
++
+ $ cd ..
+diff --git a/tests/test-revset.t b/tests/test-revset.t
+--- a/tests/test-revset.t
++++ b/tests/test-revset.t
+@@ -2976,26 +2976,26 @@ test sorting by multiple keys including
+
+ random sort
+
+ $ hg log --rev 'sort(all(), "random")' | wc -l
+ \s*8 (re)
+ $ hg log --rev 'sort(all(), "-random")' | wc -l
+ \s*8 (re)
+ $ hg log --rev 'sort(all(), "random", random.seed=celeste)'
++ 0 b12 m111 u112 111 10800
++ 4 b111 m112 u111 110 14400
++ 2 b111 m11 u12 111 3600
+ 6 b111 t2 tu 130 0
++ 1 b11 m12 u111 112 7200
+ 7 b111 t3 tu 130 0
+- 4 b111 m112 u111 110 14400
+- 3 b112 m111 u11 120 0
+ 5 b111 t1 tu 130 0
++ 3 b112 m111 u11 120 0
++ $ hg log --rev 'first(sort(all(), "random", random.seed=celeste))'
+ 0 b12 m111 u112 111 10800
+- 1 b11 m12 u111 112 7200
+- 2 b111 m11 u12 111 3600
+- $ hg log --rev 'first(sort(all(), "random", random.seed=celeste))'
+- 6 b111 t2 tu 130 0
+
+
+ topographical sorting can't be combined with other sort keys, and you can't
+ use the topo.firstbranch option when topo sort is not active:
+
+ $ hg log -r 'sort(all(), "topo user")'
+ hg: parse error: topo sort order cannot be combined with other sort keys
+ [10]
+diff --git a/tests/test-tag.t b/tests/test-tag.t
+--- a/tests/test-tag.t
++++ b/tests/test-tag.t
+@@ -407,16 +407,20 @@ tagging on null rev
+ $ hg tag -R empty nullrev
+ abort: cannot tag null revision
+ [10]
+
+ $ hg tag -R empty -r 00000000000 -f nulltag
+ abort: cannot tag null revision
+ [10]
+
++ $ hg tag -R empty -r "wdir()" -f wdirtag
++ abort: cannot tag working directory
++ [10]
++
+ issue5539: pruned tags do not appear in .hgtags
+
+ $ cat >> $HGRCPATH << EOF
+ > [experimental]
+ > evolution.exchange = True
+ > evolution.createmarkers=True
+ > EOF
+ $ hg up e4d483960b9b --quiet
--- /dev/null
+Tweak cipher selection further to make tls < 1.2 work with openssl 3
+
+Ref: https://bugs.debian.org/1011076
+
+--- a/mercurial/sslutil.py
++++ b/mercurial/sslutil.py
+@@ -117,17 +117,17 @@ def _hostsettings(ui, hostname):
+ ciphers = ui.config(b'hostsecurity', b'%s:ciphers' % bhostname, ciphers)
+
+ # If --insecure is used, we allow the use of TLS 1.0 despite config options.
+ # We always print a "connection security to %s is disabled..." message when
+ # --insecure is used. So no need to print anything more here.
+ if ui.insecureconnections:
+ minimumprotocol = b'tls1.0'
+ if not ciphers:
+- ciphers = b'DEFAULT'
++ ciphers = b'DEFAULT:@SECLEVEL=0'
+
+ s[b'minimumprotocol'] = minimumprotocol
+ s[b'ciphers'] = ciphers
+
+ # Look for fingerprints in [hostsecurity] section. Value is a list
+ # of <alg>:<fingerprint> strings.
+ fingerprints = ui.configlist(
+ b'hostsecurity', b'%s:fingerprints' % bhostname
+@@ -621,17 +621,17 @@ def wrapserversocket(
+
+ # Improve forward secrecy.
+ sslcontext.options |= getattr(ssl, 'OP_SINGLE_DH_USE', 0)
+ sslcontext.options |= getattr(ssl, 'OP_SINGLE_ECDH_USE', 0)
+
+ # In tests, allow insecure ciphers
+ # Otherwise, use the list of more secure ciphers if found in the ssl module.
+ if exactprotocol:
+- sslcontext.set_ciphers('DEFAULT')
++ sslcontext.set_ciphers('DEFAULT:@SECLEVEL=0')
+ elif util.safehasattr(ssl, b'_RESTRICTED_SERVER_CIPHERS'):
+ sslcontext.options |= getattr(ssl, 'OP_CIPHER_SERVER_PREFERENCE', 0)
+ # pytype: disable=module-attr
+ sslcontext.set_ciphers(ssl._RESTRICTED_SERVER_CIPHERS)
+ # pytype: enable=module-attr
+
+ if requireclientcert:
+ sslcontext.verify_mode = ssl.CERT_REQUIRED
+--- a/tests/test-https.t
++++ b/tests/test-https.t
+@@ -356,19 +356,19 @@ Start servers running supported TLS vers
+ $ cat ../hg1.pid >> $DAEMON_PIDS
+ $ hg serve -p $HGPORT2 -d --pid-file=../hg2.pid --certificate=$PRIV \
+ > --config devel.serverexactprotocol=tls1.2
+ $ cat ../hg2.pid >> $DAEMON_PIDS
+ $ cd ..
+
+ Clients talking same TLS versions work
+
+- $ P="$CERTSDIR" hg --config hostsecurity.minimumprotocol=tls1.0 --config hostsecurity.ciphers=DEFAULT id https://localhost:$HGPORT/
++ $ P="$CERTSDIR" hg --config hostsecurity.minimumprotocol=tls1.0 --config hostsecurity.ciphers=DEFAULT:@SECLEVEL=0 id https://localhost:$HGPORT/
+ 5fed3813f7f5
+- $ P="$CERTSDIR" hg --config hostsecurity.minimumprotocol=tls1.1 --config hostsecurity.ciphers=DEFAULT id https://localhost:$HGPORT1/
++ $ P="$CERTSDIR" hg --config hostsecurity.minimumprotocol=tls1.1 --config hostsecurity.ciphers=DEFAULT:@SECLEVEL=0 id https://localhost:$HGPORT1/
+ 5fed3813f7f5
+ $ P="$CERTSDIR" hg --config hostsecurity.minimumprotocol=tls1.2 id https://localhost:$HGPORT2/
+ 5fed3813f7f5
+
+ Clients requiring newer TLS version than what server supports fail
+
+ $ P="$CERTSDIR" hg id https://localhost:$HGPORT/
+ (could not negotiate a common security protocol (tls1.1+) with localhost; the likely cause is Mercurial is configured to be more secure than the server can support)
+@@ -400,17 +400,17 @@ Clients requiring newer TLS version than
+
+ $ hg --config hostsecurity.minimumprotocol=tls1.2 id --insecure https://localhost:$HGPORT1/
+ warning: connection security to localhost is disabled per current settings; communication is susceptible to eavesdropping and tampering
+ 5fed3813f7f5
+
+ The per-host config option overrides the default
+
+ $ P="$CERTSDIR" hg id https://localhost:$HGPORT/ \
+- > --config hostsecurity.ciphers=DEFAULT \
++ > --config hostsecurity.ciphers=DEFAULT:@SECLEVEL=0 \
+ > --config hostsecurity.minimumprotocol=tls1.2 \
+ > --config hostsecurity.localhost:minimumprotocol=tls1.0
+ 5fed3813f7f5
+
+ The per-host config option by itself works
+
+ $ P="$CERTSDIR" hg id https://localhost:$HGPORT/ \
+ > --config hostsecurity.localhost:minimumprotocol=tls1.2
--- /dev/null
+# HG changeset patch
+# User Raphaël Gomès <rgomes@octobus.net>
+# Date 1729684194 -7200
+# Wed Oct 23 13:49:54 2024 +0200
+# Branch stable
+# Node ID d906406658a947ab64b34302df15be21e928ba24
+# Parent e760a36a601336f75016e5c2bbc5a53da2ea7182
+patchbomb: don't test ambiguous address
+
+This is a bug in Python's `email` package and shouldn't be relied on.
+Python 3.12 has fixed this problem¹ and raises an exception. We keep the
+multiple `-t` because this is still relevant for testing.
+
+[1] https://github.com/python/cpython/issues/102988
+[2] https://docs.python.org/3/whatsnew/changelog.html
+
+--- a/tests/test-patchbomb.t
++++ b/tests/test-patchbomb.t
+@@ -2377,7 +2377,7 @@ test multiple flags for multiple patches
+
+
+ test multi-address parsing:
+- $ hg email --date '1980-1-1 0:1' -m tmp.mbox -f quux -t 'spam<spam><eggs>' \
++ $ hg email --date '1980-1-1 0:1' -m tmp.mbox -f quux -t 'spam<spam>' \
+ > -t toast -c 'foo,bar@example.com' -c '"A, B <>" <a@example.com>' -s test -r 0 \
+ > --config email.bcc='"Quux, A." <quux>'
+ this patch series consists of 1 patches.
+@@ -2398,7 +2398,7 @@ test multi-address parsing:
+ User-Agent: Mercurial-patchbomb/* (glob)
+ Date: Tue, 01 Jan 1980 00:01:00 +0000
+ From: quux
+- To: =?iso-8859-1?q?spam?= <spam>, eggs, toast (py3 !)
++ To: =?iso-8859-1?q?spam?= <spam>, toast (py3 !)
+ Cc: foo, bar@example.com, =?iso-8859-1?q?A=2C_B_=3C=3E?= <a@example.com> (py3 !)
+ Bcc: =?iso-8859-1?q?Quux=2C_A=2E?= <quux> (py3 !)
+
--- /dev/null
+# HG changeset patch
+# User Julien Cristau <jcristau@debian.org>
+# Date 1589916203 -7200
+# Tue May 19 21:23:23 2020 +0200
+# Node ID de789b6b188b62cf38c5c5cfe760cff9a48c52f5
+# Parent 3b7aabd02e11fcfc015b3a90a0c52d971a7b8a83
+test: make test-doctest.py work when it's not run from a mercurial repo
+
+This assumption fails when building and running tests from a source
+tarball, e.g.
+
+Differential Revision: https://phab.mercurial-scm.org/D8571
+---
+ tests/test-doctest.py | 23 ++++++++++++-----------
+ 1 file changed, 12 insertions(+), 11 deletions(-)
+
+--- a/tests/test-doctest.py
++++ b/tests/test-doctest.py
+@@ -4,7 +4,6 @@
+ import doctest
+ import os
+ import re
+-import subprocess
+ import sys
+
+ ispy3 = sys.version_info[0] >= 3
+@@ -68,16 +67,18 @@ testmod_arg_overrides = {
+
+ fileset = 'set:(**.py)'
+
+-cwd = os.path.dirname(os.environ["TESTDIR"])
+-
+-if not os.path.isdir(os.path.join(cwd, ".hg")):
+- sys.exit(0)
+-
+-files = subprocess.check_output(
+- "hg files --print0 \"%s\"" % fileset,
+- shell=True,
+- cwd=cwd,
+-).split(b'\0')
++if ispy3:
++ cwd = os.path.dirname(os.environb[b"TESTDIR"])
++else:
++ cwd = os.path.dirname(os.environ["TESTDIR"])
++
++files = []
++for dirpath, dirnames, filenames in os.walk(cwd):
++ excludeddirindexes = reversed([i for i, dir in enumerate(dirnames) if dir == b'build' or dir.startswith(b'.')])
++ for i in excludeddirindexes:
++ del dirnames[i]
++ # include all .py files, removing the cwd + dirsep prefix
++ files.extend(os.path.join(dirpath, f)[len(cwd) + 1:] for f in filenames if f.endswith(b'.py'))
+
+ if sys.version_info[0] >= 3:
+ cwd = os.fsencode(cwd)
--- /dev/null
+# HG changeset patch
+# User Julien Cristau <jcristau@debian.org>
+# Date 1649671433 -7200
+# Mon Apr 11 12:03:53 2022 +0200
+# Node ID d3df32e12246208fc8bb9507ff921099348c6783
+# Parent 5005928cac60a43d98d88523713983efdc204d50
+tests: silence asyncore/smtpd deprecation warnings
+
+--- a/tests/dummysmtpd.py
++++ b/tests/dummysmtpd.py
+@@ -1,19 +1,23 @@
+ #!/usr/bin/env python
+
+ """dummy SMTP server for use in tests"""
+
+
+-import asyncore
+ import optparse
+-import smtpd
+ import ssl
+ import sys
+ import traceback
++import warnings
++
++with warnings.catch_warnings():
++ warnings.filterwarnings('ignore', 'The (asyncore|smtpd) module is deprecated', DeprecationWarning)
++ import asyncore
++ import smtpd
+
+ from mercurial import (
+ pycompat,
+ server,
+ sslutil,
+ ui as uimod,
+ )
+
--- /dev/null
+from_upstream_stable.patch
+py310/9_tests__silence_asyncore_smtpd_deprecation_warnings.patch
+proposed_upstream__doctest.path
+deb_specific__hgk.py.patch
+deb_specific__optional-dependencies
+deb_specific__disable_libdir_replacement.patch
+0005-Tolerate-SIGINT-getting-the-kill-in-test-stdio.py.patch
+openssl_3_cipher_tlsv1.patch
+test-hghave-testrepo.patch
+cgitb.patch
+CVE-2025-2361.patch
+patchbomb-ambiguous-address.patch
--- /dev/null
+https://bz.mercurial-scm.org/show_bug.cgi?id=6762
+
+diff --git a/tests/test-hghave.t b/tests/test-hghave.t
+index d51fdcbf..a49caa42 100644
+--- a/tests/test-hghave.t
++++ b/tests/test-hghave.t
+@@ -1,5 +1,3 @@
+- $ . "$TESTDIR/helpers-testrepo.sh"
+-
+ Testing that hghave does not crash when checking features
+
+ $ hghave --test-features 2>/dev/null
+@@ -21,7 +19,6 @@ Testing hghave extensibility for third party tools
+ > foo
+ > EOF
+ $ ( \
+- > testrepohgenv; \
+ > "$PYTHON" $TESTDIR/run-tests.py --with-hg=$HGTEST_REAL_HG -j 1 \
+ > $HGTEST_RUN_TESTS_PURE test-hghaveaddon.t \
+ > )
--- /dev/null
+#!/usr/bin/make -f
+# -*- mode: makefile; coding: utf-8 -*-
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+%:
+ dh $@ --with python3,bash-completion
+
+PYVERS=$(shell py3versions -vs)
+
+include /usr/share/dpkg/architecture.mk
+
+override_dh_python3:
+ dh_python3 --shebang=/usr/bin/python3
+
+override_dh_auto_build: $(PYVERS:%=build-python%)
+ $(MAKE) build-chg
+ # Do not start a line with a word with a dot in a manpage
+ sed -i -e 's,^[.]\(hgignore\|hg/hgrc\),\\fP\1,' doc/hg.1
+
+build-python%:
+ $(MAKE) all PYTHON=python$*
+
+ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+ NJOBS := $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+ PARALLEL_TEST_JOBS := --jobs $(NJOBS)
+endif
+
+ARCH_IS_MIPS := $(if $(subst mips,,$(DEB_HOST_ARCH)),,T)
+ARCH_IS_KFREEBSD-i386 := $(if $(subst kfreebsd-i386,,$(DEB_HOST_ARCH)),,T)
+ARCH_IS_ARMEL := $(if $(subst armel,,$(DEB_HOST_ARCH)),,T)
+ARCH_IS_SPARC := $(if $(subst sparc,,$(DEB_HOST_ARCH)),,T)
+
+override_dh_auto_test:
+ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
+# test-pull-pull-corruption tries to execute two hg commands at the
+# same time to test for corruption. It does so by running an hg
+# command in the background, sleeping one second and running the
+# second command. In architectures with slow buildds, one second is
+# not enough and the second test starts before the first one has
+# started printing. This is hacky and we just enhance the hack by
+# incrementing the sleep time in those architectures.
+ifneq ($(or $(ARCH_IS_MIPS), $(ARCH_IS_KFREEBSD-i386), $(ARCH_IS_ARMEL), $(ARCH_IS_SPARC)),)
+ sed -i.deb-backup -e 's/sleep 1/sleep 2/' $(CURDIR)/tests/test-pull-pull-corruption.t
+endif
+
+ http_proxy='' dh_auto_test -- PYTHON=python3 TESTFLAGS="--verbose --timeout 1800 $(PARALLEL_TEST_JOBS) --blacklist $(CURDIR)/debian/mercurial.test_blacklist"
+ file-rename 's/\.deb-backup$$//' $(CURDIR)/tests/*
+ # run blacklisted tests but ignore their results
+ -cd tests && python3 run-tests.py --verbose `grep ^test ../debian/mercurial.test_blacklist`
+endif
+
+override_dh_auto_install: $(PYVERS:%=install-python%)
+ $(MAKE) install-chg DESTDIR=$(CURDIR)/debian/tmp PREFIX=/usr PYTHON=python3
+ # #961245: mercurial-git grabbed the hgext/git directory years
+ # ago, so don't install our experimental extension there for now
+ rm -rf debian/tmp/usr/lib/python*/*-packages/hgext/git
+
+install-python%:
+ dh_auto_install -- PREFIX=/usr PYTHON=python$*
+
+execute_after_dh_install:
+ if test -d $(CURDIR)/debian/mercurial ; then \
+ $(MAKE) -f debian/rules install-archdep ; \
+ fi
+ if test -d $(CURDIR)/debian/mercurial-common ; then \
+ $(MAKE) -f debian/rules install-archindep ;\
+ fi
+
+install-archdep:
+ # remove arch-independent python stuff
+ find debian/mercurial/usr/lib \
+ ! -name '*.so' ! -type d -delete , \
+ -type d -empty -delete
+
+install-archindep:
+ # remove arch-dependent python stuff
+ find debian/mercurial-common/usr/lib \
+ -name '*.so' ! -type d -delete , \
+ -type d -empty -delete
+ install -DTm 644 contrib/zsh_completion \
+ debian/mercurial-common/usr/share/zsh/vendor-completions/_mercurial
+ install -DTm 644 tests/run-tests.py \
+ debian/mercurial-common/usr/share/mercurial/tests/run-tests.py
+
+override_dh_python3-arch:
+ dh_python3
+ find debian/mercurial/usr/share -type d -empty -delete ; \
+
+override_dh_auto_clean: mercurial/__version__.py
+ cp -a mercurial/__version__.py mercurial/__version__.py.save
+ dh_auto_clean -- PYTHON=python3
+ mv mercurial/__version__.py.save mercurial/__version__.py
+ $(RM) -rv tmp/
+
+mercurial/__version__.py:
+ @echo "$@ is missing (you probably call 'make clean' directly)."
+ @echo "Restore it from sources before building the package"
+ @echo "Aborting."
+ exit 1
--- /dev/null
+3.0 (quilt)
--- /dev/null
+Tests: testsuite
+Depends:
+ @,
+ python3-packaging,
+ zip,
+ unzip,
+ netbase,
+ subversion,
+ python3-subversion,
+ cvs,
+ bzr,
+ tla,
+ git,
+ darcs,
+ gcc,
+ python3-dev,
+ less,
+ gettext,
+ pylint,
+ python3-pygments,
+ python3-docutils,
+ sqlite3,
+ clang-format,
+ python3-vcr,
+ python3-fuzzywuzzy,
+ python3-pygit2,
+Restrictions: allow-stderr
--- /dev/null
+#!/bin/sh
+
+# This actually tests that hgsubversion is not broken and it really
+# belongs in the hgsubversion package (it's there). I'm copying it
+# here because that way I can test if a new version of mercurial
+# breaks hgsubversion and update Breaks accordingly. There's probably
+# a better way of doing this.
+
+set -e
+
+SVN_ROOT=$(mktemp --tmpdir -d hgsubversion.XXXXX)
+mkdir -p $SVN_ROOT
+
+PID_FILE=/tmp/svnmock.pid
+
+# Create a local svn server with an empty repo
+svnadmin create $SVN_ROOT/celesteville
+cat > $SVN_ROOT/celesteville/conf/svnserve.conf << EOF
+[general]
+anon-access = write
+EOF
+svnserve -d --pid-file $PID_FILE -r $SVN_ROOT
+
+# Put some content in the repository
+svn co svn://127.0.0.1/celesteville
+cd celesteville
+mkdir trunk tags branches
+svn add trunk tags branches
+svn commit -m "Initial commit"
+echo Cornelius > trunk/people
+svn add trunk/people
+svn commit -m "Add people"
+cd ..
+rm -rf celesteville
+
+# Now test hgsubversion
+hg --config extensions.hgsubversion= clone svn://127.0.0.1/celesteville
+cd celesteville
+echo Arthur >> people
+hg commit -u "Babar <babar@jungle.org>" -m "Add more people"
+hg --config extensions.hgsubversion= push
+cd ..
+
+# Kill the server and cleanup
+kill $(cat $PID_FILE)
+rm -rf $SVN_ROOT
+
+rm -r celesteville
--- /dev/null
+#!/bin/sh
+#
+# Basic test to see if the mercurial-git extension still works.
+
+set -e
+
+# Setup a git repository with some content
+git init --bare git_server
+git clone git_server git_clone 2>&1
+cd git_clone
+git config user.name Babar
+git config user.email babar@jungle.org
+echo a >a
+git add a
+git commit -m a
+git push origin master 2>&1
+cd ..
+
+# Now try to clone it with mercurial-git
+hg --config extensions.git= clone git_server hg_clone
+
+# Do some changes and push them to the git server
+cd hg_clone
+echo b >>a
+hg commit -u "Babar <babar@jungle.org>" -m "more content to a"
+exec hg --config extensions.git= push
--- /dev/null
+#!/bin/sh
+
+set -ex
+
+exec make tests TESTFLAGS="--verbose --timeout 1800 --with-hg=/usr/bin/hg --blacklist=$(pwd)/debian/mercurial.test_blacklist" PYTHON=python3
--- /dev/null
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+yrWppKRpUcx2Zb9PbwZPNLn5sjbYlQ==
+=NmUV
+-----END PGP PUBLIC KEY BLOCK-----
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+=qCxb
+-----END PGP PUBLIC KEY BLOCK-----
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+b881BjZOkRqzNNU=
+=p7OT
+-----END PGP PUBLIC KEY BLOCK-----
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+=rvjR
+-----END PGP PUBLIC KEY BLOCK-----
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+=RKDP
+-----END PGP PUBLIC KEY BLOCK-----
--- /dev/null
+# format version number, currently 3; this line is compulsory!
+version=3
+
+opts="uversionmangle=s/-?rc/~rc/,pgpsigurlmangle=s/$/.asc/" \
+ https://www.mercurial-scm.org/release/mercurial-(.*)\.tar\.gz