Thu, 19 Sep 2013 16:29:00 -0400 sslutil: add a config knob to support TLS (default) or SSLv23 (bc) (issue4038)
Augie Fackler <raf@durin42.com> [Thu, 19 Sep 2013 16:29:00 -0400] rev 19806
sslutil: add a config knob to support TLS (default) or SSLv23 (bc) (issue4038) Prior to this change, we default to SSLv23, which is insecure because it allows use of SSLv2. Unfortunately, there's no constant for OpenSSL to let us use SSLv3 or TLS - we have to pick one or the other. We expose a knob to revert to pre-TLS SSL for the user that has an ancient server that lacks proper TLS support.
Mon, 23 Sep 2013 21:41:01 -0700 largefiles: standardize error message for dirty working dir
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Sep 2013 21:41:01 -0700] rev 19805
largefiles: standardize error message for dirty working dir
Mon, 23 Sep 2013 21:31:37 -0700 cmdutil.bailifchanged: standardize error message for dirty working dir
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Sep 2013 21:31:37 -0700] rev 19804
cmdutil.bailifchanged: standardize error message for dirty working dir This affects rebase, graft, histedit, and other similar commands.
Mon, 23 Sep 2013 20:53:14 -0700 merge: standardize error message for dirty subrepo
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Sep 2013 20:53:14 -0700] rev 19803
merge: standardize error message for dirty subrepo
Mon, 23 Sep 2013 20:50:51 -0700 merge: standardize error message for dirty working dir
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Sep 2013 20:50:51 -0700] rev 19802
merge: standardize error message for dirty working dir
Mon, 23 Sep 2013 20:33:02 -0700 update: standardize error message for dirty update --check
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Sep 2013 20:33:02 -0700] rev 19801
update: standardize error message for dirty update --check This and following patches will standardize the error message for dirty working directories to "uncommitted changes".
Mon, 23 Sep 2013 20:08:52 -0700 update: improve error message for dirty non-linear update with rev
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Sep 2013 20:08:52 -0700] rev 19800
update: improve error message for dirty non-linear update with rev
Mon, 23 Sep 2013 20:07:30 -0700 update: add error message for dirty non-linear update with no rev
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Sep 2013 20:07:30 -0700] rev 19799
update: add error message for dirty non-linear update with no rev Previously, the error message for a dirty non-linear update was the same (and relatively unhelpful) whether or not a rev was specified. This patch and an upcoming one will introduce separate, more helpful hints.
Mon, 23 Sep 2013 17:43:33 -0700 update: improve error message for clean non-linear update
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Sep 2013 17:43:33 -0700] rev 19798
update: improve error message for clean non-linear update
Mon, 23 Sep 2013 19:02:32 -0700 pull: for pull --update with failed update, print hint if any
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Sep 2013 19:02:32 -0700] rev 19797
pull: for pull --update with failed update, print hint if any An upcoming patch will add a hint to the abort message, and we don't want to lose that here.
Fri, 06 Sep 2013 13:30:57 +0400 paper: edit search hint to include new feature description
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19796
paper: edit search hint to include new feature description
Thu, 25 Jul 2013 01:12:25 +0400 paper: define searchhint message in map file and use it in other templates
Alexander Plavin <alexander@plav.in> [Thu, 25 Jul 2013 01:12:25 +0400] rev 19795
paper: define searchhint message in map file and use it in other templates
Mon, 23 Sep 2013 14:28:01 -0700 debugshell: appease pyflakes
Matt Mackall <mpm@selenic.com> [Mon, 23 Sep 2013 14:28:01 -0700] rev 19794
debugshell: appease pyflakes
Fri, 20 Sep 2013 10:18:09 -0400 check-code: new rule to forbid imports of a.b on the same line as other imports
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 10:18:09 -0400] rev 19793
check-code: new rule to forbid imports of a.b on the same line as other imports This style of import can trip up 2to3 and cause it to produce invalid files if one of the imports is supposed to be a relative import. This prevents that behavior, and in the process exposed a lot of silly import errors related to the email module.
Fri, 20 Sep 2013 10:16:55 -0400 notify: correct import of email module, sort stdlib modules to top
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 10:16:55 -0400] rev 19792
notify: correct import of email module, sort stdlib modules to top
Fri, 20 Sep 2013 10:16:35 -0400 patchbomb: correct import of email module
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 10:16:35 -0400] rev 19791
patchbomb: correct import of email module
Fri, 20 Sep 2013 10:16:02 -0400 mail: correct import of email module
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 10:16:02 -0400] rev 19790
mail: correct import of email module
Fri, 20 Sep 2013 10:15:51 -0400 patch: correct import of email module
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 10:15:51 -0400] rev 19789
patch: correct import of email module
Fri, 20 Sep 2013 10:15:37 -0400 subrepo: move import of xml.minidom.dom to its own line for check-code
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 10:15:37 -0400] rev 19788
subrepo: move import of xml.minidom.dom to its own line for check-code
Fri, 20 Sep 2013 10:15:23 -0400 convert: move import of xml.minidom.dom to its own line for check-code
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 10:15:23 -0400] rev 19787
convert: move import of xml.minidom.dom to its own line for check-code
Fri, 20 Sep 2013 10:14:59 -0400 perf: rearrange imports of changelong and manifest to appease check-code
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 10:14:59 -0400] rev 19786
perf: rearrange imports of changelong and manifest to appease check-code
Mon, 23 Sep 2013 13:26:11 -0700 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 23 Sep 2013 13:26:11 -0700] rev 19785
merge with stable
Mon, 23 Sep 2013 13:22:28 -0700 tests: fix check-code breakage stable
Matt Mackall <mpm@selenic.com> [Mon, 23 Sep 2013 13:22:28 -0700] rev 19784
tests: fix check-code breakage
Sun, 22 Sep 2013 14:19:57 +0400 paper: add infinite scrolling to graph by calling ajaxScrollInit at the page
Alexander Plavin <alexander@plav.in> [Sun, 22 Sep 2013 14:19:57 +0400] rev 19783
paper: add infinite scrolling to graph by calling ajaxScrollInit at the page
Fri, 20 Sep 2013 00:42:13 +0400 hgweb: add graph mode of ajax response processing
Alexander Plavin <alexander@plav.in> [Fri, 20 Sep 2013 00:42:13 +0400] rev 19782
hgweb: add graph mode of ajax response processing While the default mode appends all the new entries to a container on the page, the graph mode resizes canvas correctly, and repaints the graph to include newly received data.
Sun, 22 Sep 2013 14:18:23 +0400 hgweb: make infinite scroll handling more generic and extensible
Alexander Plavin <alexander@plav.in> [Sun, 22 Sep 2013 14:18:23 +0400] rev 19781
hgweb: make infinite scroll handling more generic and extensible Namely, this allows the next page pointer to be not only revision hash given in page code, but also any value computed from the value for previous page.
Fri, 06 Sep 2013 13:30:59 +0400 hgweb: add reset javascript function to Graph
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:59 +0400] rev 19780
hgweb: add reset javascript function to Graph It makes the Graph object to be in the same state as just after the initialization. This will help to add infinite scrolling to graph view.
Sat, 21 Sep 2013 21:33:29 +0900 largefiles: setup "largefiles" feature in each repositories individually
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 21 Sep 2013 21:33:29 +0900] rev 19779
largefiles: setup "largefiles" feature in each repositories individually Before this patch, if largefiles extension is enabled once in any of target repositories, commands handling multiple repositories at a time like below misunderstand that "largefiles" feature is supported also in all other local repositories: - clone/pull from or push to localhost - recursive execution in subrepo tree This patch registers "featuresetup()" into "featuresetupfuncs" of "localrepository" to support "largefiles" features only in repositories enabling largefiles extension, instead of adding "largefiles" feature to class variable "_basesupported" of "localrepository". This patch also adds checking below to the largefiles specific class derived from "localrepository": - push to localhost: whether features supported in the local(= dst) repository satisfies ones required in the remote(= src) This can prevent useless looking up in the remote repository, when supported and required features are mismatched: "push()" of "localrepository" also checks it, but it is executed after looking up in the remote.
Sat, 21 Sep 2013 21:33:29 +0900 localrepo: make supported features manageable in each repositories individually
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 21 Sep 2013 21:33:29 +0900] rev 19778
localrepo: make supported features manageable in each repositories individually Before this patch, all localrepositories support same features, because supported features are managed by the class variable "supported" of "localrepository". For example, "largefiles" feature provided by largefiles extension is recognized as supported, by adding the feature name to "supported" of "localrepository". So, commands handling multiple repositories at a time like below misunderstand that such features are supported also in repositories not enabling corresponded extensions: - clone/pull from or push to localhost - recursive execution in subrepo tree "reposetup()" can't be used to fix this problem, because it is invoked after checking whether supported features satisfy ones required in the target repository. So, this patch adds the set object named as "featuresetupfuncs" to "localrepository" to manage hook functions to setup supported features of each repositories. If any functions are added to "featuresetupfuncs", they are invoked, and information about supported features is managed in each repositories individually. This patch also adds checking below: - pull from localhost: whether features supported in the local(= dst) repository satisfies ones required in the remote(= src) - push to localhost: whether features supported in the remote(= dst) repository satisfies ones required in the local(= src) Managing supported features by the class variable means that there is no difference of supported features between each instances of "localrepository" in the same Python process, so such checking is not needed before this patch. Even with this patch, if intermediate bundlefile is used as pulling source, pulling indirectly from the remote repository, which requires features more than ones supported in the local, can't be prevented, because bundlefile has no information about "required features" in it.
Sat, 21 Sep 2013 21:33:29 +0900 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 21 Sep 2013 21:33:29 +0900] rev 19777
extensions: list up only enabled extensions, if "ui" is specified Before this patch, "extensions.extensions()" always lists up all loaded extensions. So, commands handling multiple repositories at a time like below enable extensions unexpectedly. - clone from or push to localhost: extensions enabled only in the source are enabled also in the destination - pull from localhost: extensions enabled only in the destination are enabled also in the source - recursive execution in subrepo tree: extensions enabled only in the parent or some of siblings in the tree are enabled also in others In addition to it, extensions disabled locally may be enabled unexpectedly. This patch checks whether each of extensions should be listed up or not, if "ui" is specified to "extensions.extensions()", and invokes "reposetup()" of each extensions only for repositories enabling it.
Mon, 23 Sep 2013 11:37:06 -0700 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 23 Sep 2013 11:37:06 -0700] rev 19776
merge with stable
Fri, 20 Sep 2013 15:26:30 -0700 largefiles: remove bailifchanged check from overridepull (BC)
Siddharth Agarwal <sid0@fb.com> [Fri, 20 Sep 2013 15:26:30 -0700] rev 19775
largefiles: remove bailifchanged check from overridepull (BC) This brings pull --rebase with largefiles in line with pull --rebase without.
Fri, 20 Sep 2013 16:32:05 -0700 rebase: remove bailifchanged check from pullrebase (BC)
Siddharth Agarwal <sid0@fb.com> [Fri, 20 Sep 2013 16:32:05 -0700] rev 19774
rebase: remove bailifchanged check from pullrebase (BC) This saves us a relatively superfluous status check for pull --rebase (if rebase runs, it'll check for a clean working directory anyway), and brings hg pull --rebase closer to hg pull && hg rebase. This is a behavior change because pull --rebase with a dirty working directory will now abort after performing the pull rather than before.
Sun, 14 Jul 2013 12:16:40 -0500 debugshell: check ui.debugger for which debugger to use
Sean Farley <sean.michael.farley@gmail.com> [Sun, 14 Jul 2013 12:16:40 -0500] rev 19773
debugshell: check ui.debugger for which debugger to use
Sun, 14 Jul 2013 12:02:36 -0500 debugshell: add function to embed ipython
Sean Farley <sean.michael.farley@gmail.com> [Sun, 14 Jul 2013 12:02:36 -0500] rev 19772
debugshell: add function to embed ipython
Sun, 14 Jul 2013 12:10:52 -0500 debugshell: abstract out pdb code.interact
Sean Farley <sean.michael.farley@gmail.com> [Sun, 14 Jul 2013 12:10:52 -0500] rev 19771
debugshell: abstract out pdb code.interact
Sun, 22 Sep 2013 13:52:18 +0400 templater: support using templates with non-standard names from map file
Alexander Plavin <alexander@plav.in> [Sun, 22 Sep 2013 13:52:18 +0400] rev 19770
templater: support using templates with non-standard names from map file Allow to add arbitrarily-named entries to a template map file and then reference them, to make it possible to deduplicate and simplify templates code.
Mon, 23 Sep 2013 20:23:25 +0900 help: use full name of extensions to look up them for keyword search stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 23 Sep 2013 20:23:25 +0900] rev 19769
help: use full name of extensions to look up them for keyword search Before this patch, "hg help -k KEYWORD" fails, if there is the extension of which name includes ".", because "extensions.load()" invoked from "help.topicmatch()" fails to look such extension up, even though it is already loaded in. "help.topicmatch()" invokes "extensions.load()" with the name gotten from "extensions.enabled()". The former expects full name of extension (= key in '[extensions]' section), but the latter returns names shortened by "split('.')[-1]". This difference causes failure of looking extension up. This patch adds "shortname" argument to "extensions.enabled()" to make it return shortened names only if it is True. "help.topicmatch()" turns it off to get full name of extensions. Then, this patch shortens full name of extensions by "split('.')[-1]" for showing them in the list of extensions. Shortening is also applied on names gotten from "extensions.disabled()" but harmless, because it returns only extensions directly under "hgext" and their names should not include ".".
Fri, 06 Sep 2013 13:30:56 +0400 hgweb: add link to force literal keyword search
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:56 +0400] rev 19768
hgweb: add link to force literal keyword search This makes it possible to make keyword search in case the search query also specifies an exact revision (like '1234' or 'abcdef'), or a revset expression.
Fri, 06 Sep 2013 13:30:56 +0400 raw: show current search mode name at search results
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:56 +0400] rev 19767
raw: show current search mode name at search results
Fri, 06 Sep 2013 13:30:56 +0400 paper: show current search mode name at search results
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:56 +0400] rev 19766
paper: show current search mode name at search results
Fri, 06 Sep 2013 13:30:56 +0400 hgweb: pass variable with current search mode name to the search template
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:56 +0400] rev 19765
hgweb: pass variable with current search mode name to the search template
Fri, 20 Sep 2013 10:45:51 -0700 generaldelta: initialize basecache properly stable
Wojciech Lopata <lopek@fb.com> [Fri, 20 Sep 2013 10:45:51 -0700] rev 19764
generaldelta: initialize basecache properly Previously basecache was incorrectly initialized before adding the first revision from a changegroup. Basecache value influences when full revisions are stored in revlog (when using generaldelta). As a result it was possible to generate a generaldelta-revlog that could be bigger by arbitrary factor than its non-generaldelta equivalent.
Fri, 20 Sep 2013 11:47:03 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 20 Sep 2013 11:47:03 -0500] rev 19763
merge with stable
Fri, 06 Sep 2013 13:30:58 +0400 paper: add reddish background to ajax error message
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19762
paper: add reddish background to ajax error message
Fri, 06 Sep 2013 13:30:58 +0400 paper: add simple animation to the loading indicator
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19761
paper: add simple animation to the loading indicator
Fri, 06 Sep 2013 13:30:58 +0400 hgweb: add CSS class to the last entry on a page
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19760
hgweb: add CSS class to the last entry on a page The entry which was last before an ajax load now has a specific CSS class for easier styling.
Thu, 19 Sep 2013 15:29:28 -0400 run-tests: find mercurial path with syntax valid on both py2 and py3
Augie Fackler <raf@durin42.com> [Thu, 19 Sep 2013 15:29:28 -0400] rev 19759
run-tests: find mercurial path with syntax valid on both py2 and py3
Thu, 19 Sep 2013 15:29:04 -0400 run-tests: if run by python3, execute setup.py with --c2to3
Augie Fackler <raf@durin42.com> [Thu, 19 Sep 2013 15:29:04 -0400] rev 19758
run-tests: if run by python3, execute setup.py with --c2to3
Thu, 19 Sep 2013 15:28:26 -0400 commands: import hgweb.server in a way that 2to3 can rewrite
Augie Fackler <raf@durin42.com> [Thu, 19 Sep 2013 15:28:26 -0400] rev 19757
commands: import hgweb.server in a way that 2to3 can rewrite
Fri, 06 Sep 2013 13:30:58 +0400 hgweb: show message when an error occured during ajax loading
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19756
hgweb: show message when an error occured during ajax loading
Fri, 06 Sep 2013 13:30:58 +0400 hgweb: show loading indicator while an ajax request is in process
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19755
hgweb: show loading indicator while an ajax request is in process
Fri, 06 Sep 2013 13:30:58 +0400 hgweb: show a message when there are no more entries in the list
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19754
hgweb: show a message when there are no more entries in the list
Thu, 19 Sep 2013 09:45:00 -0700 util.h: fix gcc version checking
Siddharth Agarwal <sid0@fb.com> [Thu, 19 Sep 2013 09:45:00 -0700] rev 19753
util.h: fix gcc version checking gcc doesn't have a predefined GCC_VERSION macro.
Mon, 16 Sep 2013 01:08:29 -0700 mq: remove unused repo._committingpatch-related code
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 19752
mq: remove unused repo._committingpatch-related code This was introduced in 20ad8f0512a2 but its usage was removed in 46cc3b74e1c5.
Sat, 07 Sep 2013 15:07:10 -0500 strip: set current bookmark to None if stripped stable
Sean Farley <sean.michael.farley@gmail.com> [Sat, 07 Sep 2013 15:07:10 -0500] rev 19751
strip: set current bookmark to None if stripped
Wed, 18 Sep 2013 14:52:16 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 18 Sep 2013 14:52:16 -0500] rev 19750
merge with stable
Wed, 18 Sep 2013 14:40:17 -0400 sslutil: backed out changeset 074bd02352c0 (issue4038) stable
Augie Fackler <raf@durin42.com> [Wed, 18 Sep 2013 14:40:17 -0400] rev 19749
sslutil: backed out changeset 074bd02352c0 (issue4038) Python docs are a little unclear, but mpm reports reading the OpenSSL source code shows that PROTOCOL_SSLv23 allows TLS whereas PROTOCOL_SSLv3 does not.
Wed, 18 Sep 2013 14:45:28 -0400 httpclient: apply upstream revision da7579b034a4 to fix SSL problems (issue4038) stable
Augie Fackler <raf@durin42.com> [Wed, 18 Sep 2013 14:45:28 -0400] rev 19748
httpclient: apply upstream revision da7579b034a4 to fix SSL problems (issue4038)
Fri, 06 Sep 2013 13:30:57 +0400 paper: call ajaxScrollInit in shortlog
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19747
paper: call ajaxScrollInit in shortlog This just calls ajaxScrollInit at the shortlog page template with all needed agruments. So, infinite scrolling is working now there.
Wed, 18 Sep 2013 22:44:12 +0400 hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in> [Wed, 18 Sep 2013 22:44:12 +0400] rev 19746
hgweb: add ajaxScrollInit function, which does the ajax requests and processing This function should be correctly called on a page, otherwise there is no effect. When called, it makes ajax requests for the next portion of changesets when the user scrolls to the end. Also, when the monitor is high so that the default amount of changesets isn't enough to fill it, multiple portions are loaded if needed after the page load.
Wed, 18 Sep 2013 14:36:19 -0500 check-code: add bracket style check
Matt Mackall <mpm@selenic.com> [Wed, 18 Sep 2013 14:36:19 -0500] rev 19745
check-code: add bracket style check
Sat, 14 Sep 2013 11:22:34 +0800 util.h: getbe32() and putbe32() use intrinsic function to improve performance
Wei, Elson <elson.wei@gmail.com> [Sat, 14 Sep 2013 11:22:34 +0800] rev 19744
util.h: getbe32() and putbe32() use intrinsic function to improve performance Refer to https://bugzilla.mozilla.org/show_bug.cgi?id=351557. It can improve byte-swapping performance by intrinsic function.
Fri, 06 Sep 2013 13:30:58 +0400 hgweb: add appendFormatHTML javascript function
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19743
hgweb: add appendFormatHTML javascript function This is a convenient helper function to append some formatted HTML markup to a DOM element.
Fri, 06 Sep 2013 13:30:58 +0400 hgweb: add removeByClassName javascript function
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19742
hgweb: add removeByClassName javascript function It removes all elements with specified class name from the document.
Fri, 06 Sep 2013 13:30:57 +0400 hgweb: add docFromHTML javascript function
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19741
hgweb: add docFromHTML javascript function It takes a string with HTML markup and creates DOM document from it. The implementation is a part of code from https://developer.mozilla.org/en-US/docs/Web/API/DOMParser#DOMParser_HTML_extension_for_other_browsers
Fri, 06 Sep 2013 13:30:57 +0400 hgweb: add makeRequest javascript function
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19740
hgweb: add makeRequest javascript function This function performs an asynchronous HTTP request and calls provided callbacks: - onstart: request is sent - onsuccess: response is received - onerror: some error occured - oncomplete: response is fully processed and all other callbacks finished
Fri, 06 Sep 2013 13:30:57 +0400 hgweb: add format javascript function
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19739
hgweb: add format javascript function It replaces placeholders like '%key%' with replacement values given.
Fri, 06 Sep 2013 13:30:57 +0400 hgweb: add nextentry variable for easy pagination in changelog
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19738
hgweb: add nextentry variable for easy pagination in changelog nextentry always contains the first entry not shown on current page (if there is such entry)
Fri, 06 Sep 2013 13:30:57 +0400 hgweb: always compute all entries and latestentry in changelog
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19737
hgweb: always compute all entries and latestentry in changelog Get the whole list of entries before rendering instead of using lazy evaluation. This doesn't affect the performance for usual case when the entries are shown anyway. When both entries and latestentry are used, this performs unnoticeably faster, and for pages which use only latestentry (quite uncommon case) it would be a bit slower. This change will make it possible to get the first entry of the next page easily without computing the list twice.
Tue, 17 Sep 2013 17:42:13 +0200 templatefilters: add short format for age formatting
David Soria Parra <dsp@experimentalworks.net> [Tue, 17 Sep 2013 17:42:13 +0200] rev 19736
templatefilters: add short format for age formatting Implements a short output format for ages e.g. "1 second ago" is abbrevated as "1s ago".
Fri, 06 Sep 2013 13:30:57 +0400 hgweb: remove unused argument of changelist function in changelog
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19735
hgweb: remove unused argument of changelist function in changelog This doesn't change the behavior as the argument isn't used anyway, and it's a preparation to the next patches,
Tue, 17 Sep 2013 23:34:57 -0500 context: move evolution functions from changectx to basectx
Sean Farley <sean.michael.farley@gmail.com> [Tue, 17 Sep 2013 23:34:57 -0500] rev 19734
context: move evolution functions from changectx to basectx This is just a code move and corrects an overlook from my previous patch series that assumed only a changectx would want this functionality.
Tue, 17 Sep 2013 18:34:45 -0500 context: use correct spelling of committable
Sean Farley <sean.michael.farley@gmail.com> [Tue, 17 Sep 2013 18:34:45 -0500] rev 19733
context: use correct spelling of committable
Tue, 17 Sep 2013 18:19:04 -0500 check-code: check C patterns against .h files
Matt Mackall <mpm@selenic.com> [Tue, 17 Sep 2013 18:19:04 -0500] rev 19732
check-code: check C patterns against .h files
Tue, 17 Sep 2013 18:13:54 -0500 check-code: make casting style check more precise
Matt Mackall <mpm@selenic.com> [Tue, 17 Sep 2013 18:13:54 -0500] rev 19731
check-code: make casting style check more precise
Tue, 10 Sep 2013 19:49:34 -0700 log: make file log slow path usable on large repos
Durham Goode <durham@fb.com> [Tue, 10 Sep 2013 19:49:34 -0700] rev 19730
log: make file log slow path usable on large repos Running "hg log <pattern or directory>" on large repos took a very, very long time because it first read ctx.files() for every commit before even starting to process the results. This change makes the ctx.files() check lazy, which makes the command start producing results immediately.
Fri, 13 Sep 2013 15:40:04 -0500 plan9: update util.py for cpython 2.7 build
Jeff Sickel <jas@corpus-callosum.com> [Fri, 13 Sep 2013 15:40:04 -0500] rev 19729
plan9: update util.py for cpython 2.7 build
Fri, 06 Sep 2013 23:47:59 -0700 parse_manifest: rewrite to use memchr
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 23:47:59 -0700] rev 19728
parse_manifest: rewrite to use memchr memchr is usually smarter than a simple for loop. With gcc 4.4.6 and glibc 2.12 on x86-64, for a 20 MB, 200,000 file manifest, parse_manifest goes from 0.116 seconds to 0.095 seconds.
Mon, 16 Sep 2013 12:17:55 -0700 parsers: correctly handle a failed allocation
Bryan O'Sullivan <bryano@fb.com> [Mon, 16 Sep 2013 12:17:55 -0700] rev 19727
parsers: correctly handle a failed allocation
Mon, 16 Sep 2013 12:12:37 -0700 parsers: use Py_INCREF safely
Bryan O'Sullivan <bryano@fb.com> [Mon, 16 Sep 2013 12:12:37 -0700] rev 19726
parsers: use Py_INCREF safely
Mon, 16 Sep 2013 12:10:28 -0700 parsers: state is a char, not an int
Bryan O'Sullivan <bryano@fb.com> [Mon, 16 Sep 2013 12:10:28 -0700] rev 19725
parsers: state is a char, not an int
Fri, 13 Sep 2013 10:00:57 +0800 setup: check if mercurial/util.h has been modified
Wei, Elson <elson.wei@gmail.com> [Fri, 13 Sep 2013 10:00:57 +0800] rev 19724
setup: check if mercurial/util.h has been modified Before, if mercurial/util.h was modified but *.c wasn't, no extension was rebuilt.
Fri, 13 Sep 2013 09:54:43 +0800 util.h: add stdint basic type definitions
Wei, Elson <elson.wei@gmail.com> [Fri, 13 Sep 2013 09:54:43 +0800] rev 19723
util.h: add stdint basic type definitions MS C compiler v15 doesn't have stdint.h. Add basic int types those are defined in stdint.h.
Fri, 06 Sep 2013 13:30:56 +0400 hgweb: add revset syntax support to search
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:56 +0400] rev 19722
hgweb: add revset syntax support to search This mode is used when all the conditions are met: - 'reverse(%s)' % query string can be parsed to a revset tree - this tree has depth more than two, i.e. the query has some part of revset syntax used - the repo can be actually matched against this tree, i.e. it has only existent function/operators and revisions/tags/bookmarks specified are correct - no revset regexes are used in the query (strings which start with 're:') - only functions explicitly marked as safe in revset.py are used in the query Add several new tests for different parsing conditions and exception handling.
Fri, 06 Sep 2013 13:30:56 +0400 revset: add a whitelist of DoS-safe symbols
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:56 +0400] rev 19721
revset: add a whitelist of DoS-safe symbols 'Safe' here means that they can't be used for a DoS attack for any given input.
Wed, 07 Aug 2013 01:21:31 +0400 revset: add helper function to get functions used in a revset parse tree
Alexander Plavin <alexander@plav.in> [Wed, 07 Aug 2013 01:21:31 +0400] rev 19720
revset: add helper function to get functions used in a revset parse tree Will be used to determine whether all functions used in a hgweb search query are allowed there.
Fri, 09 Aug 2013 22:52:58 +0400 revset: add helper function to get revset parse tree depth
Alexander Plavin <alexander@plav.in> [Fri, 09 Aug 2013 22:52:58 +0400] rev 19719
revset: add helper function to get revset parse tree depth Will be used to determine if a hgweb search query actually uses any revset syntax.
Sat, 07 Sep 2013 00:59:24 -0700 parsers: use a lookup table to convert hex to binary
Siddharth Agarwal <sid0@fb.com> [Sat, 07 Sep 2013 00:59:24 -0700] rev 19718
parsers: use a lookup table to convert hex to binary This is a hotspot for parse_manifest. With this patch, for a 20 MB, 200,000 file manifest, parse_manifest goes down from 0.153 seconds to 0.116.
Fri, 06 Sep 2013 23:05:33 -0700 revlog: remove _chunkbase since it is no longer used
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 23:05:33 -0700] rev 19717
revlog: remove _chunkbase since it is no longer used This was introduced in 2011 for the lwcopy feature but never actually got used. A similar hook can easily be reintroduced if needed in the future.
Fri, 06 Sep 2013 23:05:11 -0700 revlog: move chunk cache preload from revision to _chunks
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 23:05:11 -0700] rev 19716
revlog: move chunk cache preload from revision to _chunks In case we don't have a cached text already, add the base rev to the list passed to _chunks. In the cached case this also avoids unnecessarily preloading the chunk for the cached rev.
Fri, 06 Sep 2013 22:57:51 -0700 revlog._chunks: inline getchunk
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 22:57:51 -0700] rev 19715
revlog._chunks: inline getchunk We do this in a somewhat hacky way, relying on the fact that our sole caller preloads the cache right before calling us. An upcoming patch will make this more sensible. For a 20 MB manifest with a delta chain of > 40k, perfmanifest goes from 0.49 seconds to 0.46.
Sat, 07 Sep 2013 12:42:46 -0700 revlog.revision: fix cache preload for inline revlogs
Siddharth Agarwal <sid0@fb.com> [Sat, 07 Sep 2013 12:42:46 -0700] rev 19714
revlog.revision: fix cache preload for inline revlogs Previously the length of data preloaded did not account for the interleaved io contents. This meant that we'd sometimes have cache misses in _chunks despite the preloading. Having a correctly filled out cache will become essential in an upcoming patch.
Fri, 06 Sep 2013 16:31:35 -0700 revlog: add a fast method for getting a list of chunks
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 16:31:35 -0700] rev 19713
revlog: add a fast method for getting a list of chunks This moves _chunkraw into the loop. Doing that improves revlog decompression -- in particular, manifest decompression -- significantly. For a 20 MB manifest which is the result of a > 40k delta chain, hg perfmanifest improves from 0.55 seconds to 0.49 seconds.
Fri, 06 Sep 2013 13:35:29 -0700 perfmanifest: allow and require passing in a rev
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 13:35:29 -0700] rev 19712
perfmanifest: allow and require passing in a rev Previously perfmanifest would only test tip.
Fri, 06 Sep 2013 13:20:07 -0700 perfmanifest: fix cache invalidation
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 13:20:07 -0700] rev 19711
perfmanifest: fix cache invalidation The manifest cache is now stored in _mancache. The revlog cache is still stored in _cache.
Fri, 06 Sep 2013 13:16:21 -0700 lrucachedict: implement clear()
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 13:16:21 -0700] rev 19710
lrucachedict: implement clear()
Sat, 07 Sep 2013 16:08:11 -0500 merge with stable
Kevin Bullock <kbullock@ringworld.org> [Sat, 07 Sep 2013 16:08:11 -0500] rev 19709
merge with stable
Sat, 07 Sep 2013 21:20:00 +0200 bundle: fix performance regression when bundling file changes (issue4031) stable
Antoine Pitrou <solipsis@pitrou.net> [Sat, 07 Sep 2013 21:20:00 +0200] rev 19708
bundle: fix performance regression when bundling file changes (issue4031) Somewhere before 2.7, a change [ec896f9e8894] was committed that entailed a large performance regression when bundling (and therefore remote cloning) repositories. For each file in the repository, it would recompute the set of needed changesets even though it is the same for all files. This computation would dominate bundle runtimes according to profiler output (by 10x or more).
Sat, 07 Sep 2013 00:08:36 -0500 merge with stable
Kevin Bullock <kbullock@ringworld.org> [Sat, 07 Sep 2013 00:08:36 -0500] rev 19707
merge with stable
Tue, 06 Aug 2013 00:52:06 +0400 revset: fix wrong keyword() behaviour for strings with spaces stable
Alexander Plavin <alexander@plav.in> [Tue, 06 Aug 2013 00:52:06 +0400] rev 19706
revset: fix wrong keyword() behaviour for strings with spaces Some changesets can be wrongly reported as matched by this predicate due to searching in a string joined with spaces and not individually. A test case added, which fails without this fix.
Thu, 15 Aug 2013 13:42:56 -0500 commitablefilectx: move children from workingfilectx
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:42:56 -0500] rev 19705
commitablefilectx: move children from workingfilectx
Thu, 15 Aug 2013 13:42:33 -0500 commitablefilectx: move parents from workingfilectx
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:42:33 -0500] rev 19704
commitablefilectx: move parents from workingfilectx
Thu, 15 Aug 2013 13:23:06 -0500 commitablefilectx: move __nonzero__ from workingfilectx
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:23:06 -0500] rev 19703
commitablefilectx: move __nonzero__ from workingfilectx
Thu, 15 Aug 2013 13:12:50 -0500 commitablefilectx: move __init__ from workingfilectx
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:12:50 -0500] rev 19702
commitablefilectx: move __init__ from workingfilectx
Thu, 15 Aug 2013 13:11:51 -0500 commitablefilectx: add a class that will be used for mutable file contexts
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:11:51 -0500] rev 19701
commitablefilectx: add a class that will be used for mutable file contexts Just like commitablectx, this will serve as a common place for code that will be shared between workingfilectx and memfilectx.
Wed, 14 Aug 2013 16:40:34 -0500 commitablectx: move dirs from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:40:34 -0500] rev 19700
commitablectx: move dirs from workingctx
Wed, 14 Aug 2013 16:40:27 -0500 commitablectx: move markcommitted from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:40:27 -0500] rev 19699
commitablectx: move markcommitted from workingctx
Wed, 14 Aug 2013 16:37:59 -0500 commitablectx: move ancestors from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:37:59 -0500] rev 19698
commitablectx: move ancestors from workingctx
Wed, 14 Aug 2013 16:37:11 -0500 commitablectx: move walk from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:37:11 -0500] rev 19697
commitablectx: move walk from workingctx
Wed, 14 Aug 2013 16:37:01 -0500 commitablectx: move ancestor from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:37:01 -0500] rev 19696
commitablectx: move ancestor from workingctx
Wed, 14 Aug 2013 16:25:43 -0500 commitablectx: move flags from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:25:43 -0500] rev 19695
commitablectx: move flags from workingctx
Wed, 14 Aug 2013 16:25:26 -0500 commitablectx: move children from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:25:26 -0500] rev 19694
commitablectx: move children from workingctx
Wed, 14 Aug 2013 16:25:17 -0500 commitablectx: move hidden from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:25:17 -0500] rev 19693
commitablectx: move hidden from workingctx
Wed, 14 Aug 2013 16:24:59 -0500 commitablectx: move phase from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:24:59 -0500] rev 19692
commitablectx: move phase from workingctx
Wed, 14 Aug 2013 16:24:33 -0500 commitablectx: move bookmarks from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:24:33 -0500] rev 19691
commitablectx: move bookmarks from workingctx
Wed, 14 Aug 2013 16:24:16 -0500 commitablectx: move tags from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:24:16 -0500] rev 19690
commitablectx: move tags from workingctx
Wed, 14 Aug 2013 16:23:28 -0500 commitablectx: move extra from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:23:28 -0500] rev 19689
commitablectx: move extra from workingctx
Wed, 14 Aug 2013 16:23:16 -0500 commitablectx: move closesbranch from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:23:16 -0500] rev 19688
commitablectx: move closesbranch from workingctx
Wed, 14 Aug 2013 16:23:02 -0500 commitablectx: move branch from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:23:02 -0500] rev 19687
commitablectx: move branch from workingctx
Wed, 14 Aug 2013 16:22:42 -0500 commitablectx: move clean from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:22:42 -0500] rev 19686
commitablectx: move clean from workingctx
Wed, 14 Aug 2013 16:22:32 -0500 commitablectx: move ignored from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:22:32 -0500] rev 19685
commitablectx: move ignored from workingctx
Wed, 14 Aug 2013 16:22:20 -0500 commitablectx: move unknown from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:22:20 -0500] rev 19684
commitablectx: move unknown from workingctx
Wed, 14 Aug 2013 16:21:55 -0500 commitablectx: move deleted from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:21:55 -0500] rev 19683
commitablectx: move deleted from workingctx
Wed, 14 Aug 2013 16:15:29 -0500 commitablectx: move removed from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:15:29 -0500] rev 19682
commitablectx: move removed from workingctx
Wed, 14 Aug 2013 16:15:18 -0500 commitablectx: move added from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:15:18 -0500] rev 19681
commitablectx: move added from workingctx
Wed, 14 Aug 2013 16:14:58 -0500 commitablectx: move modified from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:14:58 -0500] rev 19680
commitablectx: move modified from workingctx
Wed, 14 Aug 2013 16:09:45 -0500 commitablectx: move files from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:09:45 -0500] rev 19679
commitablectx: move files from workingctx
Wed, 14 Aug 2013 16:09:30 -0500 commitablectx: move description from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:09:30 -0500] rev 19678
commitablectx: move description from workingctx
Wed, 14 Aug 2013 16:03:32 -0500 commitablectx: move date from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:03:32 -0500] rev 19677
commitablectx: move date from workingctx
Thu, 15 Aug 2013 10:57:43 -0500 commitablectx: move _date from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 10:57:43 -0500] rev 19676
commitablectx: move _date from workingctx
Wed, 14 Aug 2013 15:57:24 -0500 commitablectx: move user from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:57:24 -0500] rev 19675
commitablectx: move user from workingctx
Thu, 15 Aug 2013 10:51:53 -0500 commitablectx: move _user from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 10:51:53 -0500] rev 19674
commitablectx: move _user from workingctx
Wed, 14 Aug 2013 15:55:56 -0500 commitablectx: move status from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:55:56 -0500] rev 19673
commitablectx: move status from workingctx
Wed, 14 Aug 2013 15:41:22 -0500 commitablectx: move _status from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:41:22 -0500] rev 19672
commitablectx: move _status from workingctx
Wed, 14 Aug 2013 15:34:18 -0500 commitablectx: move _manifest from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:34:18 -0500] rev 19671
commitablectx: move _manifest from workingctx
Wed, 14 Aug 2013 15:30:17 -0500 commitablectx: move _flagfunc from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:30:17 -0500] rev 19670
commitablectx: move _flagfunc from workingctx
Wed, 14 Aug 2013 15:29:48 -0500 commitablectx: move _buildflagfunc from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:29:48 -0500] rev 19669
commitablectx: move _buildflagfunc from workingctx
Wed, 14 Aug 2013 15:29:09 -0500 commitablectx: move __contains__ from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:29:09 -0500] rev 19668
commitablectx: move __contains__ from workingctx
Wed, 14 Aug 2013 15:28:43 -0500 commitablectx: move __nonzero__ from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:28:43 -0500] rev 19667
commitablectx: move __nonzero__ from workingctx
Wed, 14 Aug 2013 15:25:14 -0500 commitablectx: move __str__ from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:25:14 -0500] rev 19666
commitablectx: move __str__ from workingctx
Wed, 14 Aug 2013 15:24:58 -0500 commitablectx: move __init__ from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:24:58 -0500] rev 19665
commitablectx: move __init__ from workingctx
Wed, 14 Aug 2013 15:02:08 -0500 commitablectx: add a class that will be used as a parent of mutable contexts
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:02:08 -0500] rev 19664
commitablectx: add a class that will be used as a parent of mutable contexts Currently, we have basectx that serves as a common ancestor of all contexts. We will now add a new class commitablectx that will inherit from basectx and will serve as a common place for code that will be shared between mutable contexts, e.g. workingctx and memctx.
Wed, 14 Aug 2013 13:32:56 -0500 workingfilectx: remove unneeded __repr__ since it is now inherited
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 13:32:56 -0500] rev 19663
workingfilectx: remove unneeded __repr__ since it is now inherited
Thu, 15 Aug 2013 13:09:34 -0500 workingfilectx: remove bogus comment
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:09:34 -0500] rev 19662
workingfilectx: remove bogus comment
Thu, 15 Aug 2013 13:32:07 -0500 workingfilectx: remove __str__ manifest since it is now inherited
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:32:07 -0500] rev 19661
workingfilectx: remove __str__ manifest since it is now inherited
Thu, 15 Aug 2013 13:31:17 -0500 basefilectx: use basectx __str__ instead of duplicating logic
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:31:17 -0500] rev 19660
basefilectx: use basectx __str__ instead of duplicating logic This change allows us to only rely on one place to convert a context to a string which will help eliminate duplicate code in context.py
Wed, 14 Aug 2013 13:41:09 -0500 workingctx: remove unneeded manifest since it is now inherited
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 13:41:09 -0500] rev 19659
workingctx: remove unneeded manifest since it is now inherited
Wed, 14 Aug 2013 13:32:44 -0500 workingctx: remove unneeded __repr__ since it is now inherited
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 13:32:44 -0500] rev 19658
workingctx: remove unneeded __repr__ since it is now inherited
Tue, 03 Sep 2013 20:02:53 +0400 hgweb: import the whole util module in webcommands instead of just one function
Alexander Plavin <alexander@plav.in> [Tue, 03 Sep 2013 20:02:53 +0400] rev 19657
hgweb: import the whole util module in webcommands instead of just one function This is to allow using other functions from this module easily.
Wed, 04 Sep 2013 19:40:04 +0400 hgweb: add string constants for search mode names
Alexander Plavin <alexander@plav.in> [Wed, 04 Sep 2013 19:40:04 +0400] rev 19656
hgweb: add string constants for search mode names It helps detecting mistakes in the mode names.
Wed, 04 Sep 2013 18:42:55 -0700 addremove: don't do full walks
Siddharth Agarwal <sid0@fb.com> [Wed, 04 Sep 2013 18:42:55 -0700] rev 19655
addremove: don't do full walks Full walks are only necessary when the caller needs the list of clean files. addremove by definition doesn't need them. With this patch and an extension that produces a subset of results for dirstate.walk when full is False, on a repository with over 200,000 files, hg addremove drops from 2.8 seconds to 0.5.
Thu, 05 Sep 2013 11:45:27 -0400 merge with mpm
Augie Fackler <raf@durin42.com> [Thu, 05 Sep 2013 11:45:27 -0400] rev 19654
merge with mpm
Tue, 03 Sep 2013 17:06:19 -0400 merge with mpm
Augie Fackler <raf@durin42.com> [Tue, 03 Sep 2013 17:06:19 -0400] rev 19653
merge with mpm
Sat, 17 Aug 2013 20:48:49 -0700 pack_dirstate: only invalidate mtime for files written in the last second
Siddharth Agarwal <sid0@fb.com> [Sat, 17 Aug 2013 20:48:49 -0700] rev 19652
pack_dirstate: only invalidate mtime for files written in the last second Previously we'd place files written in the last second in the lookup set. This can lead to pathological cases where a file always remains in the lookup set if it gets modified before the next time status is run. With this patch, only the mtime of those files is invalidated. This means that if a file's size or mode changes, we can immediately declare it as modified without needing to compare file contents.
Sat, 31 Aug 2013 10:20:15 -0700 dirstate.status: don't ignore symlink placeholders in the normal set
Siddharth Agarwal <sid0@fb.com> [Sat, 31 Aug 2013 10:20:15 -0700] rev 19651
dirstate.status: don't ignore symlink placeholders in the normal set On Windows, there are two ways symlinks can manifest themselves: 1. As placeholders: text files containing the symlink's target. This is what usually happens with fresh clones on Windows. 2. With their dereferenced contents. This happens with clones accessed over NFS or Samba. In order to handle case 2, ca6cebd8734e made dirstate.status ignore all symlink placeholders on Windows. It doesn't ignore symlinks in the lookup set, though, since those don't have the link bit set. This is problematic because it violates the invariant that `hg status` with every file in the normal set produces the same output as `hg status` with every file in the lookup set. With this change, symlink placeholders in the normal set are no longer ignored. We instead rely on code in localrepo.status that uses heuristics to look for suspect placeholders. An upcoming patch will test this out by no longer adding files written in the last second of an update to the lookup set.
Sat, 31 Aug 2013 10:16:06 -0700 localrepo.status: ignore empty symlink placeholders
Siddharth Agarwal <sid0@fb.com> [Sat, 31 Aug 2013 10:16:06 -0700] rev 19650
localrepo.status: ignore empty symlink placeholders A symlink's target should never be empty in normal use. Solaris and some BSDs do allow empty symlinks to be created (with varying semantics on dereference), but a symlink placeholder that started off as empty is either - going to be empty, in which case ignoring it is fine, since it's unchanged, or - going to not be empty, in which case this check is irrelevant.
Tue, 03 Sep 2013 18:08:27 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 03 Sep 2013 18:08:27 -0500] rev 19649
merge with stable
Tue, 03 Sep 2013 18:05:11 -0500 Added signature for changeset 335a558f81dc stable
Matt Mackall <mpm@selenic.com> [Tue, 03 Sep 2013 18:05:11 -0500] rev 19648
Added signature for changeset 335a558f81dc
Tue, 03 Sep 2013 18:05:06 -0500 Added tag 2.7.1 for changeset 335a558f81dc stable
Matt Mackall <mpm@selenic.com> [Tue, 03 Sep 2013 18:05:06 -0500] rev 19647
Added tag 2.7.1 for changeset 335a558f81dc
Wed, 28 Aug 2013 22:09:53 +0900 tags: write tag overwriting history also into tag cache file (issue3911) stable 2.7.1
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 28 Aug 2013 22:09:53 +0900] rev 19646
tags: write tag overwriting history also into tag cache file (issue3911) Before this patch, tag overwriting history is not written into tag cache file ".hg/cache/tags". This may give higher priority to local tag than global one, even if the former is overwritten by the latter, because tag overwriting history is used to compare priorities of them (as "rank"). In such cases, "hg tags" invocations using tag cache file shows incorrect tag information. This patch writes tag overwriting history also into tag cache file.
Tue, 03 Sep 2013 15:50:59 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 03 Sep 2013 15:50:59 -0500] rev 19645
merge with stable
Mon, 26 Aug 2013 16:11:21 +0900 histedit: add description about "histedit --outgoing" to command help stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 26 Aug 2013 16:11:21 +0900] rev 19644
histedit: add description about "histedit --outgoing" to command help Before this patch, there is no explicit description that argument is treated as the URL of the destination repository when "--outgoing" is specified. This patch adds description about "histedit --outgoing" to command help of it.
Mon, 26 Aug 2013 16:11:21 +0900 histedit: add description about basic histedit function to command help stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 26 Aug 2013 16:11:21 +0900] rev 19643
histedit: add description about basic histedit function to command help Before this patch, there is no explicit description that histedit edits changesets between specified ancestor and the parent of the working directory: users may notice it by error message "REV is not an ancestor of working directory". This patch adds description about basic histedit function to command help of it. This patch uses term "ancestor" instead of "parent", because it seems to be more suitable, and almost all (error) messages already use it.
Tue, 03 Sep 2013 15:12:35 -0400 rebase: handle bookmarks matching revset function names (issue3950) stable
Bryan O'Sullivan <bryano@fb.com> [Tue, 03 Sep 2013 15:12:35 -0400] rev 19642
rebase: handle bookmarks matching revset function names (issue3950) We handled these correctly with all rev-specifying options except, somehow, -r/--rev.
Tue, 03 Sep 2013 15:12:35 -0400 rebase: handle bookmarks matching revset function names (issue3950)
Bryan O'Sullivan <bryano@fb.com> [Tue, 03 Sep 2013 15:12:35 -0400] rev 19641
rebase: handle bookmarks matching revset function names (issue3950) We handled these correctly with all rev-specifying options except, somehow, -r/--rev.
Thu, 25 Jul 2013 22:28:34 -0500 dispatch: add ability to specify a custom pdb module as a debugger
Sean Farley <sean.michael.farley@gmail.com> [Thu, 25 Jul 2013 22:28:34 -0500] rev 19640
dispatch: add ability to specify a custom pdb module as a debugger This adds the ability to specify a config option, ui.debugger, to a custom pdb module, such as ipdb, and have mercurial use that as its debugger. As long as the value of ui.debugger is a loadable module with the set_trace and post_mortem functions, then dispatch will be able to use the custom module. Debugging _parseconfig is still available in the case of an error since it will be caught with a default the value of pdb.post_mortem.
Sat, 13 Jul 2013 16:33:07 -0500 dispatch: move command line --config argument parsing to _runcatch()
Sean Farley <sean.michael.farley@gmail.com> [Sat, 13 Jul 2013 16:33:07 -0500] rev 19639
dispatch: move command line --config argument parsing to _runcatch() Previously, command line parsing of --config arguments was done in _dispatch. This means that it takes place after activating the debugger. In an upcoming patch, we will add a ui.debugger setting so we need to have this parsing done before _runcatch.
Tue, 13 Aug 2013 01:38:30 +0200 mq: update subrepos when applying / unapplying patches that change .hgsubstate
Angel Ezquerra <angel.ezquerra@gmail.com> [Tue, 13 Aug 2013 01:38:30 +0200] rev 19638
mq: update subrepos when applying / unapplying patches that change .hgsubstate Up until now applying or unapplying a patch that modified .hgsubstate would not work as expected because it would not update the subrepos according to the .hgsubstate change. This made it very easy to lose subrepo changes when using mq. This revision also changes the test-mq-subrepo test so that on the qpop / qpush tests. We no longer use the debugsub command to check the state of the subrepos after the qpop and qpush operations. Instead we directly run the id command on the subrepos that we want to check. The reason is that using the debugsub command is misleading because it does not really check the state of the subrepos on the working directory (it just returns what the change that is specified on a given revision). Because of this the tests did not detect the problem that this revision fixes (i.e. that applying a patch did not update the subrepos to the corresponding revisions). # HG changeset patch # User Angel Ezquerra <angel.ezquerra@gmail.com> # Date 1376350710 -7200 # Tue Aug 13 01:38:30 2013 +0200 # Node ID 60897e264858cdcd46f89e27a702086f08adca02 # Parent 2defb5453f223c3027eb2f7788fbddd52bbb3352 mq: update subrepos when applying / unapplying patches that change .hgsubstate Up until now applying or unapplying a patch that modified .hgsubstate would not work as expected because it would not update the subrepos according to the .hgsubstate change. This made it very easy to lose subrepo changes when using mq. This revision also changes the test-mq-subrepo test so that on the qpop / qpush tests. We no longer use the debugsub command to check the state of the subrepos after the qpop and qpush operations. Instead we directly run the id command on the subrepos that we want to check. The reason is that using the debugsub command is misleading because it does not really check the state of the subrepos on the working directory (it just returns what the change that is specified on a given revision). Because of this the tests did not detect the problem that this revision fixes (i.e. that applying a patch did not update the subrepos to the corresponding revisions).
Wed, 21 Aug 2013 22:34:04 +0200 subrepo: make submerge() return the merged substate
Angel Ezquerra <angel.ezquerra@gmail.com> [Wed, 21 Aug 2013 22:34:04 +0200] rev 19637
subrepo: make submerge() return the merged substate This will be useful when reusing submerge() to improve the handling of subrepos on mq. # HG changeset patch # User Angel Ezquerra <angel.ezquerra@gmail.com> # Date 1377117244 -7200 # Wed Aug 21 22:34:04 2013 +0200 # Node ID 2defb5453f223c3027eb2f7788fbddd52bbb3352 # Parent a5c90acff5e61aae714ba6c9457d766c54b4f124 subrepo: make submerge() return the merged substate This will be useful when reusing submerge() to improve the handling of subrepos on mq.
Tue, 06 Aug 2013 00:49:39 +0200 mq: look for modified subrepos when checking for local changes
Angel Ezquerra <angel.ezquerra@gmail.com> [Tue, 06 Aug 2013 00:49:39 +0200] rev 19636
mq: look for modified subrepos when checking for local changes It was possible to apply, unapply, fold, patches (etc) with modified subrepos, which resulted in surprising behavior. For example it was easy to apply a patch with a modified subrepo, and then the refresh it and accidentally end up including the modified subrepo on the refreshed patch. A test has been added to verify this new check. # HG changeset patch # User Angel Ezquerra <angel.ezquerra@gmail.com> # Date 1375742979 -7200 # Tue Aug 06 00:49:39 2013 +0200 # Node ID a5c90acff5e61aae714ba6c9457d766c54b4f124 # Parent 6ac206fb6f27492a98f46bbff090407ee1b1de72 mq: look for modified subrepos when checking for local changes It was possible to apply, unapply, fold, patches (etc) with modified subrepos, which resulted in surprising behavior. For example it was easy to apply a patch with a modified subrepo, and then the refresh it and accidentally end up including the modified subrepo on the refreshed patch. A test has been added to verify this new check.
Wed, 07 Aug 2013 09:59:45 +0800 localrepo: get value from the unfiltered caches should check if the attribute existed.
Wei, Elson <elson.wei@gmail.com> [Wed, 07 Aug 2013 09:59:45 +0800] rev 19635
localrepo: get value from the unfiltered caches should check if the attribute existed. If the attribute existed already, it should be returned by getattr(). Otherwise, it will be evaluated again.
Fri, 19 Jul 2013 02:09:13 +0400 hgweb: always run search when a query is entered (bc)
Alexander Plavin <alexander@plav.in> [Fri, 19 Jul 2013 02:09:13 +0400] rev 19634
hgweb: always run search when a query is entered (bc) This changes the behavior for queries which point at a revision directly, now the output is consistent to other cases: it results in only this matched revision shown, not the log starting with it. A new test checks this behaviour and fails for the old one.
Fri, 19 Jul 2013 02:41:11 +0400 hgweb: search() function supports direct pointing to revision
Alexander Plavin <alexander@plav.in> [Fri, 19 Jul 2013 02:41:11 +0400] rev 19633
hgweb: search() function supports direct pointing to revision This doesn't change the behavior, as queries directly pointing to revisions are not delegated to the search() function now.
Thu, 22 Aug 2013 16:42:10 +0400 hgweb: pass arguments which a function depends on explicitly in search
Alexander Plavin <alexander@plav.in> [Thu, 22 Aug 2013 16:42:10 +0400] rev 19632
hgweb: pass arguments which a function depends on explicitly in search This changes makes clearer which arguments can a function depend on. Now all the modified functions depend on the 'query' argument only, but future additions will change it.
Thu, 22 Aug 2013 16:45:23 +0400 hgweb: add dynamic search function selection, depending on the query
Alexander Plavin <alexander@plav.in> [Thu, 22 Aug 2013 16:45:23 +0400] rev 19631
hgweb: add dynamic search function selection, depending on the query This allows adding other specific search functions, in addition to current keyword search.
Mon, 26 Aug 2013 17:11:01 -0700 unionrevlog: extract 'baserevision' and 'baserevdiff' methods
Wojciech Lopata <lopek@fb.com> [Mon, 26 Aug 2013 17:11:01 -0700] rev 19630
unionrevlog: extract 'baserevision' and 'baserevdiff' methods This makes possible to use unionrevlog class with subclasses of revlog that override revlog's 'revision' and 'revdiff' methods. In particular this change is necessary to implement manifest compression, as it allows extension to replace manifest class and override 'revision' amd 'revdiff' methods there.
Mon, 26 Aug 2013 16:50:31 -0700 bundlerevlog: extract 'baserevision' method
Wojciech Lopata <lopek@fb.com> [Mon, 26 Aug 2013 16:50:31 -0700] rev 19629
bundlerevlog: extract 'baserevision' method This makes possible to use bundlerevlog class with subclasses of revlog that override revlog's 'revision' method. In particular this change is necessary to implement manifest compression, as it allows extension to replace manifest class and override 'revision' method there.
Mon, 26 Aug 2013 15:20:44 -0700 solaris: tests can't use tail -n
Danek Duvall <danek.duvall@oracle.com> [Mon, 26 Aug 2013 15:20:44 -0700] rev 19628
solaris: tests can't use tail -n Solaris tail doesn't recognize the -n option. Replace the one use of it with some inline python code, and add a test case to check-code.py.
Fri, 23 Aug 2013 16:05:38 -0700 solaris: sed doesn't recognize a line without a newline
Danek Duvall <danek.duvall@oracle.com> [Fri, 23 Aug 2013 16:05:38 -0700] rev 19627
solaris: sed doesn't recognize a line without a newline
Fri, 23 Aug 2013 14:31:42 -0700 solaris: test cases can't use grep -a
Danek Duvall <danek.duvall@oracle.com> [Fri, 23 Aug 2013 14:31:42 -0700] rev 19626
solaris: test cases can't use grep -a The -a option to GNU grep isn't available when using Solaris grep. Replace the one use of grep -a in the testsuite with some in-line Python that does the equivalent, and add a check for grep -a in check-code.py.
Mon, 19 Aug 2013 11:25:23 -0700 revlog: pass node as an argument of addrevision
Wojciech Lopata <lopek@fb.com> [Mon, 19 Aug 2013 11:25:23 -0700] rev 19625
revlog: pass node as an argument of addrevision This change will allow revlog subclasses that override 'checkhash' method to use custom strategy of computing nodeids without overriding 'addrevision' method. In particular this change is necessary to implement manifest compression.
Mon, 19 Aug 2013 11:06:38 -0700 revlog: extract 'checkhash' method
Wojciech Lopata <lopek@fb.com> [Mon, 19 Aug 2013 11:06:38 -0700] rev 19624
revlog: extract 'checkhash' method Extract method that decides whether nodeid is correct for paricular revision text and parent nodes. Having this method extracted will allow revlog subclasses to implement custom way of computing nodes. In particular this change is necessary to implement manifest compression.
Mon, 26 Aug 2013 16:11:21 +0900 histedit: discard meaningless comment about 'hexlify node'
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 26 Aug 2013 16:11:21 +0900] rev 19623
histedit: discard meaningless comment about 'hexlify node' Refactoring in 26b41a902195 made this comment meaningless. The node gotten by "discovery.findcommonoutgoing()" is hexlified in "between()" by "repo.set('%n::%n', old, new)".
Mon, 26 Aug 2013 16:11:21 +0900 histedit: add description about "histedit --outgoing" to command help
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 26 Aug 2013 16:11:21 +0900] rev 19622
histedit: add description about "histedit --outgoing" to command help Before this patch, there is no explicit description that argument is treated as the URL of the destination repository when "--outgoing" is specified. This patch adds description about "histedit --outgoing" to command help of it.
Mon, 26 Aug 2013 16:11:21 +0900 histedit: add description about basic histedit function to command help
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 26 Aug 2013 16:11:21 +0900] rev 19621
histedit: add description about basic histedit function to command help Before this patch, there is no explicit description that histedit edits changesets between specified ancestor and the parent of the working directory: users may notice it by error message "REV is not an ancestor of working directory". This patch adds description about basic histedit function to command help of it. This patch uses term "ancestor" instead of "parent", because it seems to be more suitable, and almost all (error) messages already use it.
Fri, 23 Aug 2013 16:16:22 -0400 httpclient: import 0d1b0a8bc549 to fix bug involving late-arriving RST after a response
Augie Fackler <raf@durin42.com> [Fri, 23 Aug 2013 16:16:22 -0400] rev 19620
httpclient: import 0d1b0a8bc549 to fix bug involving late-arriving RST after a response After a day of hunting this defect, I'm now unable to reproduce the bug without this patch applied. Regardless, this should fix the problem I was observing with wireshark. Hopefully this fixes any flakiness in the buildbot from http2.
Fri, 23 Aug 2013 13:28:18 -0400 progress: stop getting stuck in a nested topic during a long inner step
Augie Fackler <raf@durin42.com> [Fri, 23 Aug 2013 13:28:18 -0400] rev 19619
progress: stop getting stuck in a nested topic during a long inner step Convert, for example, has loops like this: for revision in source_repo: progress(revisions) for file in revision: progresss(file) Prior to this change, we would start showing the file-level progress when we encountered a big revision, and then we'd get stuck in showing file-progress instead of revision progress, often producing many many instantly-completing progress bars rather than the actually-helpful top-level revisions bar.
Thu, 15 Aug 2013 21:36:53 -0400 Backed out changeset 77d434760857
Augie Fackler <raf@durin42.com> [Thu, 15 Aug 2013 21:36:53 -0400] rev 19618
Backed out changeset 77d434760857
Thu, 15 Aug 2013 21:35:56 -0400 hgrc.d: separate namespace for mercurial scripts 9diff and 9mail
Jeff Sickel <jas@corpus-callosum.com> [Thu, 15 Aug 2013 21:35:56 -0400] rev 19617
hgrc.d: separate namespace for mercurial scripts 9diff and 9mail
Wed, 14 Aug 2013 12:42:22 -0500 debugfs: add hardlink support reporting
Matt Mackall <mpm@selenic.com> [Wed, 14 Aug 2013 12:42:22 -0500] rev 19616
debugfs: add hardlink support reporting
Sun, 04 Aug 2013 13:43:39 +0200 obsolete: allow passing a revision to successorssets()
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Sun, 04 Aug 2013 13:43:39 +0200] rev 19615
obsolete: allow passing a revision to successorssets()
(0) -10000 -3000 -1000 -192 +192 +1000 +3000 +10000 +30000 tip