# HG changeset patch # User Anton Shestakov # Date 1677253450 -14400 # Node ID b71d6235fa01eb854858a162d91c88fc28aab343 # Parent faea18a26188c8bd3ed09e64a029b120854abb9d# Parent acdeec2dc7329646efdbbb388d9d2661a7deda69 test-compat: merge mercurial-6.0 into mercurial-5.9 diff -r faea18a26188 -r b71d6235fa01 .gitlab-ci.yml diff -r faea18a26188 -r b71d6235fa01 .gitlab/issue_templates/new-version.md --- a/.gitlab/issue_templates/new-version.md Mon Feb 06 18:56:14 2023 +0400 +++ b/.gitlab/issue_templates/new-version.md Fri Feb 24 19:44:10 2023 +0400 @@ -20,7 +20,7 @@ * [ ] move the `@` bookmark to the new tag * [ ] push/publish the tag to the main repository * [ ] upload the tarball to PyPI -* [ ] add `.dev` to the `__version__` field +* [ ] add `.dev0` to the `__version__` field * [ ] merge stable into default * [ ] push the result to https://www.mercurial-scm.org/repo/evolve/ * [ ] send the announcement by email to evolve-testers@mercurial-scm.org diff -r faea18a26188 -r b71d6235fa01 .hgtags --- a/.hgtags Mon Feb 06 18:56:14 2023 +0400 +++ b/.hgtags Fri Feb 24 19:44:10 2023 +0400 @@ -102,3 +102,4 @@ 62f31db544594837a71cb91a7c1e8e515c5a52e9 10.5.1 7a7da643a6e302f524e3c96c084e16db371dea90 10.5.2 569e09c61c4f0f78b5bb581b02583fc7139470d7 10.5.3 +6b128ae8e2ade0b781eb8c0f7411db3f090d26f7 11.0.0rc0 diff -r faea18a26188 -r b71d6235fa01 CHANGELOG --- a/CHANGELOG Mon Feb 06 18:56:14 2023 +0400 +++ b/CHANGELOG Fri Feb 24 19:44:10 2023 +0400 @@ -4,23 +4,44 @@ 11.0.0 - in progress -------------------- + * packaging: list all contributors in debian/copyright + * packaging: run lintian on .deb packages built on our CI + +topic (1.0.0) + + * topic: make hg split preserve topic namespace + +11.0.0rc0 -- 2023-02-07 +----------------------- + * deprecate evolve.serveronly extension, evolve extension is recommended for all users, clients and servers * fixup: support `hg abort` * evolve, pick, fixup: support `hg continue` + * evolve: stop preserving all of {extras} for uninterrupted evolve operations + * evolve: don't embed graft data when completing interrupted evolve + operations + * prune: pruning (without any successors) an already obsolete revision will no longer give a false warning about divergence * evolve: use detailed exit codes for most commands (enabled with `ui.detailed-exit-code=yes`) -topic (1.0.0) +topic (1.0.0rc0) * deprecate serverminitopic extension, topic extension is recommended for all users, clients and servers + * topic namespaces: introduce `hg debug-topic-namespace`, `hg + debug-topic-namespaces`, `hg debug-parse-fqbn`, `hg debug-format-fqbn` + commands, `{topic_namespace}` and `{fqbn}` template keywords, + `topicnamespace()` revset predicate + * topic namespaces: implement exchange, including limited compatibility with + older versions of hg and topic extension + * topic: allow Unicode word characters in topic names * topic: use detailed exit codes for most commands (enabled with diff -r faea18a26188 -r b71d6235fa01 README.rst --- a/README.rst Mon Feb 06 18:56:14 2023 +0400 +++ b/README.rst Fri Feb 24 19:44:10 2023 +0400 @@ -227,7 +227,7 @@ * make sure there is no code difference between the compatibility branches and stable (no diff within hgext3rd/), -* update the ``testedwith`` variable for all extensions (remove '.dev'): +* update the ``testedwith`` variable for all extensions (remove '.dev0'): - hgext3rd/evolve/metadata.py - hgext3rd/topic/__init__.py @@ -264,7 +264,7 @@ * make an announcement on evolve-testers@mercurial-scm.org and mercurial@mercurial-scm.org, -* bump versions of all extensions and add ``.dev`` (see existing commits as an +* bump versions of all extensions and add ``.dev0`` (see existing commits as an example): - hgext3rd/evolve/metadata.py @@ -273,7 +273,7 @@ Version bump rules: - - stable branch x.y.z+1.dev - - default branch x.y+1.0.dev + - stable branch x.y.z+1.dev0 + - default branch x.y+1.0.dev0 * merge stable into default. diff -r faea18a26188 -r b71d6235fa01 debian/changelog --- a/debian/changelog Mon Feb 06 18:56:14 2023 +0400 +++ b/debian/changelog Fri Feb 24 19:44:10 2023 +0400 @@ -1,3 +1,9 @@ +mercurial-evolve (11.0.0rc0-1) unstable; urgency=medium + + * new upstream release + + -- Anton Shestakov Tue, 07 Feb 2023 17:50:03 +0400 + mercurial-evolve (10.5.3-1) unstable; urgency=medium * new upstream release diff -r faea18a26188 -r b71d6235fa01 debian/copyright --- a/debian/copyright Mon Feb 06 18:56:14 2023 +0400 +++ b/debian/copyright Fri Feb 24 19:44:10 2023 +0400 @@ -6,7 +6,93 @@ Copyright: 2011—2022 Pierre-Yves David Anton Shestakov - and others + Pulkit Goyal <7895pulkit@gmail.com> + Boris Feld + Greg Ward + Sushil khanchi + Martin von Zweigbergk + Raphaël Gomès + Laurent Charignon + Augie Fackler + Matt Harbison + Patrick Mezard + Alain Leufroy + Manuel Jacob + Jordi Gutiérrez Hermoso + Arne Babenhauserheide + Kyle Lippincott + Nicolas Chauvat + Denis Laxalde + Taapas Agrawal + David Douard + Aurelien Campeas + FUJIWARA Katsunori + Ryan McElroy + Joerg Sonnenberger + Philippe Pepiot + Durham Goode + Sean Farley + Chuck Tuffli + James Reynolds + Siddharth Agarwal + Kostia Balytskyi + Simon Sapin + Ian Moody + Josef 'Jeff' Sipek + Juntao Li + Levi Bard + Rodrigo Damazio + Yuya Nishihara + Shubhanshu Agrawal + Olivia Mackall + Simon Farnsworth + James Reynolds + timeless@gmail.com + Olle Lundberg + Martijn Pieters + willstott101@gmail.com + Julien Cristau + Dan Villiom Podlaski Christiansen + Andrew Halberstadt + Georges Racinet + Tyrone Nicholas + David Soria Parra + Brendan Cully + Jun Wu + Yohann Rebattu + timeless@mozdev.org + Sangeet Kumar Mishra + anatoly techtonik + Jeroen Vaelen + Sietse Brouwer + Faheem Mitha + Stanislau Hlebik + Benoit Allard + kevpeng@google.com + Gregory Szorc + Denis Laxalde + Eric Spishak-Thomas + Rodrigo Damazio Bovendorp + André Sintzoff + Damien Garaud + Gerald Squelart + Valentin Gatien-Baron + Matt DeVore + Nathan Goldbaum + Aay Jay Chan + Luke Granger-Brown + Ludovic Chabant + Andrew Fischer + Angel Ezquerra + Arun Kulshreshtha + Eric Spishak-Thomas + Pacien Tran-Girard + Octobus SCOP RL + . + 2010-2011 Benoit Boissinot + Peter Arrenbrecht + Patrick Mezard + Logilab SA License: GPL-2+ Files: debian/* @@ -24,6 +110,27 @@ Logilab SA License: GPL-2+ +Files: docs/static/logo-evolve.svg +Copyright: + 2008 Cali Mastny and Olivia Mackall +License: GPL-2.0 + +Files: hgext3rd/evolve/thirdparty/cbor.py +Copyright: + 2014-2015 Brian Olson +License: Apache-2.0 + +Files: docs/tutorial/uikit.js +Copyright: + 2013-2020 YOOtheme GmbH, getuikit.com +License: Expat + +Files: docs/tutorial/jquery.sticky-kit.js +Copyright: + 2013—2015 Leaf Corcoran +Comment: The next upstream version has been relicensed as MIT/Expat +License: WTFPL + 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 @@ -42,8 +149,42 @@ On Debian systems, the complete text of the GNU General Public License version 2 can be found in ‘/usr/share/common-licenses/GPL-2’. -This software may be used and distributed according to the terms of the GNU -General Public License version 2 or any later version. +License: Expat + 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. -On Debian systems, the complete text of the GNU General Public License version -2 can be found in `/usr/share/common-licenses/GPL-2'. +License: WTFPL + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + . + Copyright (C) 2004 Sam Hocevar + . + Everyone is permitted to copy and distribute verbatim or modified + copies of this license document, and changing it is allowed as long + as the name is changed. + . + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + . + 0. You just DO WHAT THE FUCK YOU WANT TO. + +License: GPL-2.0 + See /usr/share/common-licenses/GPL-2. + +License: Apache-2.0 + See /usr/share/common-licenses/Apache-2.0 diff -r faea18a26188 -r b71d6235fa01 hgext3rd/evolve/metadata.py --- a/hgext3rd/evolve/metadata.py Mon Feb 06 18:56:14 2023 +0400 +++ b/hgext3rd/evolve/metadata.py Fri Feb 24 19:44:10 2023 +0400 @@ -5,7 +5,7 @@ # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. -__version__ = b'11.0.0.dev' +__version__ = b'11.0.0.dev0' testedwith = b'4.8 4.9 5.0 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6.0 6.1 6.2 6.3' minimumhgversion = b'4.8' buglink = b'https://bz.mercurial-scm.org/' diff -r faea18a26188 -r b71d6235fa01 hgext3rd/topic/__init__.py --- a/hgext3rd/topic/__init__.py Mon Feb 06 18:56:14 2023 +0400 +++ b/hgext3rd/topic/__init__.py Fri Feb 24 19:44:10 2023 +0400 @@ -233,7 +233,7 @@ b'log.topic': b'green_background', } -__version__ = b'1.0.0.dev' +__version__ = b'1.0.0.dev0' testedwith = b'4.8 4.9 5.0 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6.0 6.1 6.2 6.3' minimumhgversion = b'4.8' @@ -470,7 +470,7 @@ try: evolve = extensions.find(b'evolve') extensions.wrapfunction(evolve.rewriteutil, "presplitupdate", - presplitupdatetopic) + wrappresplitupdate) except (KeyError, AttributeError): pass @@ -786,25 +786,25 @@ @templatekeyword(b'topic', requires={b'ctx'}) def topickw(context, mapping): - """:topic: String. The topic of the changeset""" + """String. The topic of the changeset""" ctx = context.resource(mapping, b'ctx') return ctx.topic() @templatekeyword(b'topicidx', requires={b'ctx'}) def topicidxkw(context, mapping): - """:topicidx: Integer. Index of the changeset as a stack alias""" + """Integer. Index of the changeset as a stack alias""" ctx = context.resource(mapping, b'ctx') return ctx.topicidx() @templatekeyword(b'topic_namespace', requires={b'ctx'}) def topicnamespacekw(context, mapping): - """:topic_namespace: String. The topic namespace of the changeset""" + """String. The topic namespace of the changeset""" ctx = context.resource(mapping, b'ctx') return ctx.topic_namespace() @templatekeyword(b'fqbn', requires={b'ctx'}) def fqbnkw(context, mapping): - """:fqbn: String. The branch//namespace/topic of the changeset""" + """String. The branch//namespace/topic of the changeset""" ctx = context.resource(mapping, b'ctx') return ctx.fqbn() @@ -1604,9 +1604,12 @@ ## preserve topic during split -def presplitupdatetopic(original, repo, ui, prev, ctx): +def wrappresplitupdate(original, repo, ui, prev, ctx): # Save topic of revision + tns = None topic = None + if util.safehasattr(ctx, 'topic_namespace'): + tns = ctx.topic_namespace() if util.safehasattr(ctx, 'topic'): topic = ctx.topic() @@ -1614,6 +1617,8 @@ original(repo, ui, prev, ctx) # Restore the topic if need + if tns: + _changecurrenttns(repo, tns) if topic: _changecurrenttopic(repo, topic) diff -r faea18a26188 -r b71d6235fa01 hgext3rd/topic/revset.py --- a/hgext3rd/topic/revset.py Mon Feb 06 18:56:14 2023 +0400 +++ b/hgext3rd/topic/revset.py Fri Feb 24 19:44:10 2023 +0400 @@ -27,7 +27,7 @@ namespaces of the given changesets. Without the argument, all changesets with any non-default topic namespace. - Pattern matching is supported for `string`. See + Pattern matching is supported for `string`. See :hg:`help revisions.patterns`. """ args = revset.getargs(x, 0, 1, b'topicnamespace takes one or no arguments') @@ -73,7 +73,7 @@ """All changesets with the specified topic or the topics of the given changesets. Without the argument, all changesets with any topic specified. - Pattern matching is supported for `string`. See + Pattern matching is supported for `string`. See :hg:`help revisions.patterns`. """ args = revset.getargs(x, 0, 1, b'topic takes one or no arguments') diff -r faea18a26188 -r b71d6235fa01 tests/test-split.t --- a/tests/test-split.t Mon Feb 06 18:56:14 2023 +0400 +++ b/tests/test-split.t Fri Feb 24 19:44:10 2023 +0400 @@ -411,6 +411,8 @@ $ echo "[extensions]" >> $HGRCPATH $ echo "topic=$(echo $(dirname $TESTDIR))/hgext3rd/topic/" >> $HGRCPATH + $ hg debug-topic-namespace mynamespace + marked working directory as topic namespace: mynamespace $ hg topic mytopic marked working directory as topic: mytopic $ echo babar > babar @@ -419,8 +421,8 @@ $ hg commit -m "Works on mytopic" babar celeste --user victor active topic 'mytopic' grew its first changeset (see 'hg help topics' for more information) - $ hg log -r . - changeset: 18:cdda6d69812b + $ hg log -r . + changeset: 18:4f0e158045aa branch: double//slash tag: tip topic: mytopic @@ -429,14 +431,17 @@ summary: Works on mytopic $ hg summary - parent: 18:cdda6d69812b tip + parent: 18:4f0e158045aa tip Works on mytopic - branch: double//slash//mytopic + branch: double//slash//mynamespace/mytopic commit: (clean) update: (current) phases: 9 draft topic: mytopic + $ hg log -r . -T '{rev}: {fqbn}\n' + 18: double//slash//mynamespace/mytopic + Split it $ hg split -U << EOF @@ -470,7 +475,7 @@ Check that the topic is still here $ hg log -r "tip~1::" - changeset: 19:a12d854b94a2 + changeset: 19:d8d795e8424a branch: double//slash topic: mytopic parent: 17:db45bd0f0e52 @@ -478,7 +483,7 @@ date: Thu Jan 01 00:00:00 1970 +0000 summary: split7 - changeset: 20:98274aae3990 + changeset: 20:d6d47657e765 branch: double//slash tag: tip topic: mytopic @@ -489,11 +494,15 @@ $ hg topic * mytopic (2 changesets) + $ hg log -r "tip~1::" -T '{rev}: {fqbn}\n' + 19: double//slash//mynamespace/mytopic + 20: double//slash//mynamespace/mytopic + Check commit extras $ hg log -r "tip~1::" -T '{rev}: {join(extras, " ")}\n' - 19: branch=double//slash topic=mytopic - 20: branch=double//slash topic=mytopic + 19: branch=double//slash topic=mytopic topic-namespace=mynamespace + 20: branch=double//slash topic=mytopic topic-namespace=mynamespace Test split the first commit on a branch @@ -503,7 +512,7 @@ marked working directory as branch another-branch $ hg commit -m "To be split" $ hg log -G -l 3 - @ changeset: 21:1b89fbf4d770 + @ changeset: 21:94981e5d988e | branch: another-branch | tag: tip | topic: mytopic @@ -511,14 +520,14 @@ | date: Thu Jan 01 00:00:00 1970 +0000 | summary: To be split | - o changeset: 20:98274aae3990 + o changeset: 20:d6d47657e765 | branch: double//slash | topic: mytopic | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: split8 | - o changeset: 19:a12d854b94a2 + o changeset: 19:d8d795e8424a | branch: double//slash ~ topic: mytopic parent: 17:db45bd0f0e52 @@ -532,8 +541,8 @@ # Date 0 0 # Thu Jan 01 00:00:00 1970 +0000 # Branch another-branch - # Node ID 1b89fbf4d770c8fad85b73aada92425c00ad3a58 - # Parent 98274aae39908fc11c1cf42c381935cfbe94695e + # Node ID 94981e5d988ea23cf2b17f6c07c39edc0f174b01 + # Parent d6d47657e765570283ec03fc68836d9eb297c4b3 # EXP-Topic mytopic To be split @@ -571,7 +580,7 @@ The split changesets should be on the 'another-branch' $ hg log -G -l 3 - @ changeset: 23:492ea8acc08d + @ changeset: 23:61661257a937 | branch: another-branch | tag: tip | topic: mytopic @@ -579,15 +588,15 @@ | date: Thu Jan 01 00:00:00 1970 +0000 | summary: split10 | - o changeset: 22:35c3b7b7f830 + o changeset: 22:a05395d0b421 | branch: another-branch | topic: mytopic - | parent: 20:98274aae3990 + | parent: 20:d6d47657e765 | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: split9 | - o changeset: 20:98274aae3990 + o changeset: 20:d6d47657e765 | branch: double//slash ~ topic: mytopic user: test @@ -607,7 +616,7 @@ 0 files updated, 0 files merged, 2 files removed, 0 files unresolved $ hg log -G -l 2 - o changeset: 24:5e7c5b766d1e + o changeset: 24:cffbaf700768 | branch: yet-another-branch | tag: tip | topic: mytopic @@ -615,7 +624,7 @@ | date: Thu Jan 01 00:00:00 1970 +0000 | summary: To be split again | - @ changeset: 23:492ea8acc08d + @ changeset: 23:61661257a937 | branch: another-branch ~ topic: mytopic user: test @@ -649,7 +658,7 @@ another-branch $ hg log -G -l 2 - o changeset: 24:5e7c5b766d1e + o changeset: 24:cffbaf700768 | branch: yet-another-branch | tag: tip | topic: mytopic @@ -657,7 +666,7 @@ | date: Thu Jan 01 00:00:00 1970 +0000 | summary: To be split again | - @ changeset: 23:492ea8acc08d + @ changeset: 23:61661257a937 | branch: another-branch ~ topic: mytopic user: test @@ -728,8 +737,8 @@ # Date 0 0 # Thu Jan 01 00:00:00 1970 +0000 # Branch another-branch - # Node ID 492ea8acc08dae0fce72cc459218dba9043e0481 - # Parent 35c3b7b7f83057a63307bb44ec59aebbba33c0f1 + # Node ID 61661257a93759374255a4c05fcd9b8a78bbe399 + # Parent a05395d0b42120af8bfb222d19f01008b1342c15 # EXP-Topic mytopic split10 @@ -744,8 +753,8 @@ # Date 0 0 # Thu Jan 01 00:00:00 1970 +0000 # Branch another-branch - # Node ID 1110f02dec0746d3b0493e7a09051816f7bc3179 - # Parent 35c3b7b7f83057a63307bb44ec59aebbba33c0f1 + # Node ID e6ca7ba1372dc452769c51a56d853c8ede26d9fa + # Parent a05395d0b42120af8bfb222d19f01008b1342c15 # EXP-Topic mytopic split10 @@ -780,8 +789,8 @@ # Date 0 0 # Thu Jan 01 00:00:00 1970 +0000 # Branch another-branch - # Node ID 5aa51c542c1b03435a7b5b602a4953bbe3321511 - # Parent 35c3b7b7f83057a63307bb44ec59aebbba33c0f1 + # Node ID bb8f1c282ddf89515bd07bd63a84962ab51ac277 + # Parent a05395d0b42120af8bfb222d19f01008b1342c15 # EXP-Topic mytopic split12 diff -r faea18a26188 -r b71d6235fa01 tests/test-topic-debugcb.t --- a/tests/test-topic-debugcb.t Mon Feb 06 18:56:14 2023 +0400 +++ b/tests/test-topic-debugcb.t Fri Feb 24 19:44:10 2023 +0400 @@ -5,7 +5,6 @@ $ . "$TESTDIR/testlib/topic_setup.sh" $ cat << EOF >> $HGRCPATH - > drawdag=$RUNTESTDIR/drawdag.py > [ui] > logtemplate = [{rev}:{node|short}] {desc|firstline}\n\ > {if(bookmarks, " bookmark: {join(bookmarks,"\n bookmark:")}\n")}\