--- /dev/null
--- /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
--- /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
--- /dev/null
++See /usr/share/doc/quilt/README.source
--- /dev/null
--- /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
--- /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
--- /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
--- /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
--- /dev/null
++[DEFAULT]
++debian-branch=debian/master
++
++[import-orig]
++pristine-tar = True
--- /dev/null
--- /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
--- /dev/null
++4c808ced6b7ddc2e3c1514703bc238b9 0.9.5-3
++80086669df3007b5b17d7d12efe03775 sarge
--- /dev/null
--- /dev/null
++# system-wide mercurial configuration file
++# See hgrc(5) for more information
--- /dev/null
--- /dev/null
++contrib/bash_completion hg
--- /dev/null
--- /dev/null
++etc/mercurial/hgrc.d
--- /dev/null
--- /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
--- /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
--- /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
--- /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
--- /dev/null
++usr/share/doc/mercurial
--- /dev/null
--- /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
--- /dev/null
++usr/share/doc/mercurial-common/examples usr/share/doc/mercurial/examples
--- /dev/null
--- /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
--- /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
--- /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
--- /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
--- /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
--- /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
--- /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
--- /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
--- /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
--- /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
--- /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
--- /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
--- /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
--- /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
--- /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
--- /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
--- /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
--- /dev/null
++3.0 (quilt)
--- /dev/null
--- /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
--- /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
--- /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
--- /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
--- /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
--- /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