- Oct 19, 2018
-
-
Augie Fackler authored
Differential Revision: https://phab.mercurial-scm.org/D5158
-
Gregory Szorc authored
This should make things faster. I'm not sure which operations would benefit from it though. Maybe branchmap application on clone? Differential Revision: https://phab.mercurial-scm.org/D5162
-
Gregory Szorc authored
As part of building the branchmap, we loop over revs and call branchmap() or _branchmap(). Previously, these functions were accessing repo.changelog. We know from past experience that repo.changelog in loops is bad for performance. This commit teaches the branchmap code to pass a changelog instance into branchmap() and _branchmap() so we don't need to pay this penalty. On my MBP, this appears to show a speedup on a clone of the mozilla-unified repo: $ hg perfbranchmap --clear-revbranch ! base ! wall 21.078160 comb 21.070000 user 20.920000 sys 0.150000 (best of 3) ! wall 20.574682 comb 20.560000 user 20.400000 sys 0.160000 (best of 3) $ hg perfbranchmap ! base ! wall 4.880413 comb 4.870000 user 4.860000 sys 0.010000 (best of 3) ! wall 4.573968 comb 4.560000 user 4.550000 sys 0.010000 (best of 3) Differential Revision: https://phab.mercurial-scm.org/D5161
-
- Oct 18, 2018
-
-
Augie Fackler authored
Doing this means that things we intentionally leak (eg type objects) no longer confuse AddressSanitizer, so now we can run the fuzzer MUCH longer. Differential Revision: https://phab.mercurial-scm.org/D5154
-
- Nov 17, 2016
-
-
Martin von Zweigbergk authored
bundletype() is a function, so it needs to be called, and it is documented to return a 2-tuple. This code is untested, so that's why we haven't noticed the bad assertion. Differential Revision: https://phab.mercurial-scm.org/D5155
-
- Oct 18, 2018
-
-
Matt Harbison authored
The error value is 11001 on Windows 10. I have no idea why it changed, but it seems unimportant.
-
Matt Harbison authored
The hash changes are because the *.py file is committed to the repo.
-
Matt Harbison authored
I have no idea why these aren't flagged with python2. I excluded test-highlight.t for now to make this easier to review- the changed code is committed to a repo, which has cascading changes on the rest of the test. There's a mix of bytes and str in the imports dict of contrib/import-checker.py that crashed it half way through listing out these errors. I couldn't figure out how to fix that properly, so I was lazy and applied this on py3, to find the rest of the errors: diff --git a/contrib/import-checker.py b/contrib/import-checker.py --- a/contrib/import-checker.py +++ b/contrib/import-checker.py @@ -626,7 +626,12 @@ def find_cycles(imports): top.foo -> top.qux -> top.foo """ cycles = set() - for mod in sorted(imports.keys()): + def sort(v): + if isinstance(v, bytes): + return v.decode('ascii') + return v + + for mod in sorted(imports.keys(), key=sort): try: checkmod(mod, imports) except CircularImport as e:
-
- Oct 19, 2018
-
-
Matt Harbison authored
This is in the spirit of bcf72d7b1524.
-
- Oct 18, 2018
-
-
Yuya Nishihara authored
I don't like fully-colorized status/warning messages, and I want to disable them at all. If we'd supported a syntax like 'color.ui.*=none', I could easily turn addremove.added/removed off as well as ui.error. This patch is just for that. Since addremove colors aren't released yet, which were added at ddc1da134772, there are no compatibility concerns.
-
- Feb 09, 2017
-
-
Martin von Zweigbergk authored
merge.update() takes a lot of parameters and I get confused all the time which is which. Differential Revision: https://phab.mercurial-scm.org/D5153
-
- Oct 18, 2018
-
-
Martin von Zweigbergk authored
This has been broken since I added it in d71e0ba34d9b (debugcommands: add a debugindexstats command, 2018-08-08). This patch also fixes the test. Differential Revision: https://phab.mercurial-scm.org/D5152
-
Augie Fackler authored
This is clearly what the line should read based on the "force to zlib" section below, so I'm guessing it just got overlooked during development. Differential Revision: https://phab.mercurial-scm.org/D5151
-
Augie Fackler authored
I'm honestly surprised we have buildbot coverage for this, but we do! Differential Revision: https://phab.mercurial-scm.org/D5150
-
- Oct 16, 2018
-
-
Yuya Nishihara authored
-
Yuya Nishihara authored
It doesn't support a bytes stream on Python 3. This makes a traceback being sent by one frame, but that shouldn't matter.
-
Yuya Nishihara authored
# skip-blame just a few r'' prefixes
-
Yuya Nishihara authored
# skip-blame just r'' prefixes
-
Yuya Nishihara authored
-
Yuya Nishihara authored
# skip-blame just some r'' prefixes
-
Yuya Nishihara authored
-
Yuya Nishihara authored
-
Yuya Nishihara authored
print() calls will be replaced by bprint(). # skip-blame just tons of b'' prefixes.
-
- Oct 14, 2018
-
-
Augie Fackler authored
I'm not thrilled with this, but it'll do. Differential Revision: https://phab.mercurial-scm.org/D5107
-
- Oct 18, 2018
-
-
Pulkit Goyal authored
# skip-blame because just r'' prefix This fixes test-narrow-acl.t on py3 which was broken by one of the earlier patches. Differential Revision: https://phab.mercurial-scm.org/D5149
-
Pulkit Goyal authored
Thanks to everyone who is putting efforts in making hg py3 compatible. Differential Revision: https://phab.mercurial-scm.org/D5148
-
Matt Harbison authored
-
- Oct 16, 2018
-
-
Matt Harbison authored
Otherwise the test errors out with: --- c:/Users/Matt/projects/hg_py3/tests/test-contrib-perf.t +++ c:/Users/Matt/projects/hg_py3/tests/test-contrib-perf.t.err @@ -184,6 +184,8 @@ $ hg perfrevrange $ hg perfrevset 'all()' $ hg perfstartup + 'b'c:' is not recognized as an internal or external command, + operable program or batch file. $ hg perfstatus $ hg perftags $ hg perftemplating
-
- Oct 18, 2018
-
-
Matt Harbison authored
I didn't bother marking these experimental because it references the extension that is already marked experimental.
-
- Sep 28, 2018
-
-
Matt Harbison authored
-
- Oct 17, 2018
-
-
Anton Shestakov authored
Apart from looking better in hg help command, these strings are also helpful when generating shell completions programmatically.
-
- Oct 14, 2018
-
-
Augie Fackler authored
Differential Revision: https://phab.mercurial-scm.org/D5120
-
- Oct 05, 2018
-
-
Martin von Zweigbergk authored
When widening, we already don't include the changelog (since f1844a10ee19) and files that the client already has (since c73c7653dfb9). However, we still include all manifests needed for the new narrowspec. When using flat manifests, that means we resend all the manifests even though the client necessarily has all of them. For tree manifests, we unnecessarily resend the root manifests and any subdirectory manifests that the client already has. This patch makes it so we no longer resend manifests that the client already has. It does so by passing an extra matcher to the changegroup packer and it uses that for filtering out directories matching the old matcher's visitdir(). For consistency between directories and files, it also makes the filtering of files look at both old and new matcher rather than passing in a diff matcher as we did before. Differential Revision: https://phab.mercurial-scm.org/D4895
-
- Oct 17, 2018
-
-
Martin von Zweigbergk authored
Narrow clones that track no paths currently don't even include the root manifest (which is the only manifest when using flat manifests). That means that when we widen from such a clone, we need to make sure that we send the root manifest (and other manifests if using tree manifests). That currently works because we always resend all manifest that match the new narrowspec. However, we're about to stop resending manifests that the client already has and there's a risk of this breaking then, so let's add a test. Differential Revision: https://phab.mercurial-scm.org/D5143
-
Martin von Zweigbergk authored
Taking my first Mercurial project closer to completion. Differential Revision: https://phab.mercurial-scm.org/D5144
-
- Oct 16, 2018
-
-
Kyle Lippincott authored
Previously, if using `experimental.revisions.disambiguatewithin` (and it didn't include rev0), and '0' was the shortest identifier in that disambiguation set, we printed it as the shortest *without* a prefix. This was because we had logic to determine "if the prefix is a pure integer, but starts with 0, we don't need to prefix with 'x': 01 is not a synonym for revision #1", but didn't handle the case where prefix == 0 (which is a pure integer, and starts with 0... but it *is* "rev0"). Differential Revision: https://phab.mercurial-scm.org/D5113
-
- Oct 03, 2018
-
-
Pulkit Goyal authored
To get narrow stream clones working, we need a way to filter the storage files using a matcher. This patch adds matcher as an argument to store.walk() and store.datafiles() so that we can filter the files returned according to the matcher. Differential Revision: https://phab.mercurial-scm.org/D4850
-
Pulkit Goyal authored
This patch build a matcher using the include and exclude arguments we have in generatev2() and pass that matcher into _walkstreamfiles(). This will help us in filtering files we stream depending on the includes and excludes passed in by the user. Differential Revision: https://phab.mercurial-scm.org/D4851
-
- Sep 26, 2018
-
-
Pulkit Goyal authored
This patch introduces a new server config `experimental.server.stream-narrow-clones` which if set to True will advertise that the server supports narrow stream clones. This patch also pass on the includes and excludes from getbundle command to streamclone generation code. There is a test added to show that the includepats and excludepats are correctly passed. Upcoming patches will implement storage layer filtering for streamclones and then we can remove the temporary error and plug in the whole logic together to make narrow stream clones working. Differential Revision: https://phab.mercurial-scm.org/D5137
-
- Oct 10, 2018
-
-
Pulkit Goyal authored
I am unable to think why we need to send narrowspecs back from the server. The current state adds a 'narrow:spec' part to each changegroup which is generated when narrow extension is enabled. So we are sending narrowspecs on pull also. There is a problem with sending the narrowspecs the way we are doing it right now. We add include and exclude as parameter of the 'narrow:spec' bundle2 part. The the len of include or exclude string increase 255 which is obvious while working on large repos, bundle2 generation code breaks. For more on that refer issue5952 on bugzilla. I was thinking why we need to send the narrowspecs back, and deleted the 'narrow:spec' bundle2 part generation code and found that only narrow-acl test has some failure. With this patch, we will only send the 'narrow:spec' bundle2 part if ACL is enabled because the original narrowspecs in those cases can be a subset of narrowspecs user requested. There are phase related output change in couple of tests. The output change shows that we are now dealing in public phases completely. So maybe sending the narrow:spec bundle2 part was preventing phases being exchanged or phase bundle2 data being applied. Differential Revision: https://phab.mercurial-scm.org/D4931
-