Martin von Zweigbergk <martinvonz@google.com> [Wed, 17 May 2017 22:33:15 -0700] rev 32365
match: use match.prefix() in subdirmatcher
It seems like the subdirmatcher should be checking if the matcher it's
based on is matching prefixes. It was effectively doing that already
because "prefix() == not always() and not anypats() and not
isexact()", subdirmatcher was checking the first two parts of that
condition and I don't think it will ever be given an "exact" matcher
with it's directory name (because exact matchers are for matching
files, not directories). Still, let's switch to using prefix() for
clarity (and because I'm trying to remove code that reaches for
matchers internals).
Martin von Zweigbergk <martinvonz@google.com> [Fri, 12 May 2017 16:31:21 -0700] rev 32364
match: avoid accessing match._pathrestricted from subdirmatcher
Accessing only the public API wherever possible helps us refactor
matchers later.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 18 May 2017 10:17:57 -0700] rev 32363
match: override visitdir() the usual way in subdirmatcher
Just override the function instead of replacing it on each instance.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 18 May 2017 09:04:37 -0700] rev 32362
match: make _fileroots a @propertycache and rename it to _fileset
The files in the set are not necesserily roots of anything. Making it
a @propertycache will help towards extracting a base class for
matchers.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 17 May 2017 23:54:43 -0700] rev 32361
fsmonitor: use modern match API
It seems like fsmonitor/__init__.py was based on a pretty old version
of dirstate.py. Let's copy over the changes from the following two
commits:
55c449345b10 (match: add isexact() method to hide internals, 2014-10-29)
3c346969c321 (dirstate: avoid match.files() in walk(), 2015-05-19)
Andrew Zwicky <andrew.zwicky@gmail.com> [Wed, 17 May 2017 20:51:17 -0500] rev 32360
diffstat: properly count lines starting in '--' or '++' (issue5479)
Lines that start in '--' or '++' were previously not counted
as deletions or additions in diffstat, resulting in incorrect
addition/deletion counts. The bug was present if the start
of the line, combined with the diff character resulted
in '---' or '+++'.
diffstatdata will now track, for each file, if it has moved
pas the header section by looking for a line beginning with
'@@'. Once that has happened, lines beginning with '-'
or '+' will be counted for deletions and additions. Once a
line beginning with 'diff' is found, the process starts over.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 May 2017 12:38:34 +0200] rev 32359
test-http-bad-server: match different in output
Same as for previous update, the longer port number can affect this ouput.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 18 May 2017 13:38:37 -0700] rev 32358
config: make config.items() return a copy
config.items() was iterating over a copy of the data for the the
specified section on Python 2 by using .items(). However, on Python 3,
items() does not make a copy, so let's switch to explicitly making a
copy to make it safe on both Python 2 and Python 3.
Stanislau Hlebik <stash@fb.com> [Fri, 19 May 2017 03:47:43 -0700] rev 32357
filemerge: store error messages in module variables
Copytracing may be disabled because it's too slow (see
experimental.disablecopytrace config option). In that case user may get errors
like 'local changed FILE which other deleted'. It would be nice to give user a
hint to rerun command with `--config experimental.disablecopytrace=False`. To
make it possible let's extract error message to variables so that extension may
overwrite them.
Jun Wu <quark@fb.com> [Tue, 16 May 2017 23:10:31 -0700] rev 32356
run-tests: support multiple cases in .t test
Sometimes we want to run similar tests with slightly different
configurations. Previously we duplicate the test files. This patch
introduces special "#testcases" syntax that allows a single .t file to
contain multiple test cases.
Defined cases could be tested using "#if".
For example, if a test should behave the same with or without an
experimental flag, we can add the following to the .t header:
#testcases default experimental-a
#if experimental-a
$ cat >> $HGRCPATH << EOF
> [experimental]
> feature=a
> EOF
#endif
The "experimental-a" block won't be executed when running the "default" test
case.
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 17 May 2017 19:52:18 -0700] rev 32355
revlog: rename constants (API)
Feature flag constants don't need "NG" in the name because they will
presumably apply to non-"NG" version revlogs.
All feature flag constants should also share a similar naming
convention to identify them as such.
And, "RevlogNG" isn't a great internal name since it isn't obvious it
maps to version 1 revlogs. Plus, "NG" (next generation) is only a good
name as long as it is the latest version. Since we're talking about
version 2, now is as good a time as any to move on from that naming.
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 17 May 2017 20:01:29 -0700] rev 32354
localrepo: reformat set literals
Putting multiple elements on the same line makes diffs harder
to read. Switch to one line per element so future changes are
easier on the eyes.
Jeremy Fitzhardinge <jsgf@fb.com> [Thu, 18 May 2017 13:18:05 -0700] rev 32353
rebase: make sure merge state is cleaned up for no-op rebases (issue5494)
If a rebase ends up doing a no-op commit, make sure the merge state is still cleaned up.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 17 May 2017 09:43:50 -0700] rev 32352
match: remove ispartial()
The function was added in d1d69ca78883 (match: add match.ispartial(),
2015-05-15) for use by narrowhg, but narrowhg never ended up needing
it.