Martin von Zweigbergk <martinvonz@google.com> [Mon, 11 Feb 2019 09:12:23 -0800] rev 41684
windows: use util.localpath for repo-relative paths in getuipathfn()
Now that we have a single place that translates from internal path
representation (slash-separated) to UI representation
(i.e. scmutil.getuipathfn()), let's switch that over to using
util.localpath for absolute paths. I don't expect any test impact on
Windows because we still respect ui.slash, which is set by the test
runner.
As Yuya pointed out,
a997163e7fae (status: extract helper for
producing relative or absolute path for UI, 2019-01-29) accidentally
changed to slash-separated paths on Windows because it used used to
use repo.pathto(f, cwd='') (which calls util.localpath()) and after
that patch it just prints the filename without any
transformation. This patch should fix that regression.
Differential Revision: https://phab.mercurial-scm.org/D5935
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Tue, 12 Feb 2019 17:10:31 -0500] rev 41683
walkchangerevs: obey allfiles parameter when taking the slow path
When walkchangerevs sees that there's a pattern, it hits the slow
path. The slow path in turn reverts to the old dumb grep behaviour of
only looking at files changed at each revision. Therefore, a command
such as
hg grep -l --all-files '.*' 'glob:**'
would show you all the nonempty files touched by the current revision.
This modifies that behaviour to look at the manifest at each revision
instead of the changed files in case that --all-files was requested.
Boris Feld <boris.feld@octobus.net> [Fri, 08 Feb 2019 18:26:35 +0100] rev 41682
test: stabilize test-wireproto-exchangev2.t flaky output
When running the test suite with multiple processes, we often get flaky
outputs, like here: https://ci.octobus.net/job/MercurialPy2/267/console
```
- received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
add changeset
cd2534766bec
add changeset
e96ae20f4188
add changeset
caa2a465451d
+ received frame(size=0; request=1; stream=2; streamflags=; type=command-response; flags=eos)
```
Instead of simply sorting the clone and pull output, I saved the output in a
separate file and checked the `received frame` messages on one side and then
the rest of the output on the other side. This way we conserve the order of
messages as it seems important.
Differential Revision: https://phab.mercurial-scm.org/D5897
Kyle Lippincott <spectral@google.com> [Mon, 04 Feb 2019 14:29:03 -0800] rev 41681
zsh: fix `hg resolve` completion when in a subdirectory (
issue6067)
Differential Revision: https://phab.mercurial-scm.org/D5836
Navaneeth Suresh <navaneeths1998@gmail.com> [Sun, 03 Feb 2019 19:10:39 +0530] rev 41680
revset: add expectsize to check the size of a set
`expectsize(<set>, <int>)` revset fails if `<set>` is not exactly `<int>`
elements. `expectsize(<set>, <min>:<max>)` revset fails if `<set>` is not
exactly between `<min>` and `<max>` inclusive.
This then allows an alias for `hg next` to be `update -r one(children(.))`
with sane failure behavior, and also makes some other scripting tasks
a little less difficult.
(Summary from WeShouldDoThat)
Differential Revision: https://phab.mercurial-scm.org/D5813
Augie Fackler <augie@google.com> [Mon, 11 Feb 2019 11:18:37 -0500] rev 41679
merge with stable
Pulkit Goyal <pulkit@yandex-team.ru> [Mon, 11 Feb 2019 15:41:08 +0300] rev 41678
branchmap: decode a label only once
This moves decoding of a label out of for loop. Minor speed up expected in cases
when one branch has multiple heads. For example: someone using bookmarks as
branches and hence ending up with multiple heads on default branch.
Differential Revision: https://phab.mercurial-scm.org/D5932
Pulkit Goyal <pulkit@yandex-team.ru> [Mon, 11 Feb 2019 15:34:35 +0300] rev 41677
branchmap: move __init__ up in branchcache class
Making __init__ the first function defined helps understanding the class much
better.
Differential Revision: https://phab.mercurial-scm.org/D5931
Martin von Zweigbergk <martinvonz@google.com> [Sat, 09 Feb 2019 22:50:53 -0800] rev 41676
match: delete unused root and cwd arguments from {always,never,exact}() (API)
Differential Revision: https://phab.mercurial-scm.org/D5930
Martin von Zweigbergk <martinvonz@google.com> [Sun, 10 Feb 2019 14:35:36 -0800] rev 41675
match: delete unused root and cwd arguments to constructors (API)
Most matchers no longer need the root and cwd
arguments. patternmatcher and includematcher still need the root
argument for subincludes.
Differential Revision: https://phab.mercurial-scm.org/D5929
Martin von Zweigbergk <martinvonz@google.com> [Sun, 10 Feb 2019 21:33:21 -0800] rev 41674
dirstate: call and cache os.getcwd() in constructor
I'm about to make scmutil.matchfiles() not pass the root and cwd paths
to match.exact(), since they no longer have any effect. That turned
out to have the surprising effect of making some tests
(test-rebase-scenario-global.t and test-removeemptydirs.t) crash when
the working directory was removed. The problem was that my patch
removed the call to repo.getcwd(), which caused the current working
directory to not be cached in the dirstate as early as it was
before. This patch fixes that by caching the current working directory
in the dirstate constructor.
Differential Revision: https://phab.mercurial-scm.org/D5928
Martin von Zweigbergk <martinvonz@google.com> [Sun, 10 Feb 2019 14:16:37 -0800] rev 41673
cleanup: prefer matchmod.{always,never}() over accessing matchers directly
We have these factory methods so we should use them.
Differential Revision: https://phab.mercurial-scm.org/D5927
Martin von Zweigbergk <martinvonz@google.com> [Sun, 10 Feb 2019 14:16:33 -0800] rev 41672
match: allow passing in badfn to always() and never()
So that no callers are required to access the matchers themselves.
Differential Revision: https://phab.mercurial-scm.org/D5926
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 10 Feb 2019 14:04:08 -0800] rev 41671
py3: use raw strings and %d for formatting
Before the string compares on Python 3 failed because we were
comparing bytes to str. Using raw strings ensures we are
always comparing str.
While we're here, also use %d to format integers.
Differential Revision: https://phab.mercurial-scm.org/D5925
Martin von Zweigbergk <martinvonz@google.com> [Thu, 31 Jan 2019 15:35:51 -0800] rev 41670
diff: make --stat respect ui.relative-paths
It would have been easy to make all diffs respect ui.relative-paths,
but we don't want that since it makes the diff invalid. Perhaps it
makes sense to do that with --noprefix since the point of that is to
make paths that are easy to copy&paste, and the diff is already
invalid anyway. But this patch just makes the --stat version respect
the config option. The --stat view is not even close to a valid diff,
so I think it makes sense to show the paths in more human-friendly
form.
Differential Revision: https://phab.mercurial-scm.org/D5896