[Bug 6672] New: "bash_completion" doesn't work if "hg" is aliased with a space
https://bz.mercurial-scm.org/show_bug.cgi?id=6672 Bug ID: 6672 Summary: "bash_completion" doesn't work if "hg" is aliased with a space Product: Mercurial Version: 6.1 Hardware: All OS: All Status: UNCONFIRMED Severity: bug Priority: wish Component: Mercurial Assignee: bugzi...@mercurial-scm.org Reporter: mhent...@mozilla.com CC: mercurial-devel@mercurial-scm.org Python Version: --- To reproduce: 1. `source contrib/bash_completion` 2. `hg ver` (works, shows "verify" and "version") 3. `alias hg=" hg"` 4. `hg ver` (no results) I have a use case where the `EDITOR` environment variable needs to be set, but `hg`'s system `ui.editor` config should be prioritized over it - the workaround that I've found is to do `alias hg="EDITOR= hg"`. However, it appears to be the space in the alias that's tripping up the completion script. -- You are receiving this mail because: You are on the CC list for the bug. ___ 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 | a571d1eb
Pipeline #46483 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: a571d1eb ( https://foss.heptapod.net/mercurial/mercurial-devel/-/commit/a571d1eb007bb04d6d02ea42e3649541e33b6c93 ) Commit Message: pullbundle: fix file name in the help text It ... Commit Author: Jörg Sonnenberger ( https://foss.heptapod.net/joerg ) Pipeline #46483 ( https://foss.heptapod.net/mercurial/mercurial-devel/-/pipelines/46483 ) triggered by Administrator ( https://foss.heptapod.net/root ) had 1 failed job. Job #461248 ( https://foss.heptapod.net/mercurial/mercurial-devel/-/jobs/461248/raw ) Stage: tests Name: test-py2-rust -- 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-devel | Failed pipeline for branch/default | 4def05a1
Pipeline #46482 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: 4def05a1 ( https://foss.heptapod.net/mercurial/mercurial-devel/-/commit/4def05a165ae0d7e3d114d72d39879f1adef43b0 ) Commit Message: partial-merge: add support for `.args` config (... Commit Author: Martin von Zweigbergk ( https://foss.heptapod.net/martinvonz ) Pipeline #46482 ( https://foss.heptapod.net/mercurial/mercurial-devel/-/pipelines/46482 ) triggered by Administrator ( https://foss.heptapod.net/root ) had 1 failed job. Job #461234 ( https://foss.heptapod.net/mercurial/mercurial-devel/-/jobs/461234/raw ) Stage: tests Name: test-rhg -- 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
[Bug 6671] New: How to fix Outlook's working offline issue?
https://bz.mercurial-scm.org/show_bug.cgi?id=6671 Bug ID: 6671 Summary: How to fix Outlook's working offline issue? Product: Mercurial Version: earlier Hardware: PC OS: Windows Status: UNCONFIRMED Severity: feature Priority: wish Component: bugzilla Assignee: bugzi...@mercurial-scm.org Reporter: davidjones64...@gmail.com CC: mercurial-devel@mercurial-scm.org Python Version: --- If Outlook working offline even after you have deactivated Work Offline mode, there is most likely an issue with your Outlook configuration. The following are some of the possible causes: Outlook is unable to connect to your email server (either because your Internet connection is unreliable or because it is incorrectly configured); The credentials you used to log in to your email account are incorrect; It's possible that your Outlook profile is corrupt; try establishing a new Outlook profile to see if it resolves the issue. Outlook may be staying offline due to a third-party Outlook add-in. You may use our Add-ins Management Tool to enable/disable add-ins and figure out which one is causing the offline mode issue (available for free in Bells & Whistles for Outlook – among other things). https://www.emailsupport.us/blog/fix-outlook-working-offline-error/ -- You are receiving this mail because: You are on the CC list for the bug. ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D12398: discovery: also audit the number of queries done
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY In addition to the number of roundtrip, we now also track the number of queries we perform, this is useful to assert the tradeoff between number of roundtrip and the number of queries. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D12398 AFFECTED FILES mercurial/debugcommands.py mercurial/setdiscovery.py mercurial/treediscovery.py tests/test-setdiscovery.t CHANGE DETAILS diff --git a/tests/test-setdiscovery.t b/tests/test-setdiscovery.t --- a/tests/test-setdiscovery.t +++ b/tests/test-setdiscovery.t @@ -45,6 +45,7 @@ unpruned common: 01241442b3c2 66f7d451a68b b5714e113bc0 elapsed time: * seconds (glob) round-trips: 2 + queries: 6 heads summary: total common heads: 2 also local heads: 2 @@ -77,6 +78,7 @@ all local changesets known remotely elapsed time: * seconds (glob) round-trips: 1 + queries: 2 heads summary: total common heads: 2 also local heads: 2 @@ -109,6 +111,7 @@ all local changesets known remotely elapsed time: * seconds (glob) round-trips: 1 + queries: 1 heads summary: total common heads: 1 also local heads: 1 @@ -140,6 +143,7 @@ unpruned common: 01241442b3c2 b5714e113bc0 elapsed time: * seconds (glob) round-trips: 1 + queries: 0 heads summary: total common heads: 2 also local heads: 1 @@ -172,6 +176,7 @@ all remote heads known locally elapsed time: * seconds (glob) round-trips: 1 + queries: 3 heads summary: total common heads: 2 also local heads: 1 @@ -204,6 +209,7 @@ all remote heads known locally elapsed time: * seconds (glob) round-trips: 1 + queries: 1 heads summary: total common heads: 2 also local heads: 1 @@ -242,6 +248,7 @@ unpruned common: bebd167eb94d elapsed time: * seconds (glob) round-trips: 2 + queries: 3 heads summary: total common heads: 1 also local heads: 1 @@ -277,6 +284,7 @@ 2 total queries in *.s (glob) elapsed time: * seconds (glob) round-trips: 2 + queries: 31 heads summary: total common heads: 1 also local heads: 1 @@ -312,6 +320,7 @@ 2 total queries in *.s (glob) elapsed time: * seconds (glob) round-trips: 2 + queries: 32 heads summary: total common heads: 1 also local heads: 0 @@ -343,6 +352,7 @@ unpruned common: 66f7d451a68b bebd167eb94d elapsed time: * seconds (glob) round-trips: 4 + queries: 5 heads summary: total common heads: 1 also local heads: 0 @@ -378,6 +388,7 @@ 2 total queries in *.s (glob) elapsed time: * seconds (glob) round-trips: 2 + queries: 3 heads summary: total common heads: 1 also local heads: 0 @@ -413,6 +424,7 @@ 2 total queries in *.s (glob) elapsed time: * seconds (glob) round-trips: 2 + queries: 3 heads summary: total common heads: 1 also local heads: 0 @@ -450,6 +462,7 @@ unpruned common: 2dc09a01254d elapsed time: * seconds (glob) round-trips: 4 + queries: 5 heads summary: total common heads: 1 also local heads: 1 @@ -485,6 +498,7 @@ 2 total queries in *.s (glob) elapsed time: * seconds (glob) round-trips: 2 + queries: 31 heads summary: total common heads: 1 also local heads: 1 @@ -520,6 +534,7 @@ 2 total queries in *.s (glob) elapsed time: * seconds (glob) round-trips: 2 + queries: 32 heads summary: total common heads: 1 also local heads: 0 @@ -551,6 +566,7 @@ unpruned common: 2dc09a01254d 66f7d451a68b elapsed time: * seconds (glob) round-trips: 4 + queries: 5 heads summary: total common heads: 1 also local heads: 0 @@ -586,6 +602,7 @@ 2 total queries in *.s (glob) elapsed time: * seconds (glob) round-trips: 2 + queries: 30 heads summary:
D12399: perf-util: add a `compare-discovery-case` script
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This script run the same discovery case using multiple variants of the algorithm and report differences in behavior, especially regarding the numbers of roundtrip. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D12399 AFFECTED FILES contrib/perf-utils/compare-discovery-case CHANGE DETAILS diff --git a/contrib/perf-utils/compare-discovery-case b/contrib/perf-utils/compare-discovery-case new file mode 100644 --- /dev/null +++ b/contrib/perf-utils/compare-discovery-case @@ -0,0 +1,183 @@ +#!/usr/bin/env python3 +# compare various algorithm variants for a givent case +# +# search-discovery-case REPO LOCAL_CASE REMOTE_CASE +# +# The description for the case input use the same format at the ouput of +# search-discovery-case + +import json +import os +import subprocess +import sys + +this_script = os.path.abspath(sys.argv[0]) +script_name = os.path.basename(this_script) +this_dir = os.path.dirname(this_script) +hg_dir = os.path.join(this_dir, '..', '..') +HG_REPO = os.path.normpath(hg_dir) +HG_BIN = os.path.join(HG_REPO, 'hg') + + +SUBSET_PATH = os.path.join(HG_REPO, 'contrib', 'perf-utils', 'subsetmaker.py') + +CMD_BASE = ( +HG_BIN, +'debugdiscovery', +'--template', +'json', +'--config', +'extensions.subset=%s' % SUBSET_PATH, +) + +# --old +# --nonheads +# +# devel.discovery.exchange-heads=True +# devel.discovery.grow-sample=True +# devel.discovery.grow-sample.dynamic=True + +VARIANTS = { +'tree-discovery': ('--old',), +'set-discovery-basic': ( +'--config', +'devel.discovery.exchange-heads=no', +'--config', +'devel.discovery.grow-sample=no', +'--config', +'devel.discovery.grow-sample.dynamic=no', +'--config', +'devel.discovery.randomize=yes', +), +'set-discovery-heads': ( +'--config', +'devel.discovery.exchange-heads=yes', +'--config', +'devel.discovery.grow-sample=no', +'--config', +'devel.discovery.grow-sample.dynamic=no', +'--config', +'devel.discovery.randomize=yes', +), +'set-discovery-grow-sample': ( +'--config', +'devel.discovery.exchange-heads=yes', +'--config', +'devel.discovery.grow-sample=yes', +'--config', +'devel.discovery.grow-sample.dynamic=no', +'--config', +'devel.discovery.randomize=yes', +), +'set-discovery-dynamic-sample': ( +'--config', +'devel.discovery.exchange-heads=yes', +'--config', +'devel.discovery.grow-sample=yes', +'--config', +'devel.discovery.grow-sample.dynamic=yes', +'--config', +'devel.discovery.randomize=yes', +), +'set-discovery-default': ( +'--config', +'devel.discovery.randomize=yes', +), +} + +VARIANTS_KEYS = [ +'tree-discovery', +'set-discovery-basic', +'set-discovery-heads', +'set-discovery-grow-sample', +'set-discovery-dynamic-sample', +'set-discovery-default', +] + +assert set(VARIANTS.keys()) == set(VARIANTS_KEYS) + + +def format_case(case): +return '-'.join(str(s) for s in case) + + +def to_revsets(case): +t = case[0] +if t == 'scratch': +return 'not scratch(all(), %d, "%d")' % (case[1], case[2]) +elif t == 'randomantichain': +return '::randomantichain(all(), "%d")' % case[1] +elif t == 'rev': +return '::%d' % case[1] +else: +assert False + + +def compare(repo, local_case, remote_case): +case = (repo, local_case, remote_case) +for variant in VARIANTS_KEYS: +res = process(case, VARIANTS[variant]) +revs = res["nb-revs"] +local_heads = res["nb-head-local"] +common_heads = res["nb-common-heads"] +roundtrips = res["total-roundtrips"] +queries = res["total-queries"] +if 'tree-discovery' in variant: +print( +repo, +format_case(local_case), +format_case(remote_case), +variant, +roundtrips, +queries, +revs, +local_heads, +common_heads, +) +else: +undecided_common = res["nb-ini_und-common"] +undecided_missing = res["nb-ini_und-missing"] +undecided = undecided_common + undecided_missing +print( +repo, +format_case(local_case), +format_case(remote_case), +variant, +roundtrips, +queries, +revs, +local_heads, +common_heads, +undecided, +undecided_common, +undecided_missing, +) +return 0 +
D12397: search-discovery-case: display more information about the interresting case
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY We display information about the total number of revs and the common/missing numbers. This is useful to spot the interresting case. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D12397 AFFECTED FILES contrib/perf-utils/search-discovery-case CHANGE DETAILS diff --git a/contrib/perf-utils/search-discovery-case b/contrib/perf-utils/search-discovery-case --- a/contrib/perf-utils/search-discovery-case +++ b/contrib/perf-utils/search-discovery-case @@ -147,13 +147,23 @@ roundtrips = res["total-roundtrips"] if roundtrips <= 1: return None +total_rev = res["nb-revs"] +common_rev = res["nb-revs-common"] +missing_rev = res["nb-revs-missing"] undecided_common = res["nb-ini_und-common"] undecided_missing = res["nb-ini_und-missing"] if undecided_common == 0: return None if undecided_missing == 0: return None -return (roundtrips, undecided_common, undecided_missing) +return ( +roundtrips, +undecided_common, +undecided_missing, +total_rev, +common_rev, +missing_rev, +) def end(*args, **kwargs): 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
D12396: subsetmaker: rework the antichain generation to be usable
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY Before this, antichain computation can run for 10s of hours without completion in sight. We use a more direct approach in the computation to keep the computation in complexity in check. With good result. We can now have a full antichain computation on mozilla-try in about one minute. Which is usable. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D12396 AFFECTED FILES contrib/perf-utils/subsetmaker.py CHANGE DETAILS diff --git a/contrib/perf-utils/subsetmaker.py b/contrib/perf-utils/subsetmaker.py --- a/contrib/perf-utils/subsetmaker.py +++ b/contrib/perf-utils/subsetmaker.py @@ -159,16 +159,44 @@ else: assert False -selected = set() +cl = repo.changelog -baseset = revset.getset(repo, smartset.fullreposet(repo), x) -undecided = baseset +# We already have cheap access to the parent mapping. +# However, we need to build a mapping of the children mapping +parents = repo.changelog._uncheckedparentrevs +children_map = collections.defaultdict(list) +for r in cl: +p1, p2 = parents(r) +if p1 >= 0: +children_map[p1].append(r) +if p2 >= 0: +children_map[p2].append(r) +children = children_map.__getitem__ + +selected = set() +undecided = SortedSet(cl) while undecided: -pick = rand.choice(list(undecided)) +# while there is "undecided content", we pick a random changeset X +# and we remove anything in `::X + X::` from undecided content +pick = rand.choice(undecided) selected.add(pick) -undecided = repo.revs( -'%ld and not (::%ld or %ld::head())', baseset, selected, selected -) +undecided.remove(pick) + +ancestors = set(p for p in parents(pick) if p in undecided) +descendants = set(c for c in children(pick) if c in undecided) + +while ancestors: +current = ancestors.pop() +undecided.remove(current) +for p in parents(current): +if p in undecided: +ancestors.add(p) +while descendants: +current = descendants.pop() +undecided.remove(current) +for p in children(current): +if p in undecided: +ancestors.add(p) return smartset.baseset(selected) & subset 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
D12395: subsetmaker: use SortedSet for the scratch variant
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY This provides a massive speedup on wide repository with many heads. For example on mozilla-try, this move from un-usable slow to fairly instant. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D12395 AFFECTED FILES contrib/perf-utils/subsetmaker.py CHANGE DETAILS diff --git a/contrib/perf-utils/subsetmaker.py b/contrib/perf-utils/subsetmaker.py --- a/contrib/perf-utils/subsetmaker.py +++ b/contrib/perf-utils/subsetmaker.py @@ -15,6 +15,10 @@ smartset, ) +import sortedcontainers + +SortedSet = sortedcontainers.SortedSet + revsetpredicate = registrar.revsetpredicate() @@ -78,7 +82,7 @@ n = revsetlang.getinteger(n, _(b"scratch expects a number")) selected = set() -heads = set() +heads = SortedSet() children_count = collections.defaultdict(lambda: 0) parents = repo.changelog._uncheckedparentrevs @@ -102,9 +106,7 @@ for x in range(n): if not heads: break -pickable = list(heads) -pickable.sort() -pick = rand.choice(pickable) +pick = rand.choice(heads) heads.remove(pick) assert pick not in selected selected.add(pick) 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
D12394: subsetmaker: stabilize the computation of `scratch` subset
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY `heads` is set, order of the element are not deterministic and we need to stabilize that if we want to get reproducible results. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D12394 AFFECTED FILES contrib/perf-utils/subsetmaker.py CHANGE DETAILS diff --git a/contrib/perf-utils/subsetmaker.py b/contrib/perf-utils/subsetmaker.py --- a/contrib/perf-utils/subsetmaker.py +++ b/contrib/perf-utils/subsetmaker.py @@ -102,7 +102,9 @@ for x in range(n): if not heads: break -pick = rand.choice(list(heads)) +pickable = list(heads) +pickable.sort() +pick = rand.choice(pickable) heads.remove(pick) assert pick not in selected selected.add(pick) 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
D12393: hgignore: ignore .testtimes in more location
marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY See the inline comment. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D12393 AFFECTED FILES .hgignore CHANGE DETAILS diff --git a/.hgignore b/.hgignore --- a/.hgignore +++ b/.hgignore @@ -22,6 +22,8 @@ tests/artifacts/cache/big-file-churn.hg tests/.coverage* tests/.testtimes* +# the file is written in the CWD when run-tests is run. +.testtimes tests/.hypothesis tests/hypothesis-generated tests/annotated 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