[Bug 6672] New: "bash_completion" doesn't work if "hg" is aliased with a space

2022-03-22 Thread mercurial-bugs
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

2022-03-22 Thread Heptapod


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

2022-03-22 Thread Heptapod


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?

2022-03-22 Thread mercurial-bugs
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

2022-03-22 Thread marmoute (Pierre-Yves David)
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

2022-03-22 Thread marmoute (Pierre-Yves David)
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

2022-03-22 Thread marmoute (Pierre-Yves David)
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

2022-03-22 Thread marmoute (Pierre-Yves David)
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

2022-03-22 Thread marmoute (Pierre-Yves David)
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

2022-03-22 Thread marmoute (Pierre-Yves David)
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

2022-03-22 Thread marmoute (Pierre-Yves David)
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