Fri, 19 May 2017 13:12:42 +0200 obsolete: move the 'isenabled' function at the top of the file
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 May 2017 13:12:42 +0200] rev 32333
obsolete: move the 'isenabled' function at the top of the file That is a simple and important function so having it at the top next to the related constant seems better.
Fri, 19 May 2017 13:09:23 +0200 cache: make the cache updated callback easily accessible to extension
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 May 2017 13:09:23 +0200] rev 32332
cache: make the cache updated callback easily accessible to extension This will help extension to benefit from this new logic. As a side effect this clarify the 'transaction' method a little bit.
Fri, 19 May 2017 12:35:14 +0200 obscheckhead: skip context creation to test phase
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 May 2017 12:35:14 +0200] rev 32331
obscheckhead: skip context creation to test phase On repository with many many heads, this is called often enough to show an overhead to appears in some profile. So we skip the 'changectx' creation to test the node phases.
Fri, 19 May 2017 02:44:30 +0200 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 May 2017 02:44:30 +0200] rev 32330
tests: add missing 'test-push-checkheads-partial-C1.t' For some reason, this one test case did not made it with the others as they got upstreamed during the 4.2 cycle.
Thu, 18 May 2017 14:36:46 -0700 contrib: add editmerge version for powershell
Kostia Balytskyi <ikostia@fb.com> [Thu, 18 May 2017 14:36:46 -0700] rev 32329
contrib: add editmerge version for powershell This just adds a translation of existing contrib/editmerge to powershell. It allows users on Windows to iteratively resolve conflicts in their editor of choice. # no-check-commit
Wed, 17 May 2017 12:51:40 -0700 run-tests: allow hg executable to be hg.exe
Kostia Balytskyi <ikostia@fb.com> [Wed, 17 May 2017 12:51:40 -0700] rev 32328
run-tests: allow hg executable to be hg.exe When running tests on Windows (via msys), user sometimes does not want to run them against source hg, but against compiled hg.exe. For that purpose, --with-hg option can be used, but currently run-tests.py prints a warning if the value of this argument is not a file with basename 'hg'. This patch allows such file to be 'hg.exe'.
Tue, 09 May 2017 16:29:31 -0700 obsolete: add operation metadata to rebase/amend/histedit obsmarkers
Durham Goode <durham@fb.com> [Tue, 09 May 2017 16:29:31 -0700] rev 32327
obsolete: add operation metadata to rebase/amend/histedit obsmarkers By recording what operation created the obsmarker, we can show very intuitive messages to the user in various UIs. For instance, log output could have messages like "Amended as XXX" to show why a commit is old and has an 'x' on it. @ ac28e3 durham / First commit | | o d4afe7 durham | | Second commit | | | x 8e9a5d (Amended as ac28e3) durham |/ First commit |
Wed, 17 May 2017 15:39:37 +0200 obsolete: invalidate "volatile" set cache after merging marker stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 15:39:37 +0200] rev 32326
obsolete: invalidate "volatile" set cache after merging marker Adding markers to the repository might affect the set of obsolete changesets. So we most remove the "volatile" set who rely in that data. We add two missing invalidations after merging markers. This was caught by code change in the evolve extensions tests. This issues highlight that the current way to do things is a bit fragile, however we keep things simple for stable.
Wed, 17 May 2017 22:33:15 -0700 match: use match.prefix() in subdirmatcher
Martin von Zweigbergk <martinvonz@google.com> [Wed, 17 May 2017 22:33:15 -0700] rev 32325
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).
Fri, 12 May 2017 16:31:21 -0700 match: avoid accessing match._pathrestricted from subdirmatcher
Martin von Zweigbergk <martinvonz@google.com> [Fri, 12 May 2017 16:31:21 -0700] rev 32324
match: avoid accessing match._pathrestricted from subdirmatcher Accessing only the public API wherever possible helps us refactor matchers later.
Thu, 18 May 2017 10:17:57 -0700 match: override visitdir() the usual way in subdirmatcher
Martin von Zweigbergk <martinvonz@google.com> [Thu, 18 May 2017 10:17:57 -0700] rev 32323
match: override visitdir() the usual way in subdirmatcher Just override the function instead of replacing it on each instance.
Thu, 18 May 2017 09:04:37 -0700 match: make _fileroots a @propertycache and rename it to _fileset
Martin von Zweigbergk <martinvonz@google.com> [Thu, 18 May 2017 09:04:37 -0700] rev 32322
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.
Wed, 17 May 2017 23:54:43 -0700 fsmonitor: use modern match API
Martin von Zweigbergk <martinvonz@google.com> [Wed, 17 May 2017 23:54:43 -0700] rev 32321
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)
Wed, 17 May 2017 20:51:17 -0500 diffstat: properly count lines starting in '--' or '++' (issue5479)
Andrew Zwicky <andrew.zwicky@gmail.com> [Wed, 17 May 2017 20:51:17 -0500] rev 32320
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.
Fri, 19 May 2017 12:38:34 +0200 test-http-bad-server: match different in output
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 May 2017 12:38:34 +0200] rev 32319
test-http-bad-server: match different in output Same as for previous update, the longer port number can affect this ouput.
Thu, 18 May 2017 13:38:37 -0700 config: make config.items() return a copy
Martin von Zweigbergk <martinvonz@google.com> [Thu, 18 May 2017 13:38:37 -0700] rev 32318
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.
Fri, 19 May 2017 03:47:43 -0700 filemerge: store error messages in module variables
Stanislau Hlebik <stash@fb.com> [Fri, 19 May 2017 03:47:43 -0700] rev 32317
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.
Tue, 16 May 2017 23:10:31 -0700 run-tests: support multiple cases in .t test
Jun Wu <quark@fb.com> [Tue, 16 May 2017 23:10:31 -0700] rev 32316
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.
Wed, 17 May 2017 19:52:18 -0700 revlog: rename constants (API)
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 17 May 2017 19:52:18 -0700] rev 32315
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.
Wed, 17 May 2017 20:01:29 -0700 localrepo: reformat set literals
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 17 May 2017 20:01:29 -0700] rev 32314
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.
Thu, 18 May 2017 13:18:05 -0700 rebase: make sure merge state is cleaned up for no-op rebases (issue5494)
Jeremy Fitzhardinge <jsgf@fb.com> [Thu, 18 May 2017 13:18:05 -0700] rev 32313
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.
Wed, 17 May 2017 09:43:50 -0700 match: remove ispartial()
Martin von Zweigbergk <martinvonz@google.com> [Wed, 17 May 2017 09:43:50 -0700] rev 32312
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.
Tue, 16 May 2017 21:17:40 -0700 run-tests: rename test description dict to testdesc
Jun Wu <quark@fb.com> [Tue, 16 May 2017 21:17:40 -0700] rev 32311
run-tests: rename test description dict to testdesc Previously the word "test" was used for both a Test instance and a path or test dict. This patch renames them so it's clear that "testdesc" is the dict, and "test" is the instance.
Sat, 29 Apr 2017 11:40:47 -0700 run-tests: change test identity from a path to a dict
Jun Wu <quark@fb.com> [Sat, 29 Apr 2017 11:40:47 -0700] rev 32310
run-tests: change test identity from a path to a dict Previously, we use path to identify a test. A later patch adds more information so a path is not enough to identify a test. So we change it to a dictionary.
Wed, 17 May 2017 14:31:47 -0700 largefiles: delete unnecessary meddling with matcher internals
Martin von Zweigbergk <martinvonz@google.com> [Wed, 17 May 2017 14:31:47 -0700] rev 32309
largefiles: delete unnecessary meddling with matcher internals lfutil.getstandinmatcher() was setting match._always to False because it wanted a matcher of no patterns to match no files and match.match() instead matches everything. However, since ba8089433090 (largefiles: ensure lfutil.getstandinmatcher() only matches standins, 2015-08-12), it never actually passes an empty list of patterns, so the hack has become unnecessary.
Thu, 04 May 2017 00:23:09 +0530 py3: explicitly convert a list to bytes to pass in ui.debug
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 04 May 2017 00:23:09 +0530] rev 32308
py3: explicitly convert a list to bytes to pass in ui.debug Here pats is a list obviously. Since we can't pass unicodes to ui.debug, we have to pass this as bytes.
Wed, 17 May 2017 20:14:27 -0700 changelog: make sure datafile is 00changelog.d (API)
Jun Wu <quark@fb.com> [Wed, 17 May 2017 20:14:27 -0700] rev 32307
changelog: make sure datafile is 00changelog.d (API) 0ad0d26ff7 makes it possible for changelog datafile to be "00changelog.i.d", which is wrong. This patch adds an explicit datafile parameter to fix it.
Wed, 17 May 2017 23:01:56 +0900 util: drop unneeded override, sortdict.copy()
Yuya Nishihara <yuya@tcha.org> [Wed, 17 May 2017 23:01:56 +0900] rev 32306
util: drop unneeded override, sortdict.copy() OrderedDict.copy() returns self.__class__(self).
Wed, 17 May 2017 10:48:56 -0700 drawdag: provide filenode for its dummy filectx
Jun Wu <quark@fb.com> [Wed, 17 May 2017 10:48:56 -0700] rev 32305
drawdag: provide filenode for its dummy filectx basefctx has filenode, which will be used in a future fast path of skipping flag processor during repo._filecommit. This patch adds filenode to drawdag's faked filectx so we don't need to use hasattr in localrepo.py.
Sat, 13 May 2017 21:30:02 -0400 tests: fix up recent conditionalized output changes
Matt Harbison <matt_harbison@yahoo.com> [Sat, 13 May 2017 21:30:02 -0400] rev 32304
tests: fix up recent conditionalized output changes It looks like (!) can have surprising results matching back to the original output when adjacent lines change, probably because it uses the same code matching that allows (?) to skip missing output. 24f55686a63d ended up adding unconditionalized check*{exec,link} lines, duplicating the conditionalized lines. A Windows run wanted to delete the unconditionalized lines. This now runs on both Windows and Linux.
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip