Wed, 02 Mar 2016 21:50:35 +0000 win32mbcs: use absolute_import
timeless <timeless@mozdev.org> [Wed, 02 Mar 2016 21:50:35 +0000] rev 28417
win32mbcs: use absolute_import
Wed, 02 Mar 2016 21:48:08 +0000 notify: use absolute_import
timeless <timeless@mozdev.org> [Wed, 02 Mar 2016 21:48:08 +0000] rev 28416
notify: use absolute_import
Wed, 02 Mar 2016 21:42:42 +0000 patchbomb: use absolute_import
timeless <timeless@mozdev.org> [Wed, 02 Mar 2016 21:42:42 +0000] rev 28415
patchbomb: use absolute_import
Wed, 02 Mar 2016 16:34:43 +0000 convert: __init__ use absolute_import
timeless <timeless@mozdev.org> [Wed, 02 Mar 2016 16:34:43 +0000] rev 28414
convert: __init__ use absolute_import
Wed, 02 Mar 2016 16:41:35 +0000 convert: cvs use absolute_import
timeless <timeless@mozdev.org> [Wed, 02 Mar 2016 16:41:35 +0000] rev 28413
convert: cvs use absolute_import
Wed, 02 Mar 2016 16:37:50 +0000 convert: transport use absolute_import
timeless <timeless@mozdev.org> [Wed, 02 Mar 2016 16:37:50 +0000] rev 28412
convert: transport use absolute_import
Wed, 02 Mar 2016 16:32:52 +0000 convert: bzr use absolute_import
timeless <timeless@mozdev.org> [Wed, 02 Mar 2016 16:32:52 +0000] rev 28411
convert: bzr use absolute_import
Wed, 02 Mar 2016 16:26:35 +0000 convert: common use absolute_import
timeless <timeless@mozdev.org> [Wed, 02 Mar 2016 16:26:35 +0000] rev 28410
convert: common use absolute_import
Wed, 02 Mar 2016 16:23:28 +0000 convert: convcmd use absolute_import
timeless <timeless@mozdev.org> [Wed, 02 Mar 2016 16:23:28 +0000] rev 28409
convert: convcmd use absolute_import
Wed, 02 Mar 2016 16:13:05 +0000 convert: subversion use absolute_import
timeless <timeless@mozdev.org> [Wed, 02 Mar 2016 16:13:05 +0000] rev 28408
convert: subversion use absolute_import
Tue, 08 Mar 2016 20:34:59 +0000 blackbox: guard against recursion from dirty check
timeless <timeless@mozdev.org> [Tue, 08 Mar 2016 20:34:59 +0000] rev 28407
blackbox: guard against recursion from dirty check
Tue, 08 Mar 2016 20:52:57 +0000 tests: divorce blackbox test from test-dispatch.py
timeless <timeless@mozdev.org> [Tue, 08 Mar 2016 20:52:57 +0000] rev 28406
tests: divorce blackbox test from test-dispatch.py I used test-dispatch.py to demonstrate what would happen if a log file changed from being readonly to writable, by having it replace a directory (proxy for readonly/not-writable) with a log file in between transactions of a running python process (proxy for Mercurial). This commit makes it easier for people to follow what the test is doing, by creating a real file that people can read.
Tue, 08 Mar 2016 20:57:40 +0000 tests: test-dispatch use print_function
timeless <timeless@mozdev.org> [Tue, 08 Mar 2016 20:57:40 +0000] rev 28405
tests: test-dispatch use print_function
Tue, 08 Mar 2016 20:57:15 +0000 tests: test-dispatch use absolute_import
timeless <timeless@mozdev.org> [Tue, 08 Mar 2016 20:57:15 +0000] rev 28404
tests: test-dispatch use absolute_import
Wed, 02 Mar 2016 05:27:07 +0000 templater: ignore orig/rej files
timeless <timeless@mozdev.org> [Wed, 02 Mar 2016 05:27:07 +0000] rev 28403
templater: ignore orig/rej files If your mercurial/templates/ directory is dirty, then the template system would otherwise import duplicate templates from the .orig files and potentially try to parse .rej files. Since editing/reverting these templates isn't an unexpected action, and since they're in .hgignore, it's best that the template system know to skip them."
Thu, 24 Dec 2015 04:31:34 +0000 resolve: when pats do not match, hint about path:
timeless <timeless@mozdev.org> [Thu, 24 Dec 2015 04:31:34 +0000] rev 28402
resolve: when pats do not match, hint about path: Suggest a command that would probably work.
Wed, 09 Mar 2016 08:21:57 +0100 shelve: changes getting opts values by get method
liscju <piotr.listkiewicz@gmail.com> [Wed, 09 Mar 2016 08:21:57 +0100] rev 28401
shelve: changes getting opts values by get method When shelve is used by another extension that doesn't provide all necessary values in opts shelve raises KeyError exception. This patch fixes this by getting values from opts dictionary with get method.
Sat, 27 Feb 2016 21:15:16 -0800 contrib: remove references to 2to3
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 27 Feb 2016 21:15:16 -0800] rev 28400
contrib: remove references to 2to3 The custom porting fixers are removed. A comment related to 2to3 has been removed from the import checker. After this patch, no references to 2to3 remain.
Sat, 27 Feb 2016 21:14:17 -0800 check-code: remove redundant import style check
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 27 Feb 2016 21:14:17 -0800] rev 28399
check-code: remove redundant import style check We have a dedicated tool that checks for import conventions. Remove a redundant and less powerful check.
Sat, 27 Feb 2016 21:11:24 -0800 setup: remove support for 2to3
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 27 Feb 2016 21:11:24 -0800] rev 28398
setup: remove support for 2to3 We want to run unaltered source on multiple Python versions. We won't be using 2to3 for Python 3 support.
Sat, 27 Feb 2016 21:08:37 -0800 run-tests: remove 2to3 support
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 27 Feb 2016 21:08:37 -0800] rev 28397
run-tests: remove 2to3 support Our goal is to have 1 code base that works on 2.6, 2.7, and 3.5+. 2to3 won't be used. Stop passing it to setup.py.
Tue, 08 Mar 2016 21:59:06 +0100 histedit: adds hint how to reorder changesets at editor (issue3766)
liscju <piotr.listkiewicz@gmail.com> [Tue, 08 Mar 2016 21:59:06 +0100] rev 28396
histedit: adds hint how to reorder changesets at editor (issue3766)
Tue, 08 Mar 2016 23:04:53 +0900 revset: replace predicate by revsetpredicate of registrar
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 08 Mar 2016 23:04:53 +0900] rev 28395
revset: replace predicate by revsetpredicate of registrar To make all built-in predicates be known to hggettext, loading built-in predicates by loadpredicate() should be placed before fixing i18nfunctions but after all of predicate decorating.
Tue, 08 Mar 2016 23:04:53 +0900 revset: replace extpredicate by revsetpredicate of registrar
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 08 Mar 2016 23:04:53 +0900] rev 28394
revset: replace extpredicate by revsetpredicate of registrar This patch consists of changes below (these can't be applied separately). - replace revset.extpredicate by registrar.revsetpredicate in extensions - remove setup() on an instance named as revsetpredicate in uisetup()/extsetup() of each extensions registrar.revsetpredicate doesn't have setup() API. - put new entry for revsetpredicate into extraloaders in dispatch This causes implicit loading predicate functions at loading extension. This loading mechanism requires that an extension has an instance named as revsetpredicate, and this is reason why largefiles/__init__.py is also changed in this patch. Before this patch, test-revset.t tests that all decorated revset predicates are loaded by explicit setup() at once ("all or nothing"). Now, test-revset.t tests that any revset predicate isn't loaded at failure of loading extension, because loading itself is executed by dispatch and it can't be controlled on extension side.
Tue, 08 Mar 2016 23:04:53 +0900 registrar: define revsetpredicate to decorate revset predicate
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 08 Mar 2016 23:04:53 +0900] rev 28393
registrar: define revsetpredicate to decorate revset predicate revsetpredicate is used to replace revset.predicate and revset.extpredicate in subsequent patches. This patch also adds loadpredicate() to revset, because this combination helps to figure out how the name of safe predicate is put into safesymbols. This patch still uses safesymbols set to examine whether the predicate corresponded to the 'name' is safe from DoS attack or not, because just setting func._safe property needs changes below for such examination. before: name in revset.safesymbols after: getattr(revset.symbols.get(name, None), '_safe', False) "automatic registration" described in help doc of revsetpredicate class will be achieved by the subsequent patch, which lists loadpredicate() up in dispatch.extraloaders.
Tue, 08 Mar 2016 23:04:53 +0900 registrar: introduce new class for registration to replace funcregistrar
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 08 Mar 2016 23:04:53 +0900] rev 28392
registrar: introduce new class for registration to replace funcregistrar _funcregistrarbase differs from funcregistrar in points below: - every code paths should use same class derived from _funcregistrarbase to register functions in a same category funcregistrar expects (3rd party) extensions to use (a class derived from) delayregistrar. - actual extra setup should be executed in another function For example, marking revset predicate as "safe" is executed in a class derived from _funcregistrarbase, but putting name of "safe" predicate into safesymbols is executed in another function for it. funcregistrar expects derived classes to do so. New class is named as module private one, because code paths, which register functions, should use not it directly but one derived from it.
Tue, 08 Mar 2016 23:04:53 +0900 dispatch: make loading extra information from extension extensible
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 08 Mar 2016 23:04:53 +0900] rev 28391
dispatch: make loading extra information from extension extensible This patch makes loading extra information from extension module at dispatching extensible. Factoring 'loadcmdtable()' into commands.py is a part of generalization of loading extra information. This extensibility assumes registration of new function like below, for example: - revset predicate - fileset predicate - template keyword - template filter - template function - internal merge tool - web command This patch requires not loader function itself but container module and the name of it, because listing loader function directly up implies actual loading module of it, even if it isn't used at runtime (for example, extensions don't always define revset predicate)
Thu, 04 Feb 2016 15:38:04 -0800 obsolete: fix n^2 marker computation behavior stable
Durham Goode <durham@fb.com> [Thu, 04 Feb 2016 15:38:04 -0800] rev 28390
obsolete: fix n^2 marker computation behavior Previously, if you ran obsolete.createmarkers with a bunch of markers that did not have successors (like when you do a prune), it encountered a n^2 computation behavior because the loop would read the changelog (to get ctx.parents()), then add a marker, in a loop. Adding a marker invalidated the computehidden cache, and reading the changelog recomputed it. This resulted in pruning 150 commits taking 150+ seconds in a large repo. The fix is to break the reading part of the loop to be separate from the writing part.
Tue, 08 Mar 2016 17:26:12 +0000 bdiff: (pure) support array.array arrays (issue5130) stable
timeless <timeless@mozdev.org> [Tue, 08 Mar 2016 17:26:12 +0000] rev 28389
bdiff: (pure) support array.array arrays (issue5130)
Wed, 09 Mar 2016 22:21:08 +0000 mq: restrict generated patch name to 75 characters (issue5117) stable
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 09 Mar 2016 22:21:08 +0000] rev 28388
mq: restrict generated patch name to 75 characters (issue5117) Super long first line in description lead to very long file name that windows is unhappy about. We restrict the name to 75 char to avoid the issue. 75 seems fine and leave some extra room for '__#' suffix in case of conflict. I does not seems worthwhile to add a dedicated config option to configure the length. It can be done in the future if there is an actual user demand for it.
(0) -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip