- May 21, 2017
-
-
Siddharth Agarwal authored
This implementation uses the new importlib finder/loader functionality available in Python 3.5 and up. # no-check-commit
-
Siddharth Agarwal authored
We're going to use the same ignore list for Python 3.
-
Siddharth Agarwal authored
A few places only check modules in mercurial and hgext. Add hgdemandimport to the list in those places.
-
Siddharth Agarwal authored
In Python 3, demand loading is per-package. Keeping demandimport in the mercurial package would disable demand loading for any modules in mercurial.
-
Siddharth Agarwal authored
We'll use this for the 'demandimport' symbol in an upcoming patch.
-
Siddharth Agarwal authored
hasattr is safe in Python 3, and in an upcoming patch we can't use util.safehasattr.
-
- May 22, 2017
-
-
Jun Wu authored
6d642ecf1a89 makes profiler start early without loading extensions. That makes it impossible for an extension to add customized profilers. This patch adds a special case: if a profiler is not found but an extension with the same name could be loaded, load that extension first, and expect it to have a "profile" contextmanager method. This allows customized profilers and extension setup time is still profiled.
-
Jun Wu authored
This feature will be used by the next patch.
-
Martin von Zweigbergk authored
Exact matchers are only created internally (as opposed to from user input) based on a set of files that the caller collected before, so they should always match the list exactly (i.e. case-sensitively).
-
Boris Feld authored
Now that we have the default-date by default and all code have been updated, remove the old commands alias that forced the date as they are not longer useful. Writing tests now should be easier for everyone now that all dates should be stable.
-
Boris Feld authored
In the next patch, I'm gonna removing the global command aliases that force the epoch date but some tests either fail or their output change after that. Instead I'm copying the needed aliases in the test files that will otherwise change. Update test-rebase-obsolete.t because a revision hash is based on the epoch date after a 'commit --amend' and the output will change after removing date aliases. Update test-subrepo-git.t as the git subrepo doesn't use traditional date mechanisms. I'm not sure that updating the git subrepo to support default-date make sense. Add the commit alias to the test in order for making it pass after removing the date aliases globally.
-
- May 16, 2017
-
-
Boris Feld authored
Blackbox now obeys the 'devel.default-date' option. As a side effect we can delete the mock for blackblox related tests.
-
- May 19, 2017
-
-
Boris Feld authored
Also use the default-date when creating obsmarkers. Currently they are created with the current date and without any option to force their value. To test the feature, we remove some of the many 'glob' used to match obsmarker date in the tests.
-
- May 22, 2017
-
-
Pierre-Yves David authored
It will make writing future tests more easier for everyone as we won't need to glob dates anymore in tests.
-
- May 19, 2017
-
-
Boris Feld authored
Add a new config field named default-date under the devel section to force all implicits date to a specific value. If a explicit date is passed, it will override the default. This patch only affect changesets. Other usages (blackbox, obsmarkers) are updated in later patchs. The test runner is setting a bunch of alias to force the '--date' argument. We will replace theses aliases in a later patch.
-
Boris Feld authored
Add the method configdate to read a date from configuration. It uses the util.rawparsedate refactored earlier to support all standard date formats.
-
Boris Feld authored
Split most of util.parsedate in util.rawparsedate and make it raises ValueError instead of error.Abort. The util.parsedate function is now just a shell function converting ValueError to error.Abort for existing users. I need to parse a date from config in a later patch and use util.rawparsedate with ui.configwith which expect a convert that raises ValueError.
-
- May 22, 2017
-
-
Martin von Zweigbergk authored
fsmonitor and debugignore currently access matcher fields that I would consider implementation details, namely patternspat, includepat, and excludepat. Let' instead implement __repr__() and have the few users use that instead. Marked (API) because the fields can now be None.
-
Martin von Zweigbergk authored
Everyone knows that it's supposed to be spelled with two asterisks. It started failing in fad5e299cfc7 (update: accept --merge to allow merging across topo branches (issue5125), 2017-02-13) because until then there was only one argument that was covered by the kwargs, so *kwargs or **kwargs both worked (or at least that's what I think with my limited understanding of Python).
-
- May 19, 2017
-
-
Pulkit Goyal authored
This patch catches the WdirUnsupported exception to support wdir()^.
-
Pulkit Goyal authored
revlog.parentrevs() is called while evaluating ^ operator in revsets. When wdir is passed, it raises IndexError. This patch raises WdirUnsupported if wdir is passed in the function. The error will be caugth in future patches.
-
Pulkit Goyal authored
This series intents to support wdir() predicate with different operators like ~, ^. Currently the storage class don't support wdir(). This exception is introduced so that it can be raised from places where wdir() is passed and is not supported and we can catch this where we want to support the predicate. Also throwing an error at low level and catching at some higher level is better than using if-else especially for perf.
-
Martin von Zweigbergk authored
match() will soon gain more logic and we don't want to duplicate that in icasefsmatch(), so merge the two functions instead and use a flag to get case-insensitive behavior.
-
- May 18, 2017
-
-
Martin von Zweigbergk authored
-
Martin von Zweigbergk authored
This will let us delete icasefsmatcher.
-
Martin von Zweigbergk authored
On case-insensitive file systems, if file A exists and you try to remove it (or add, etc.) by specifying a different case, you will see something like this: $ hg rm a removing file A I honestly found this surprising because it seems to me like it was explicitly listed by the user. Still, there is a comment in the code describing it, so it is very clearly intentional. The code was added in baa11dde8c0e (match: add a subclass for dirstate normalizing of the matched patterns, 2015-04-12). I'm going to do a lot of refactoring to matchers and the feature mentioned above is going to get in my way. I'm therefore removing it for the time being and we can hopefully add it back when I'm done.
-
Martin von Zweigbergk authored
matcher._normalize() no longer depends on any of the matcher's state, and making it static will enable further refactoring. Note that the subdirmatcher subclass calls _normalize(), so we can't remove it completely.
-
Martin von Zweigbergk authored
No other arguments are passed via the matcher's state, so we should treat 'warn' the consistently. More importantly, this will let us make it a static function, which will help with further refactoring.
-
- May 13, 2017
-
-
Martin von Zweigbergk authored
The matcher class is getting hard to understand. It will be easier to follow if we can break it up into simpler matchers that we then compose. I'm hoping to have one matcher that accepts regular (non-include) patterns, one for exact file matches, one that always matches (and maybe one that never does) and then compose them by intersection and difference. This patch takes a simple but important step towards that goal by making match.match() a function (and renaming the matcher class itself from "match" to "matcher"). The new function will eventually be responsible for creating the simple matchers and composing them. icasefsmatcher similarly gets a factory function (called "icasefsmatch"). I also moved the other factory functions nearby.
-
- May 21, 2017
-
-
Augie Fackler authored
In the unlucky case, checklink tries to make a new file for the symlink test to target. If the filesystem is readonly (perhaps due to permissions in a repo owned by someone else) we just report the filesystem as not supporting symlinks, since the user probably can't write anyway.
-
- May 20, 2017
-
-
Gregory Szorc authored
RevlogNG is not such a good name when it is no longer the newest revlog version. Since we'll soon have revlog version 2, let's remove some references to it.
-
Gregory Szorc authored
First, the logic around the if..elif..elif was subtly wrong and sub-optimal because all branches would be tested as long as the revlog was valid. This patch changes things so it behaves like a switch statement over the revlog version. While I was here, I also tweaked error strings to make them consistent and to read better.
-
Gregory Szorc authored
We didn't have explicit test coverage of these branches. Better late than never.
-
- May 21, 2017
-
-
Pierre-Yves David authored
Loading the obsstore can become a large part of the time necessary to compute the important volatile set. We add a flag purging all known obsstore related data. For example, computing the 'bumped' set currently requires reading the full obsstore, so timing greatly differ with or without that flag: Without: ! bumped ! wall 0.005047 comb 0.000000 user 0.000000 sys 0.000000 (best of 446) With: ! bumped ! wall 0.512367 comb 0.510000 user 0.480000 sys 0.030000 (best of 15)
-
Pierre-Yves David authored
Receiving markers affecting changeset we'll receives later is legitimate and not so uncommon case. Working on cache highlighted that this was only testing in the evolve extension. We add a test for this case in core.
-
- May 19, 2017
-
-
Martin von Zweigbergk authored
We will soon have matchers that don't have an _always field, so largefiles needs to stop assuming that they do. _always is only used by always(), so we safely replace that method instead.
-
- May 21, 2017
-
-
Augie Fackler authored
-
Yuya Nishihara authored
-
Yuya Nishihara authored
Since util.h isn't useful in plain C module, it should be placed in CPython extension directory.
-
Yuya Nishihara authored
-