mercurial-devel | Failed pipeline for branch/default | 973aa75e
Pipeline #29729 has failed! Project: mercurial-devel ( https://foss.heptapod.net/mercurial/mercurial-devel ) Branch: branch/default ( https://foss.heptapod.net/mercurial/mercurial-devel/-/commits/branch/default ) Commit: 973aa75e ( https://foss.heptapod.net/mercurial/mercurial-devel/-/commit/973aa75ed1dc6c5772e48bf660b55fe741ac5c6f ) Commit Message: automation: support Python 3.10 on Windows Pyt... Commit Author: Gregory Szorc ( https://foss.heptapod.net/indygreg ) Pipeline #29729 ( https://foss.heptapod.net/mercurial/mercurial-devel/-/pipelines/29729 ) triggered by Administrator ( https://foss.heptapod.net/root ) had 1 failed job. Job #269924 ( https://foss.heptapod.net/mercurial/mercurial-devel/-/jobs/269924/raw ) Stage: tests Name: windows-py3-pyox -- You're receiving this email because of your account on foss.heptapod.net. ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Will work on adding allowing merge tools to partially resolve conflicts
Hi, Just a heads up that I will work on teaching the merge machinery to call external merge tools to let them partially resolve a merge. That will require a different protocol for interacting with the merge tool. We're going to pass the merge tool 3 inputs and expect 3 possibly modified outputs, instead of just a single output the way existing merge tools work. That way they can leave conflicts in a conflict-marker-agnostic way. Let me illustrate with an example. Let's say you have this input: base: a b c d left: a2 b c d2 right: a3 b c d3 The tool now has some intelligence and decides that the conflict in the first line should be resolved with a4, but it doesn't know how to resolve the conflict in the last line. It then produces three outputs: base: a4 b c d left: a4 b c d2 right: a4 b c d3 The goal is to be able to write a language-aware merge tool that resolves whatever conflicts it can and leaves the rest for a regular merge tool (such as `meld` or `:merge3`). ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D11829: errors: use detailed exit code for RepoLookupError
martinvonz created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D11829 AFFECTED FILES mercurial/scmutil.py tests/test-bookmarks-current.t tests/test-bookmarks-pushpull.t tests/test-bookmarks.t tests/test-branch-option.t tests/test-bundle.t tests/test-commandserver.t tests/test-dispatch.t tests/test-infinitepush-ci.t tests/test-log-bookmark.t tests/test-log.t tests/test-obsolete-distributed.t tests/test-pull-r.t tests/test-remotefilelog-repack.t tests/test-revset.t tests/test-revset2.t tests/test-static-http.t tests/test-template-functions.t CHANGE DETAILS diff --git a/tests/test-template-functions.t b/tests/test-template-functions.t --- a/tests/test-template-functions.t +++ b/tests/test-template-functions.t @@ -1295,10 +1295,10 @@ -1 $ hg log -T '{revset("%d", rev + 1)}\n' -r'tip' abort: unknown revision '3' - [255] + [10] $ hg log -T '{revset("%d", rev - 1)}\n' -r'null' abort: unknown revision '-2' - [255] + [10] Invalid arguments passed to revset() diff --git a/tests/test-static-http.t b/tests/test-static-http.t --- a/tests/test-static-http.t +++ b/tests/test-static-http.t @@ -95,7 +95,7 @@ $ cd .. $ hg clone -r doesnotexist static-http://localhost:$HGPORT/remote local0 abort: unknown revision 'doesnotexist' - [255] + [10] $ hg clone -r 0 static-http://localhost:$HGPORT/remote local0 adding changesets adding manifests diff --git a/tests/test-revset2.t b/tests/test-revset2.t --- a/tests/test-revset2.t +++ b/tests/test-revset2.t @@ -870,7 +870,7 @@ $ try m (symbol 'm') abort: unknown revision 'm' - [255] + [10] $ HGPLAINEXCEPT=revsetalias $ export HGPLAINEXCEPT @@ -1061,7 +1061,7 @@ (symbol 'max') (string '$1'))) abort: unknown revision '$1' - [255] + [10] test scope of alias expansion: 'universe' is expanded prior to 'shadowall(0)', but 'all()' should never be substituted to '0()'. diff --git a/tests/test-revset.t b/tests/test-revset.t --- a/tests/test-revset.t +++ b/tests/test-revset.t @@ -306,7 +306,7 @@ (negate (symbol 'a'))) abort: unknown revision '-a' - [255] + [10] $ try é (symbol '\xc3\xa9') * set: diff --git a/tests/test-remotefilelog-repack.t b/tests/test-remotefilelog-repack.t --- a/tests/test-remotefilelog-repack.t +++ b/tests/test-remotefilelog-repack.t @@ -307,7 +307,7 @@ 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over * (glob) $ hg prefetch -r 38 abort: unknown revision '38' - [255] + [10] $ ls_l $TESTTMP/hgcache/master/packs/ | grep datapack -r--r--r-- 70 052643fdcdebbd42d7c180a651a30d46098e6fe1.datapack $ ls_l $TESTTMP/hgcache/master/packs/ | grep histpack diff --git a/tests/test-pull-r.t b/tests/test-pull-r.t --- a/tests/test-pull-r.t +++ b/tests/test-pull-r.t @@ -112,7 +112,7 @@ $ hg pull -qr missing ../repo abort: unknown revision 'missing' - [255] + [10] Pull multiple revisions with update: diff --git a/tests/test-obsolete-distributed.t b/tests/test-obsolete-distributed.t --- a/tests/test-obsolete-distributed.t +++ b/tests/test-obsolete-distributed.t @@ -570,7 +570,7 @@ added 2 changesets with 0 changes to 2 files (+1 heads) (2 other changesets obsolete on arrival) abort: cannot update to target: filtered revision '6' - [255] + [10] $ cd .. diff --git a/tests/test-log.t b/tests/test-log.t --- a/tests/test-log.t +++ b/tests/test-log.t @@ -1417,7 +1417,7 @@ $ hg log -b 're:.*' abort: unknown revision 're:.*' - [255] + [10] $ hg log -k 're:.*' $ hg log -u 're:.*' @@ -1544,7 +1544,7 @@ $ hg log -b dummy abort: unknown revision 'dummy' - [255] + [10] log -b . diff --git a/tests/test-log-bookmark.t b/tests/test-log-bookmark.t --- a/tests/test-log-bookmark.t +++ b/tests/test-log-bookmark.t @@ -189,10 +189,10 @@ $ hg log -B unknown abort: bookmark 'unknown' does not exist - [255] + [10] Shouldn't accept string-matcher syntax: $ hg log -B 're:.*' abort: bookmark 're:.*' does not exist - [255] + [10] diff --git a/tests/test-infinitepush-ci.t b/tests/test-infinitepush-ci.t --- a/tests/test-infinitepush-ci.t +++ b/tests/test-infinitepush-ci.t @@ -204,7 +204,7 @@ $ hg pull -r b4e4bce660512ad3e71189e14588a70ac8e31fef pulling from $TESTTMP/repo abort: unknown revision 'b4e4bce660512ad3e71189e14588a70ac8e31fef' - [255] + [10] $ hg glog o 1:6cb0989601f1 added a | public diff --git a/tests/test-dispatch.t b/tests/test-dispatch.t --- a/tests/test-dispatch.t +++ b/tests/test-dispatch.t @@ -127,20 +127,20 @@ #if no-chg $ HGPLAIN=+strictflags hg log -b --config='hooks.pre-log=false' default abort: unknown revision '--config=hooks.pre-log=false' - [255] + [10] $ HGPLAIN=+strictflags hg log -b -R. default abort: unknown revision '-R.' - [255]
D11824: errors: return more detailed errors when failing to parse or apply patch
martinvonz created this revision. Herald added a reviewer: durin42. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This patch adds subclasses of `PatchError` so we can distinguish between failure to parse a patch from failure to apply it. It updates the callers to raise either `InputError` or `StateError` depending on which type of error occurred. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D11824 AFFECTED FILES mercurial/cmdutil.py mercurial/error.py mercurial/patch.py tests/test-commit-interactive.t tests/test-import-bypass.t tests/test-import-git.t tests/test-import-unknown.t tests/test-import.t tests/test-narrow-expanddirstate.t CHANGE DETAILS diff --git a/tests/test-narrow-expanddirstate.t b/tests/test-narrow-expanddirstate.t --- a/tests/test-narrow-expanddirstate.t +++ b/tests/test-narrow-expanddirstate.t @@ -142,7 +142,7 @@ Hunk #1 FAILED at 0 1 out of 1 hunks FAILED -- saving rejects to file patchdir/f3.rej abort: patch failed to apply - [255] + [20] $ hg tracked | grep patchdir [1] $ hg files | grep patchdir > /dev/null diff --git a/tests/test-import.t b/tests/test-import.t --- a/tests/test-import.t +++ b/tests/test-import.t @@ -234,7 +234,7 @@ $ hg --cwd b import -mpatch ../broken.patch applying ../broken.patch abort: bad hunk #1 - [255] + [10] $ rm -r b hg -R repo import @@ -834,7 +834,7 @@ Hunk #1 FAILED at 0 1 out of 1 hunks FAILED -- saving rejects to file a.rej abort: patch failed to apply - [255] + [20] $ hg import --no-commit -v fuzzy-tip.patch applying fuzzy-tip.patch patching file a @@ -853,7 +853,7 @@ Hunk #1 FAILED at 0 1 out of 1 hunks FAILED -- saving rejects to file a.rej abort: patch failed to apply - [255] + [20] $ hg up -qC $ hg import --config patch.fuzz=2 --exact fuzzy-reparent.patch applying fuzzy-reparent.patch @@ -2054,7 +2054,7 @@ (use '--prefix' to apply patch relative to the current directory) 1 out of 1 hunks FAILED -- saving rejects to file file1.rej abort: patch failed to apply - [255] + [20] test import crash (issue5375) $ cd .. @@ -2064,7 +2064,7 @@ applying patch from stdin a not tracked! abort: source file 'a' does not exist - [255] + [20] test immature end of hunk @@ -2076,7 +2076,7 @@ > EOF applying patch from stdin abort: bad hunk #1: incomplete hunk - [255] + [10] $ hg import - <<'EOF' > diff --git a/foo b/foo @@ -2087,4 +2087,4 @@ > EOF applying patch from stdin abort: bad hunk #1: incomplete hunk - [255] + [10] diff --git a/tests/test-import-unknown.t b/tests/test-import-unknown.t --- a/tests/test-import-unknown.t +++ b/tests/test-import-unknown.t @@ -29,7 +29,7 @@ file added already exists 1 out of 1 hunks FAILED -- saving rejects to file added.rej abort: patch failed to apply - [255] + [20] Test modifying an unknown file @@ -41,7 +41,7 @@ $ hg import --no-commit ../unknown.diff applying ../unknown.diff abort: cannot patch changed: file is not tracked - [255] + [20] Test removing an unknown file @@ -54,7 +54,7 @@ $ hg import --no-commit ../unknown.diff applying ../unknown.diff abort: cannot patch removed: file is not tracked - [255] + [20] Test copying onto an unknown file @@ -64,6 +64,6 @@ $ hg import --no-commit ../unknown.diff applying ../unknown.diff abort: cannot create copied: destination already exists - [255] + [20] $ cd .. diff --git a/tests/test-import-git.t b/tests/test-import-git.t --- a/tests/test-import-git.t +++ b/tests/test-import-git.t @@ -519,7 +519,7 @@ > EOF applying patch from stdin abort: could not decode "binary2" binary patch: bad base85 character at position 6 - [255] + [10] $ hg revert -aq $ hg import -d "100 0" -m rename-as-binary - <<"EOF" @@ -534,7 +534,7 @@ > EOF applying patch from stdin abort: "binary2" length is 5 bytes, should be 6 - [255] + [10] $ hg revert -aq $ hg import -d "100 0" -m rename-as-binary - <<"EOF" @@ -548,7 +548,7 @@ > EOF applying patch from stdin abort: could not extract "binary2" binary data - [255] + [10] Simulate a copy/paste turning LF into CRLF (issue2870) @@ -748,7 +748,7 @@ > EOF applying patch from stdin abort: cannot create b: destination already exists - [255] + [20] $ cat b b @@ -768,7 +768,7 @@ cannot create b: destination already exists 1 out of 1 hunks FAILED -- saving rejects to file b.rej abort: patch failed to apply - [255] + [20] $ cat b b @@ -791,7 +791,7 @@ Hunk #1 FAILED at 0 1 out of 1 hunks FAILED -- saving rejects to file linkb.rej abort: patch failed to apply - [255] + [20] $ hg st ? b.rej ? linkb.rej diff --git a/tests/test-import-bypass.t b/tests/test-import-bypass.t --- a/tests/test-import-bypass.t +++
D11830: errors: use detailed exit code in pathauditor
martinvonz created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D11830 AFFECTED FILES mercurial/pathutil.py tests/test-audit-path.t tests/test-audit-subrepo.t tests/test-commit.t tests/test-import.t tests/test-rename.t tests/test-walk.t CHANGE DETAILS diff --git a/tests/test-walk.t b/tests/test-walk.t --- a/tests/test-walk.t +++ b/tests/test-walk.t @@ -299,10 +299,10 @@ f mammals/skunk skunk $ hg debugwalk -v .hg abort: path 'mammals/.hg' is inside nested repo 'mammals' - [255] + [10] $ hg debugwalk -v ../.hg abort: path contains illegal component: .hg - [255] + [10] $ cd .. $ hg debugwalk -v -Ibeans @@ -410,16 +410,16 @@ [255] $ hg debugwalk -v .hg abort: path contains illegal component: .hg - [255] + [10] $ hg debugwalk -v beans/../.hg abort: path contains illegal component: .hg - [255] + [10] $ hg debugwalk -v beans/../.hg/data abort: path contains illegal component: .hg/data - [255] + [10] $ hg debugwalk -v beans/.hg abort: path 'beans/.hg' is inside nested repo 'beans' - [255] + [10] Test explicit paths and excludes: diff --git a/tests/test-rename.t b/tests/test-rename.t --- a/tests/test-rename.t +++ b/tests/test-rename.t @@ -610,7 +610,7 @@ $ hg rename d1/d11/a1 .hg/foo abort: path contains illegal component: .hg/foo - [255] + [10] $ hg status -C $ hg rename d1/d11/a1 ../foo abort: ../foo not under root '$TESTTMP' @@ -620,7 +620,7 @@ $ mv d1/d11/a1 .hg/foo $ hg rename --after d1/d11/a1 .hg/foo abort: path contains illegal component: .hg/foo - [255] + [10] $ hg status -C ! d1/d11/a1 $ hg update -C @@ -629,11 +629,11 @@ $ hg rename d1/d11/a1 .hg abort: path contains illegal component: .hg/a1 - [255] + [10] $ hg --config extensions.largefiles= rename d1/d11/a1 .hg The fsmonitor extension is incompatible with the largefiles extension and has been disabled. (fsmonitor !) abort: path contains illegal component: .hg/a1 - [255] + [10] $ hg status -C $ hg rename d1/d11/a1 .. abort: ../a1 not under root '$TESTTMP' @@ -647,7 +647,7 @@ $ mv d1/d11/a1 .hg $ hg rename --after d1/d11/a1 .hg abort: path contains illegal component: .hg/a1 - [255] + [10] $ hg status -C ! d1/d11/a1 $ hg update -C @@ -656,7 +656,7 @@ $ (cd d1/d11; hg rename ../../d2/b ../../.hg/foo) abort: path contains illegal component: .hg/foo - [255] + [10] $ hg status -C $ (cd d1/d11; hg rename ../../d2/b ../../../foo) abort: ../../../foo not under root '$TESTTMP' diff --git a/tests/test-import.t b/tests/test-import.t --- a/tests/test-import.t +++ b/tests/test-import.t @@ -1085,7 +1085,7 @@ > EOF applying patch from stdin abort: path contains illegal component: ../outside/foo - [255] + [10] $ cd .. diff --git a/tests/test-commit.t b/tests/test-commit.t --- a/tests/test-commit.t +++ b/tests/test-commit.t @@ -665,7 +665,7 @@ #else $ hg co --clean tip abort: path contains illegal component: .h\xe2\x80\x8cg/hgrc (esc) - [255] + [10] #endif $ hg rollback -f @@ -686,7 +686,7 @@ $ "$PYTHON" evil-commit.py $ hg co --clean tip abort: path contains illegal component: HG~1/hgrc - [255] + [10] $ hg rollback -f repository tip rolled back to revision 2 (undo commit) @@ -706,7 +706,7 @@ $ "$PYTHON" evil-commit.py $ hg co --clean tip abort: path contains illegal component: HG8B6C~2/hgrc - [255] + [10] $ cd .. diff --git a/tests/test-audit-subrepo.t b/tests/test-audit-subrepo.t --- a/tests/test-audit-subrepo.t +++ b/tests/test-audit-subrepo.t @@ -10,7 +10,7 @@ $ echo 'sub/.hg = sub/.hg' >> .hgsub $ hg ci -qAm 'add subrepo "sub/.hg"' abort: path 'sub/.hg' is inside nested repo 'sub' - [255] + [10] prepare tampered repo (including the commit above): @@ -34,7 +34,7 @@ $ hg clone -q hgname hgname2 abort: path 'sub/.hg' is inside nested repo 'sub' - [255] + [10] Test absolute path -- @@ -47,7 +47,7 @@ $ echo '/sub = sub' >> .hgsub $ hg ci -qAm 'add subrepo "/sub"' abort: path contains illegal component: /sub - [255] + [10] prepare tampered repo (including the commit above): @@ -71,7 +71,7 @@ $ hg clone -q absolutepath absolutepath2 abort: path contains illegal component: /sub - [255] + [10] Test root path -- @@ -84,7 +84,7 @@ $ echo '/ = sub' >> .hgsub $ hg ci -qAm 'add subrepo "/"' abort: path ends in directory separator: / - [255] + [10] prepare tampered repo (including the commit above): @@ -108,7 +108,7 @@ $ hg clone -q rootpath rootpath2 abort: path ends in directory separator: / - [255] + [10] Test empty path --- @@ -197,7 +197,7 @@ $ echo '../sub = ../sub' >> .hgsub $ hg ci -qAm 'add subrepo "../sub"'
D11831: errors: use detailed error for invalid commit-extras argument
martinvonz created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D11831 AFFECTED FILES hgext/commitextras.py tests/test-commit.t CHANGE DETAILS diff --git a/tests/test-commit.t b/tests/test-commit.t --- a/tests/test-commit.t +++ b/tests/test-commit.t @@ -134,13 +134,13 @@ $ hg add quux $ hg commit -m "adding internal used extras" --extra amend_source=hash abort: key 'amend_source' is used internally, can't be set manually - [255] + [10] $ hg commit -m "special chars in extra" --extra id@phab=214 abort: keys can only contain ascii letters, digits, '_' and '-' - [255] + [10] $ hg commit -m "empty key" --extra =value abort: unable to parse '=value', keys can't be empty - [255] + [10] $ hg commit -m "adding extras" --extra sourcehash=foo --extra oldhash=bar $ hg log -r . -T '{extras % "{extra}\n"}' branch=default diff --git a/hgext/commitextras.py b/hgext/commitextras.py --- a/hgext/commitextras.py +++ b/hgext/commitextras.py @@ -65,23 +65,23 @@ b"unable to parse '%s', should follow " b"KEY=VALUE format" ) -raise error.Abort(msg % raw) +raise error.InputError(msg % raw) k, v = raw.split(b'=', 1) if not k: msg = _(b"unable to parse '%s', keys can't be empty") -raise error.Abort(msg % raw) +raise error.InputError(msg % raw) if re.search(br'[^\w-]', k): msg = _( b"keys can only contain ascii letters, digits," b" '_' and '-'" ) -raise error.Abort(msg) +raise error.InputError(msg) if k in usedinternally: msg = _( b"key '%s' is used internally, can't be set " b"manually" ) -raise error.Abort(msg % k) +raise error.InputError(msg % k) inneropts['extra'][k] = v return super(repoextra, self).commit(*innerpats, **inneropts) To: martinvonz, #hg-reviewers Cc: mercurial-patches, mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D11825: patch: add hint about mangled whitespace on bad patch
martinvonz created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY One of the most common reasons that a patch doesn't apply is because its whitespace has been mangled (e.g. by their mail client or though copy). Let's provide a hint about that. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D11825 AFFECTED FILES mercurial/cmdutil.py tests/test-import-git.t tests/test-import.t CHANGE DETAILS diff --git a/tests/test-import.t b/tests/test-import.t --- a/tests/test-import.t +++ b/tests/test-import.t @@ -234,6 +234,7 @@ $ hg --cwd b import -mpatch ../broken.patch applying ../broken.patch abort: bad hunk #1 + (check that whitespace in the patch has not been mangled) [10] $ rm -r b @@ -2076,6 +2077,7 @@ > EOF applying patch from stdin abort: bad hunk #1: incomplete hunk + (check that whitespace in the patch has not been mangled) [10] $ hg import - <<'EOF' @@ -2087,4 +2089,5 @@ > EOF applying patch from stdin abort: bad hunk #1: incomplete hunk + (check that whitespace in the patch has not been mangled) [10] diff --git a/tests/test-import-git.t b/tests/test-import-git.t --- a/tests/test-import-git.t +++ b/tests/test-import-git.t @@ -519,6 +519,7 @@ > EOF applying patch from stdin abort: could not decode "binary2" binary patch: bad base85 character at position 6 + (check that whitespace in the patch has not been mangled) [10] $ hg revert -aq @@ -534,6 +535,7 @@ > EOF applying patch from stdin abort: "binary2" length is 5 bytes, should be 6 + (check that whitespace in the patch has not been mangled) [10] $ hg revert -aq @@ -548,6 +550,7 @@ > EOF applying patch from stdin abort: could not extract "binary2" binary data + (check that whitespace in the patch has not been mangled) [10] Simulate a copy/paste turning LF into CRLF (issue2870) diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -2025,7 +2025,12 @@ similarity=sim / 100.0, ) except error.PatchParseError as e: -raise error.InputError(pycompat.bytestr(e)) +raise error.InputError( +pycompat.bytestr(e), +hint=_( +b'check that whitespace in the patch has not been mangled' +), +) except error.PatchApplicationError as e: if not partial: raise error.StateError(pycompat.bytestr(e)) @@ -2086,7 +2091,12 @@ eolmode=None, ) except error.PatchParseError as e: -raise error.InputError(stringutil.forcebytestr(e)) +raise error.InputError( +stringutil.forcebytestr(e), +hint=_( +b'check that whitespace in the patch has not been mangled' +), +) except error.PatchApplicationError as e: raise error.StateError(stringutil.forcebytestr(e)) if opts.get(b'exact'): To: martinvonz, #hg-reviewers Cc: mercurial-patches, mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D11827: errors: use detailed exit code when trying to merge file outside narrowspec
martinvonz created this revision. Herald added a reviewer: durin42. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D11827 AFFECTED FILES mercurial/merge.py tests/test-narrow-merge.t tests/test-narrow-rebase.t CHANGE DETAILS diff --git a/tests/test-narrow-rebase.t b/tests/test-narrow-rebase.t --- a/tests/test-narrow-rebase.t +++ b/tests/test-narrow-rebase.t @@ -96,4 +96,4 @@ $ hg rebase -d 'desc("modify outside/f1")' rebasing 4:707c035aadb6 "conflicting outside/f1" abort: conflict in file 'outside/f1' is outside narrow clone - [255] + [20] diff --git a/tests/test-narrow-merge.t b/tests/test-narrow-merge.t --- a/tests/test-narrow-merge.t +++ b/tests/test-narrow-merge.t @@ -101,4 +101,4 @@ $ hg merge 'desc("conflicting outside/f1")' abort: conflict in file 'outside/f1' is outside narrow clone (flat !) abort: conflict in file 'outside/' is outside narrow clone (tree !) - [255] + [20] diff --git a/mercurial/merge.py b/mercurial/merge.py --- a/mercurial/merge.py +++ b/mercurial/merge.py @@ -542,7 +542,7 @@ hint=_(b'merging in the other direction may work'), ) else: -raise error.Abort( +raise error.StateError( _(b'conflict in file \'%s\' is outside narrow clone') % f ) To: martinvonz, durin42, #hg-reviewers Cc: mercurial-patches, mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D11828: errors: use detailed exit code for detected case-collision
martinvonz created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D11828 AFFECTED FILES mercurial/scmutil.py tests/test-casecollision.t CHANGE DETAILS diff --git a/tests/test-casecollision.t b/tests/test-casecollision.t --- a/tests/test-casecollision.t +++ b/tests/test-casecollision.t @@ -12,7 +12,7 @@ ? A $ hg add --config ui.portablefilenames=abort A abort: possible case-folding collision for A - [255] + [20] $ hg st A a ? A diff --git a/mercurial/scmutil.py b/mercurial/scmutil.py --- a/mercurial/scmutil.py +++ b/mercurial/scmutil.py @@ -341,7 +341,7 @@ if fl in self._loweredfiles and f not in self._dirstate: msg = _(b'possible case-folding collision for %s') % f if self._abort: -raise error.Abort(msg) +raise error.StateError(msg) self._ui.warn(_(b"warning: %s\n") % msg) self._loweredfiles.add(fl) self._newfiles.add(f) To: martinvonz, #hg-reviewers Cc: mercurial-patches, mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D11826: errors: use detailed exit code for non-integer number of diff context lines
martinvonz created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D11826 AFFECTED FILES mercurial/mdiff.py tests/test-diff-unified.t CHANGE DETAILS diff --git a/tests/test-diff-unified.t b/tests/test-diff-unified.t --- a/tests/test-diff-unified.t +++ b/tests/test-diff-unified.t @@ -46,7 +46,7 @@ $ hg diff --nodates -U foo abort: diff context lines count must be an integer, not 'foo' - [255] + [10] $ hg diff --nodates -U 2 @@ -87,7 +87,7 @@ $ hg --config diff.unified=foo diff --nodates abort: diff context lines count must be an integer, not 'foo' - [255] + [10] noprefix config and option diff --git a/mercurial/mdiff.py b/mercurial/mdiff.py --- a/mercurial/mdiff.py +++ b/mercurial/mdiff.py @@ -84,7 +84,7 @@ try: self.context = int(self.context) except ValueError: -raise error.Abort( +raise error.InputError( _(b'diff context lines count must be an integer, not %r') % pycompat.bytestr(self.context) ) To: martinvonz, #hg-reviewers Cc: mercurial-patches, mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Re: Proposing a new release calendar
Revising the calendar seems fine. I think “on or after” dates make sense, especially as release management often involves corporate contributors. > On Nov 29, 2021, at 9:58 AM, Raphaël Gomès wrote: > > This is a good point, though these are "on or around" dates, which means that > usually the next work day is the actual release day. > > We've already had a Jan 1 date since 2.0 (IIUC), so this shouldn't be too > much of a problem, though I can see going for an explicit Jan 3 or something > to clarify it. > > On 11/29/21 3:55 PM, Julien Cristau wrote: >> On Mon, Nov 22, 2021 at 11:34:19AM +0100, Raphaël Gomès wrote: >>> Hi all, >>> >>> This email is in part prompted by the previous releases' delay, but also by >>> discussions around release timing we've previously had. 6.0 is very likely >>> coming out tomorrow with a delay of 22 days due to a lot of issues with >>> Windows Python 3 support. I was going to propose to move the 6.1 release to >>> March 1st 2022 just this once, but thought about doing this more >>> permanently. >>> >>> With the relatively limited resources we have and the current calendar >>> including a release that falls right in the middle of summer where activity >>> is lowest and help is less available, I propose that we go back to 3 major >>> releases a year with the following calendar: >>> >>> Freeze date | Major Release | Minor | Minor | Minor >>> --- >>> Feb 15 | Mar 1 | Apr 1 | May 1 | Jun 1 >>> Jun 17 | Jul 1 | Aug 1 | Sep 1 | Oct 1 >>> Oct 18 | Nov 1 | Dec 1 | Jan 1 | Feb 1 >>> >>> What do you all think? >>> >> Is Jan 1 a good choice there, for even a minor release? That seems >> likely to either slip or ruin somebody's holidays... >> >> Cheers, >> Julien ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D11821: extensions: highlight the name of the faulty extensions in the error message
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This make it easier to understand the message when the extensions name is common. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D11821 AFFECTED FILES mercurial/extensions.py tests/test-bad-extension.t tests/test-dispatch.t tests/test-extension.t tests/test-largefiles-misc.t tests/test-lfs.t tests/test-qrecord.t tests/test-revset2.t CHANGE DETAILS diff --git a/tests/test-revset2.t b/tests/test-revset2.t --- a/tests/test-revset2.t +++ b/tests/test-revset2.t @@ -1601,7 +1601,7 @@ > EOF $ hg debugrevspec "custom1()" - *** failed to import extension custompredicate from $TESTTMP/custompredicate.py: intentional failure of loading extension + *** failed to import extension "custompredicate" from $TESTTMP/custompredicate.py: intentional failure of loading extension hg: parse error: unknown identifier: custom1 [10] diff --git a/tests/test-qrecord.t b/tests/test-qrecord.t --- a/tests/test-qrecord.t +++ b/tests/test-qrecord.t @@ -117,7 +117,7 @@ $ echo "mq=nonexistent" >> $HGRCPATH $ hg help qrecord - *** failed to import extension mq from nonexistent: [Errno *] * (glob) + *** failed to import extension "mq" from nonexistent: [Errno *] * (glob) hg qrecord [OPTION]... PATCH [FILE]... interactively record a new patch diff --git a/tests/test-lfs.t b/tests/test-lfs.t --- a/tests/test-lfs.t +++ b/tests/test-lfs.t @@ -40,7 +40,7 @@ > EOF $ hg config extensions - \*\*\* failed to import extension lfs from missing.py: [Errno *] $ENOENT$: 'missing.py' (glob) + \*\*\* failed to import extension "lfs" from missing.py: [Errno *] $ENOENT$: 'missing.py' (glob) abort: repository requires features unknown to this Mercurial: lfs (see https://mercurial-scm.org/wiki/MissingRequirement for more information) [255] diff --git a/tests/test-largefiles-misc.t b/tests/test-largefiles-misc.t --- a/tests/test-largefiles-misc.t +++ b/tests/test-largefiles-misc.t @@ -41,7 +41,7 @@ > EOF $ hg config extensions - \*\*\* failed to import extension largefiles from missing.py: [Errno *] $ENOENT$: 'missing.py' (glob) + \*\*\* failed to import extension "largefiles" from missing.py: [Errno *] $ENOENT$: 'missing.py' (glob) abort: repository requires features unknown to this Mercurial: largefiles (see https://mercurial-scm.org/wiki/MissingRequirement for more information) [255] diff --git a/tests/test-extension.t b/tests/test-extension.t --- a/tests/test-extension.t +++ b/tests/test-extension.t @@ -649,7 +649,7 @@ module stub. Our custom lazy importer for Python 2 always returns a stub. $ (PYTHONPATH=${PYTHONPATH}${PATHSEP}${TESTTMP}; hg --config extensions.checkrelativity=$TESTTMP/checkrelativity.py checkrelativity) || true - *** failed to import extension checkrelativity from $TESTTMP/checkrelativity.py: No module named 'extlibroot.lsub1.lsub2.notexist' (py3 !) + *** failed to import extension "checkrelativity" from $TESTTMP/checkrelativity.py: No module named 'extlibroot.lsub1.lsub2.notexist' hg: unknown command 'checkrelativity' (py3 !) (use 'hg help' for a list of commands) (py3 !) @@ -1882,7 +1882,7 @@ > EOF $ hg deprecatedcmd > /dev/null - *** failed to import extension deprecatedcmd from $TESTTMP/deprecated/deprecatedcmd.py: missing attributes: norepo, optionalrepo, inferrepo + *** failed to import extension "deprecatedcmd" from $TESTTMP/deprecated/deprecatedcmd.py: missing attributes: norepo, optionalrepo, inferrepo *** (use @command decorator to register 'deprecatedcmd') hg: unknown command 'deprecatedcmd' (use 'hg help' for a list of commands) @@ -1891,7 +1891,7 @@ the extension shouldn't be loaded at all so the mq works: $ hg qseries --config extensions.mq= > /dev/null - *** failed to import extension deprecatedcmd from $TESTTMP/deprecated/deprecatedcmd.py: missing attributes: norepo, optionalrepo, inferrepo + *** failed to import extension "deprecatedcmd" from $TESTTMP/deprecated/deprecatedcmd.py: missing attributes: norepo, optionalrepo, inferrepo *** (use @command decorator to register 'deprecatedcmd') $ cd .. @@ -1939,7 +1939,7 @@ > test_unicode_default_value = $TESTTMP/test_unicode_default_value.py > EOF $ hg -R $TESTTMP/opt-unicode-default dummy - *** failed to import extension test_unicode_default_value from $TESTTMP/test_unicode_default_value.py: unicode *'value' found in cmdtable.dummy (glob) + *** failed to import extension "test_unicode_default_value" from $TESTTMP/test_unicode_default_value.py: unicode 'value' found in cmdtable.dummy *** (use b'' to make it byte string) hg: unknown command 'dummy' (did you mean summary?) diff --git a/tests/test-dispatch.t b/tests/test-dispatch.t --- a/tests/test-dispatch.t +++ b/tests/test-dispatch.t @@ -84,7 +84,7 @@ >
D11822: extension: add a `required` suboption to enforce the use of an extensions
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY If `required` is set, failing to load an extensions will abort. See the test and documentation for details. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D11822 AFFECTED FILES mercurial/configitems.py mercurial/extensions.py mercurial/helptext/config.txt tests/test-extension.t CHANGE DETAILS diff --git a/tests/test-extension.t b/tests/test-extension.t --- a/tests/test-extension.t +++ b/tests/test-extension.t @@ -1944,3 +1944,94 @@ hg: unknown command 'dummy' (did you mean summary?) [10] + +Check the mandatory extension feature +- + + $ hg init mandatory-extensions + $ cat > $TESTTMP/mandatory-extensions/.hg/good.py << EOF + > pass + > EOF + $ cat > $TESTTMP/mandatory-extensions/.hg/bad.py << EOF + > raise RuntimeError("babar") + > EOF + $ cat > $TESTTMP/mandatory-extensions/.hg/syntax.py << EOF + > def ( + > EOF + +Check that the good one load : + + $ cat > $TESTTMP/mandatory-extensions/.hg/hgrc << EOF + > [extensions] + > good = $TESTTMP/mandatory-extensions/.hg/good.py + > EOF + + $ hg -R mandatory-extensions id + tip + +Make it mandatory to load + + $ cat >> $TESTTMP/mandatory-extensions/.hg/hgrc << EOF + > good:required = yes + > EOF + + $ hg -R mandatory-extensions id + tip + +Check that the bad one does not load + + $ cat >> $TESTTMP/mandatory-extensions/.hg/hgrc << EOF + > bad = $TESTTMP/mandatory-extensions/.hg/bad.py + > EOF + + $ hg -R mandatory-extensions id + *** failed to import extension "bad" from $TESTTMP/mandatory-extensions/.hg/bad.py: babar + tip + +Make it mandatory to load + + $ cat >> $TESTTMP/mandatory-extensions/.hg/hgrc << EOF + > bad:required = yes + > EOF + + $ hg -R mandatory-extensions id + abort: failed to import extension "bad" from $TESTTMP/mandatory-extensions/.hg/bad.py: babar + (loading of this extension was required, see `hg help config.extensions` for details) + [255] + +Make it not mandatory to load + + $ cat >> $TESTTMP/mandatory-extensions/.hg/hgrc << EOF + > bad:required = no + > EOF + + $ hg -R mandatory-extensions id + *** failed to import extension "bad" from $TESTTMP/mandatory-extensions/.hg/bad.py: babar + tip + +Same check with the syntax error one + + $ cat >> $TESTTMP/mandatory-extensions/.hg/hgrc << EOF + > bad = ! + > syntax = $TESTTMP/mandatory-extensions/.hg/syntax.py + > syntax:required = yes + > EOF + + $ hg -R mandatory-extensions id + abort: failed to import extension "syntax" from $TESTTMP/mandatory-extensions/.hg/syntax.py: invalid syntax (*syntax.py, line 1) (glob) + (loading of this extension was required, see `hg help config.extensions` for details) + [255] + +Same check with a missing one + + $ cat >> $TESTTMP/mandatory-extensions/.hg/hgrc << EOF + > syntax = ! + > syntax:required = + > missing = foo/bar/baz/I/do/not/exist/ + > missing:required = yes + > EOF + + $ hg -R mandatory-extensions id + abort: failed to import extension "missing" from foo/bar/baz/I/do/not/exist/: [Errno 2] $ENOENT$: 'foo/bar/baz/I/do/not/exist' + (loading of this extension was required, see `hg help config.extensions` for details) + [255] diff --git a/mercurial/helptext/config.txt b/mercurial/helptext/config.txt --- a/mercurial/helptext/config.txt +++ b/mercurial/helptext/config.txt @@ -850,6 +850,17 @@ # (this extension will get loaded from the file specified) myfeature = ~/.hgext/myfeature.py +If an extension fails to load, a warning will be issued, and Mercurial will +proceed. To enforce that an extension must be loaded, one can set the `required` +suboption in the config:: + + [extensions] + myfeature = ~/.hgext/myfeature.py + myfeature:required = yes + +To debug extension loading issue, one can add `--traceback` to their mercurial +invocation. + ``format`` -- diff --git a/mercurial/extensions.py b/mercurial/extensions.py --- a/mercurial/extensions.py +++ b/mercurial/extensions.py @@ -314,10 +314,23 @@ else: error_msg = _(b'failed to import extension "%s": %s') error_msg %= (name, msg) -ui.warn((b"*** %s\n") % error_msg) -if isinstance(inst, error.Hint) and inst.hint: -ui.warn(_(b"*** (%s)\n") % inst.hint) -ui.traceback() + +ext_options = ui.configsuboptions(b"extensions", name)[1] +if stringutil.parsebool(ext_options.get(b"required", b'no')): +hint = None +if isinstance(inst, error.Hint) and inst.hint: +hint = inst.hint +if hint is None: +hint = _( +b"loading of this extension was required, "
D11823: extensions: add a default "*" suboptions prefix
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This is similar to what we do in other section (e.g. `paths`) and allow to change the behavior for all extensions. Sub options on individual extensions overwrite the default settings. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D11823 AFFECTED FILES mercurial/extensions.py mercurial/helptext/config.txt tests/test-check-module-imports.t tests/test-extension.t CHANGE DETAILS diff --git a/tests/test-extension.t b/tests/test-extension.t --- a/tests/test-extension.t +++ b/tests/test-extension.t @@ -2035,3 +2035,20 @@ abort: failed to import extension "missing" from foo/bar/baz/I/do/not/exist/: [Errno 2] $ENOENT$: 'foo/bar/baz/I/do/not/exist' (loading of this extension was required, see `hg help config.extensions` for details) [255] + +Have a "default" setting for the suboption: + + $ cat > $TESTTMP/mandatory-extensions/.hg/hgrc << EOF + > [extensions] + > bad = $TESTTMP/mandatory-extensions/.hg/bad.py + > bad:required = no + > good = $TESTTMP/mandatory-extensions/.hg/good.py + > syntax = $TESTTMP/mandatory-extensions/.hg/syntax.py + > *:required = yes + > EOF + + $ hg -R mandatory-extensions id + *** failed to import extension "bad" from $TESTTMP/mandatory-extensions/.hg/bad.py: babar + abort: failed to import extension "syntax" from $TESTTMP/mandatory-extensions/.hg/syntax.py: invalid syntax (*syntax.py, line 1) (glob) + (loading of this extension was required, see `hg help config.extensions` for details) + [255] diff --git a/tests/test-check-module-imports.t b/tests/test-check-module-imports.t --- a/tests/test-check-module-imports.t +++ b/tests/test-check-module-imports.t @@ -41,4 +41,5 @@ > -X tests/test-demandimport.py \ > -X tests/test-imports-checker.t \ > -X tests/test-verify-repo-operations.py \ + > -X tests/test-extension.t \ > | sed 's-\\-/-g' | "$PYTHON" "$import_checker" - diff --git a/mercurial/helptext/config.txt b/mercurial/helptext/config.txt --- a/mercurial/helptext/config.txt +++ b/mercurial/helptext/config.txt @@ -861,6 +861,13 @@ To debug extension loading issue, one can add `--traceback` to their mercurial invocation. +A default setting can we set using the special `*` extension key:: + + [extensions] + *:required = yes + myfeature = ~/.hgext/myfeature.py + rebase= + ``format`` -- diff --git a/mercurial/extensions.py b/mercurial/extensions.py --- a/mercurial/extensions.py +++ b/mercurial/extensions.py @@ -291,6 +291,8 @@ ) ui.log(b'extension', b'- processing %d entries\n', len(result)) with util.timedcm('load all extensions') as stats: +default_sub_options = ui.configsuboptions(b"extensions", b"*")[1] + for (name, path) in result: if path: if path[0:1] == b'!': @@ -315,8 +317,10 @@ error_msg = _(b'failed to import extension "%s": %s') error_msg %= (name, msg) +options = default_sub_options.copy() ext_options = ui.configsuboptions(b"extensions", name)[1] -if stringutil.parsebool(ext_options.get(b"required", b'no')): +options.update(ext_options) +if stringutil.parsebool(options.get(b"required", b'no')): hint = None if isinstance(inst, error.Hint) and inst.hint: hint = inst.hint To: marmoute, #hg-reviewers Cc: mercurial-patches, mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D11819: extensions: ignore "sub-options" when looking for extensions
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY config suboptions are separated by ":" (see the path one for example). So we dont want to confuse these config with actual extensions. We don't have extensions sub option yet, but I am about to introduce one for making sure an extensions can load. So lets level the floor first. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D11819 AFFECTED FILES mercurial/configitems.py mercurial/extensions.py CHANGE DETAILS diff --git a/mercurial/extensions.py b/mercurial/extensions.py --- a/mercurial/extensions.py +++ b/mercurial/extensions.py @@ -282,6 +282,7 @@ result = ui.configitems(b"extensions") if whitelist is not None: result = [(k, v) for (k, v) in result if k in whitelist] +result = [(k, v) for (k, v) in result if b':' not in k] newindex = len(_order) ui.log( b'extension', diff --git a/mercurial/configitems.py b/mercurial/configitems.py --- a/mercurial/configitems.py +++ b/mercurial/configitems.py @@ -1281,7 +1281,7 @@ ) coreconfigitem( b'extensions', -b'.*', +b'[^:]*', default=None, generic=True, ) To: marmoute, #hg-reviewers Cc: mercurial-patches, mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D11820: extensions: refactor handling of loading error make it reusable
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY We will need this in the next patch. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D11820 AFFECTED FILES mercurial/extensions.py CHANGE DETAILS diff --git a/mercurial/extensions.py b/mercurial/extensions.py --- a/mercurial/extensions.py +++ b/mercurial/extensions.py @@ -307,15 +307,12 @@ except Exception as inst: msg = stringutil.forcebytestr(inst) if path: -ui.warn( -_(b"*** failed to import extension %s from %s: %s\n") -% (name, path, msg) -) +error_msg = _(b"failed to import extension %s from %s: %s") +error_msg %= (name, path, msg) else: -ui.warn( -_(b"*** failed to import extension %s: %s\n") -% (name, msg) -) +error_msg = _(b"failed to import extension %s: %s") +error_msg %= (name, msg) +ui.warn((b"*** %s\n") % error_msg) if isinstance(inst, error.Hint) and inst.hint: ui.warn(_(b"*** (%s)\n") % inst.hint) ui.traceback() To: marmoute, #hg-reviewers Cc: mercurial-patches, mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
mercurial-devel | Failed pipeline for branch/default | 7016572f
Pipeline #29714 has failed! Project: mercurial-devel ( https://foss.heptapod.net/mercurial/mercurial-devel ) Branch: branch/default ( https://foss.heptapod.net/mercurial/mercurial-devel/-/commits/branch/default ) Commit: 7016572f ( https://foss.heptapod.net/mercurial/mercurial-devel/-/commit/7016572f2b9c674a07f81fd2233e25df42c34a49 ) Commit Message: rhg: implement the debugignorerhg subcommand T... Commit Author: Arseniy Alekseyev ( https://foss.heptapod.net/aalekseyev ) Pipeline #29714 ( https://foss.heptapod.net/mercurial/mercurial-devel/-/pipelines/29714 ) triggered by Administrator ( https://foss.heptapod.net/root ) had 1 failed job. Job #269843 ( https://foss.heptapod.net/mercurial/mercurial-devel/-/jobs/269843/raw ) Stage: tests Name: windows-py3-pyox -- You're receiving this email because of your account on foss.heptapod.net. ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Re: Proposing a new release calendar
On Mon, Nov 22, 2021 at 11:34:19AM +0100, Raphaël Gomès wrote: > Hi all, > > This email is in part prompted by the previous releases' delay, but also by > discussions around release timing we've previously had. 6.0 is very likely > coming out tomorrow with a delay of 22 days due to a lot of issues with > Windows Python 3 support. I was going to propose to move the 6.1 release to > March 1st 2022 just this once, but thought about doing this more > permanently. > > With the relatively limited resources we have and the current calendar > including a release that falls right in the middle of summer where activity > is lowest and help is less available, I propose that we go back to 3 major > releases a year with the following calendar: > > Freeze date | Major Release | Minor | Minor | Minor > --- > Feb 15 | Mar 1 | Apr 1 | May 1 | Jun 1 > Jun 17 | Jul 1 | Aug 1 | Sep 1 | Oct 1 > Oct 18 | Nov 1 | Dec 1 | Jan 1 | Feb 1 > > What do you all think? > Is Jan 1 a good choice there, for even a minor release? That seems likely to either slip or ruin somebody's holidays... Cheers, Julien ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Re: Proposing a new release calendar
This is a good point, though these are "on or around" dates, which means that usually the next work day is the actual release day. We've already had a Jan 1 date since 2.0 (IIUC), so this shouldn't be too much of a problem, though I can see going for an explicit Jan 3 or something to clarify it. On 11/29/21 3:55 PM, Julien Cristau wrote: On Mon, Nov 22, 2021 at 11:34:19AM +0100, Raphaël Gomès wrote: Hi all, This email is in part prompted by the previous releases' delay, but also by discussions around release timing we've previously had. 6.0 is very likely coming out tomorrow with a delay of 22 days due to a lot of issues with Windows Python 3 support. I was going to propose to move the 6.1 release to March 1st 2022 just this once, but thought about doing this more permanently. With the relatively limited resources we have and the current calendar including a release that falls right in the middle of summer where activity is lowest and help is less available, I propose that we go back to 3 major releases a year with the following calendar: Freeze date | Major Release | Minor | Minor | Minor --- Feb 15 | Mar 1 | Apr 1 | May 1 | Jun 1 Jun 17 | Jul 1 | Aug 1 | Sep 1 | Oct 1 Oct 18 | Nov 1 | Dec 1 | Jan 1 | Feb 1 What do you all think? Is Jan 1 a good choice there, for even a minor release? That seems likely to either slip or ruin somebody's holidays... Cheers, Julien ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
mercurial-devel | Failed pipeline for branch/default | 58b4ed8b
Pipeline #29705 has failed! Project: mercurial-devel ( https://foss.heptapod.net/mercurial/mercurial-devel ) Branch: branch/default ( https://foss.heptapod.net/mercurial/mercurial-devel/-/commits/branch/default ) Commit: 58b4ed8b ( https://foss.heptapod.net/mercurial/mercurial-devel/-/commit/58b4ed8b732783b248ca0b583de8b5dce888f5a0 ) Commit Message: rhg: only complain about poorly configured fall... Commit Author: Arseniy Alekseyev ( https://foss.heptapod.net/aalekseyev ) Pipeline #29705 ( https://foss.heptapod.net/mercurial/mercurial-devel/-/pipelines/29705 ) triggered by Administrator ( https://foss.heptapod.net/root ) had 2 failed jobs. Job #269773 ( https://foss.heptapod.net/mercurial/mercurial-devel/-/jobs/269773/raw ) Stage: tests Name: windows-py3 Job #269774 ( https://foss.heptapod.net/mercurial/mercurial-devel/-/jobs/269774/raw ) Stage: tests Name: windows-py3-pyox -- You're receiving this email because of your account on foss.heptapod.net. ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Re: Proposing a new release calendar
Any thoughts (especially from the other release managers)? On 11/22/21 11:34 AM, Raphaël Gomès wrote: Hi all, This email is in part prompted by the previous releases' delay, but also by discussions around release timing we've previously had. 6.0 is very likely coming out tomorrow with a delay of 22 days due to a lot of issues with Windows Python 3 support. I was going to propose to move the 6.1 release to March 1st 2022 just this once, but thought about doing this more permanently. With the relatively limited resources we have and the current calendar including a release that falls right in the middle of summer where activity is lowest and help is less available, I propose that we go back to 3 major releases a year with the following calendar: Freeze date | Major Release | Minor | Minor | Minor --- Feb 15 | Mar 1 | Apr 1 | May 1 | Jun 1 Jun 17 | Jul 1 | Aug 1 | Sep 1 | Oct 1 Oct 18 | Nov 1 | Dec 1 | Jan 1 | Feb 1 What do you all think? Raphaël ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D11818: rhg: refactor to use IgnoreFnType alias more widely
aalekseyev created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D11818 AFFECTED FILES rust/hg-core/src/matchers.rs CHANGE DETAILS diff --git a/rust/hg-core/src/matchers.rs b/rust/hg-core/src/matchers.rs --- a/rust/hg-core/src/matchers.rs +++ b/rust/hg-core/src/matchers.rs @@ -22,6 +22,7 @@ PatternSyntax, }; +use crate::dirstate::status::IgnoreFnType; use crate::filepatterns::normalize_path_bytes; use std::borrow::ToOwned; use std::collections::HashSet; @@ -246,7 +247,7 @@ /// ``` pub struct IncludeMatcher<'a> { patterns: Vec, -match_fn: Box Fn(&'r HgPath) -> bool + 'a + Sync>, +match_fn: IgnoreFnType<'a>, /// Whether all the patterns match a prefix (i.e. recursively) prefix: bool, roots: HashSet, @@ -341,9 +342,9 @@ /// Returns the regex pattern and a function that matches an `HgPath` against /// said regex formed by the given ignore patterns. -fn build_regex_match( -ignore_patterns: &[IgnorePattern], -) -> PatternResult<(Vec, Box bool + Sync>)> { +fn build_regex_match<'a, 'b>( +ignore_patterns: &'a [IgnorePattern], +) -> PatternResult<(Vec, IgnoreFnType<'b>)> { let mut regexps = vec![]; let mut exact_set = HashSet::new(); @@ -365,10 +366,10 @@ let func = move |filename: | { exact_set.contains(filename) || matcher(filename) }; -Box::new(func) as Box bool + Sync> +Box::new(func) as IgnoreFnType } else { let func = move |filename: | exact_set.contains(filename); -Box::new(func) as Box bool + Sync> +Box::new(func) as IgnoreFnType }; Ok((full_regex, func)) @@ -479,8 +480,8 @@ /// should be matched. fn build_match<'a, 'b>( ignore_patterns: Vec, -) -> PatternResult<(Vec, Box bool + 'b + Sync>)> { -let mut match_funcs: Vec bool + Sync>> = vec![]; +) -> PatternResult<(Vec, IgnoreFnType<'b>)> { +let mut match_funcs: Vec> = vec![]; // For debugging and printing let mut patterns = vec![]; @@ -567,10 +568,7 @@ mut all_pattern_files: Vec, root_dir: , inspect_pattern_bytes: impl FnMut(&[u8]), -) -> PatternResult<( -Box Fn(&'r HgPath) -> bool + Sync + 'a>, -Vec, -)> { +) -> PatternResult<(IgnoreFnType<'a>, Vec)> { let mut all_patterns = vec![]; let mut all_warnings = vec![]; To: aalekseyev, #hg-reviewers Cc: mercurial-patches, mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
mercurial-devel | Failed pipeline for branch/default | 58b4ed8b
Pipeline #29705 has failed! Project: mercurial-devel ( https://foss.heptapod.net/mercurial/mercurial-devel ) Branch: branch/default ( https://foss.heptapod.net/mercurial/mercurial-devel/-/commits/branch/default ) Commit: 58b4ed8b ( https://foss.heptapod.net/mercurial/mercurial-devel/-/commit/58b4ed8b732783b248ca0b583de8b5dce888f5a0 ) Commit Message: rhg: only complain about poorly configured fall... Commit Author: Arseniy Alekseyev ( https://foss.heptapod.net/aalekseyev ) Pipeline #29705 ( https://foss.heptapod.net/mercurial/mercurial-devel/-/pipelines/29705 ) triggered by Administrator ( https://foss.heptapod.net/root ) had 2 failed jobs. Job #269746 ( https://foss.heptapod.net/mercurial/mercurial-devel/-/jobs/269746/raw ) Stage: tests Name: windows-py3 Job #269747 ( https://foss.heptapod.net/mercurial/mercurial-devel/-/jobs/269747/raw ) Stage: tests Name: windows-py3-pyox -- You're receiving this email because of your account on foss.heptapod.net. ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D11817: sparse: lock the store when updating requirements config
aalekseyev created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REPOSITORY rHG Mercurial BRANCH stable REVISION DETAIL https://phab.mercurial-scm.org/D11817 AFFECTED FILES mercurial/sparse.py tests/test-sparse-with-safe-share.t CHANGE DETAILS diff --git a/tests/test-sparse-with-safe-share.t b/tests/test-sparse-with-safe-share.t --- a/tests/test-sparse-with-safe-share.t +++ b/tests/test-sparse-with-safe-share.t @@ -16,10 +16,8 @@ $ echo x > hide $ hg ci -Aqm 'initial' -Verify basic --include +Regression test: checks that this command correctly locks the store +before updating the store [requirements] config. $ hg up -q 0 $ hg debugsparse --include 'hide' - devel-warn: write with no lock: "requires" at: *mercurial/scmutil.py:1558 (writerequires) (glob) - -TODO: bug in sparse when used together with safe-share^ diff --git a/mercurial/sparse.py b/mercurial/sparse.py --- a/mercurial/sparse.py +++ b/mercurial/sparse.py @@ -718,7 +718,7 @@ The new config is written out and a working directory refresh is performed. """ -with repo.wlock(), repo.dirstate.parentchange(): +with repo.wlock(), repo.lock(), repo.dirstate.parentchange(): raw = repo.vfs.tryread(b'sparse') oldinclude, oldexclude, oldprofiles = parseconfig( repo.ui, raw, b'sparse' To: aalekseyev, #hg-reviewers Cc: mercurial-patches, mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
mercurial-devel | Failed pipeline for branch/stable | e70fcc1c
Pipeline #29695 has failed! Project: mercurial-devel ( https://foss.heptapod.net/mercurial/mercurial-devel ) Branch: branch/stable ( https://foss.heptapod.net/mercurial/mercurial-devel/-/commits/branch/stable ) Commit: e70fcc1c ( https://foss.heptapod.net/mercurial/mercurial-devel/-/commit/e70fcc1c6ac7de2d29060f1b53c3abb1241971de ) Commit Message: tests: fix test-fix on NetBSD Differential Rev... Commit Author: Thomas Klausner Pipeline #29695 ( https://foss.heptapod.net/mercurial/mercurial-devel/-/pipelines/29695 ) triggered by Raphaël Gomès ( https://foss.heptapod.net/raphael.gomes ) had 4 failed jobs. Job #269681 ( https://foss.heptapod.net/mercurial/mercurial-devel/-/jobs/269681/raw ) Stage: tests Name: windows-py3 Job #269673 ( https://foss.heptapod.net/mercurial/mercurial-devel/-/jobs/269673/raw ) Stage: tests Name: test-py2-pure Job #269679 ( https://foss.heptapod.net/mercurial/mercurial-devel/-/jobs/269679/raw ) Stage: tests Name: test-py3-chg Job #269682 ( https://foss.heptapod.net/mercurial/mercurial-devel/-/jobs/269682/raw ) Stage: tests Name: windows-py3-pyox -- You're receiving this email because of your account on foss.heptapod.net. ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Mercurial mini-sprint on December 3rd
Hello users and developers of Mercurial, The next occurrence of monthly remote mini-sprints organized by Octobus will be about Mercurial itself, and is happening December 3rd. The rallying point will be the Mercurial IRC channel: https://www.mercurial-scm.org/wiki/IRC There is no fixed topic, you may bring your own, and we always have small things for drive-by contributors. Feel free to come by if you simply have questions and ideas. Our timezone is CET, or if you prefer UTC+1. Of course people from other timezones are welcome to join when they can! Looking forward to it, Raphaël ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel