Sun, 28 Jun 2015 22:57:33 +0900 revset: port extra() to support keyword arguments
Yuya Nishihara <yuya@tcha.org> [Sun, 28 Jun 2015 22:57:33 +0900] rev 25706
revset: port extra() to support keyword arguments This is an example to show how keyword arguments are processed.
Sat, 27 Jun 2015 17:25:01 +0900 revset: add function to build dict of positional and keyword arguments
Yuya Nishihara <yuya@tcha.org> [Sat, 27 Jun 2015 17:25:01 +0900] rev 25705
revset: add function to build dict of positional and keyword arguments Keyword arguments will be convenient for functions that will take more than one optional or boolean flags. For example, file(pattern[, subrepos=false]) subrepo([[pattern], status]) Because I don't think all functions should accept key=value syntax, getkwargs() does not support variadic functions such as 'ancestor(*changeset)'. The core logic is placed in the parser module because keyword arguments will be more useful in the templater, where functions take more options. Test cases will be added by the next patch.
Sat, 27 Jun 2015 17:05:28 +0900 revset: add parsing rule for key=value pair
Yuya Nishihara <yuya@tcha.org> [Sat, 27 Jun 2015 17:05:28 +0900] rev 25704
revset: add parsing rule for key=value pair It will be used as an keyword argument. Note that our "=" operator is left-associative. In general, the assignment operator is right-associative, but we don't care because it isn't allowed to chain "=" operations.
Sun, 28 Jun 2015 12:46:34 -0700 import-checker: establish modern import convention
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 28 Jun 2015 12:46:34 -0700] rev 25703
import-checker: establish modern import convention We introduce a new convention for declaring imports and enforce it via the import checker script. The new convention is only active when absolute imports are used, which is currently nowhere. Keying off "from __future__ import absolute_import" to engage the new import convention seems like the easiest solution. It is also beneficial for Mercurial to use this mode because it means less work and ambiguity for the importer and potentially better performance due to fewer stat() system calls because the importer won't look for modules in relative paths unless explicitly asked. Once all files are converted to use absolute import, we can refactor this code to again only have a single import convention and we can require use of absolute import in the style checker. The rules for the new convention are documented in the docstring of the added function. Tests have been added to test-module-imports.t. Some tests are sensitive to newlines and source column position, which makes docstring testing difficult and/or impossible.
Sun, 28 Jun 2015 12:28:48 -0700 import-checker: establish new function for verifying import conventions
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 28 Jun 2015 12:28:48 -0700] rev 25702
import-checker: establish new function for verifying import conventions A future patch will formalize the modern import convention. In preparation for that, introduce a new wrapper function that will invoke the proper function.
Sun, 28 Jun 2015 09:36:58 -0700 import-checker: resolve relative imports
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 28 Jun 2015 09:36:58 -0700] rev 25701
import-checker: resolve relative imports "from . import X" will produce an ImportFrom ast node with .module = None. This resulted in a run-time error from attempting to concatenate None with a str. Another problem with relative imports is that the prefix may be dynamic based on the "level" attribute of the import. e.g. "from ." has level 1 and "from .." has level 2. We teach the "fromlocal" function how to cope with relative imports. Where appropriate, the consumer passes in the level so relative module names may be resolved properly.
Fri, 26 Jun 2015 23:23:10 -0400 templatekw: use a list of tags in getlatesttags() instead of joining them
Matt Harbison <matt_harbison@yahoo.com> [Fri, 26 Jun 2015 23:23:10 -0400] rev 25700
templatekw: use a list of tags in getlatesttags() instead of joining them This will be used in the next patch. It also points out that the documentation for '{latesttag}' is not quite accurate, since it says "most recent global tag" (singular). I assume it is too radical of a change to convert it to a list of strings. At least ':' is currently a reserved character in tag names.
Mon, 29 Jun 2015 17:19:58 -0700 convert: improve support for unusual .gitmodules
Durham Goode <durham@fb.com> [Mon, 29 Jun 2015 17:19:58 -0700] rev 25699
convert: improve support for unusual .gitmodules Previously convert would throw an exception if it encountered a git commit with a .gitmodules file that was malformed (i.e. was missing, but had submodule files, or was malformed). Instead of breaking the convert entirely, let's print error messages and move on.
Mon, 29 Jun 2015 17:19:18 -0700 convert: handle .gitmodules with non-tab whitespaces
Durham Goode <durham@fb.com> [Mon, 29 Jun 2015 17:19:18 -0700] rev 25698
convert: handle .gitmodules with non-tab whitespaces The old implementation assumed .gitmodules file lines always began with tabs. It can be any whitespace, so lets trim the lines appropriately.
Mon, 29 Jun 2015 13:39:05 -0700 convert: fix bug with converting the same commit twice
Durham Goode <durham@fb.com> [Mon, 29 Jun 2015 13:39:05 -0700] rev 25697
convert: fix bug with converting the same commit twice Convert had a bug where it relied on repo.tip() to be the newly committed commit. This was not the case if the commit already existed in the repository (since repo.commitctx() did nothing, the tip() referenced some random other commit and the revmap got corrupted). This fixes it by using the node returned by repo.commitctx().
Sat, 27 Jun 2015 15:28:46 +0900 templater: remove workaround for escaped quoted string in quoted template
Yuya Nishihara <yuya@tcha.org> [Sat, 27 Jun 2015 15:28:46 +0900] rev 25696
templater: remove workaround for escaped quoted string in quoted template This patch backs out 554d6fcc3c84 which should no longer be needed. The test for '{\"invalid\"}' is removed because the parser is permissive for \"...\" literal.
Wed, 01 Jul 2015 16:33:31 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 01 Jul 2015 16:33:31 -0500] rev 25695
merge with stable
Tue, 30 Jun 2015 22:39:28 -0700 amend: stop updating the bookmarks twice
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 30 Jun 2015 22:39:28 -0700] rev 25694
amend: stop updating the bookmarks twice There was code to move the bookmarks around both in the 'cmdutil' help and in the main 'commit' function. We kill the 'commit' version as it is performed outside the transaction. The debug note is moved into cmdutil.
Tue, 30 Jun 2015 22:36:49 -0700 amend: collaborate with the transaction when moving bookmarks
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 30 Jun 2015 22:36:49 -0700] rev 25693
amend: collaborate with the transaction when moving bookmarks We have code moving bookmarks from the old changeset to the new one within the transaction scope. Yet this code was still writing to disk instead of handing the change to the transaction. This changeset fixes this.
Mon, 29 Jun 2015 17:10:36 -0400 sshserver: drop ancient do_{lock,unlock,addchangegroup} methods
Augie Fackler <augie@google.com> [Mon, 29 Jun 2015 17:10:36 -0400] rev 25692
sshserver: drop ancient do_{lock,unlock,addchangegroup} methods These were marked as deprecated and dangerous way back in e8c4f3d3df8c, which was first included in Mercurial 0.9.1. While it's possible that clients from that long ago are still around somewhere, they're risky for servers in that they want to lock the repo, and then might leave it locked if they died before finishing their transaction. Given that it's been 9 years, let's go ahead and cut this last lingering tie with a basically-untested protocol.
Mon, 29 Jun 2015 12:35:31 -0400 wireproto: add config knob for http header length limit
Mike Edgar <adgar@google.com> [Mon, 29 Jun 2015 12:35:31 -0400] rev 25691
wireproto: add config knob for http header length limit Well-behaved Mercurial clients will respect the httpheader capability by not sending http headers longer than the given limit in bytes. The limit is currently hard-coded at 1024 bytes, a safe value for any web server. Since parsing headers is a notable factor in web server performance, tuning header size can nontrivially improve performance for request-heavy operations (eg. obsolete marker negotiation). Exposing the maximum header length limit as a configuration setting is a simple way to enable such tuning.
Wed, 01 Jul 2015 15:12:45 -0500 archive: fix changesincelatesttag with wdir()
Matt Mackall <mpm@selenic.com> [Wed, 01 Jul 2015 15:12:45 -0500] rev 25690
archive: fix changesincelatesttag with wdir()
Mon, 29 Jun 2015 10:34:56 -0400 revset: fix a crash in parents() when 'wdir()' is in the set
Matt Harbison <matt_harbison@yahoo.com> [Mon, 29 Jun 2015 10:34:56 -0400] rev 25689
revset: fix a crash in parents() when 'wdir()' is in the set The crash was "TypeError: expected string or Unicode object, NoneType found" down in revlog.parentrevs(). This fixes heads() too (which is where I found it.)
Sun, 28 Jun 2015 13:38:03 -0400 workingctx: don't report the tags for its parents
Matt Harbison <matt_harbison@yahoo.com> [Sun, 28 Jun 2015 13:38:03 -0400] rev 25688
workingctx: don't report the tags for its parents This fixes the bad distance calculation for '{latesttagdistance}' mentioned in the previous patch.
Tue, 30 Jun 2015 23:34:12 +0800 hgweb: don't try to show repo on repo-not-found page in monoblue
Anton Shestakov <av6@dwimlabs.net> [Tue, 30 Jun 2015 23:34:12 +0800] rev 25687
hgweb: don't try to show repo on repo-not-found page in monoblue
Tue, 30 Jun 2015 23:31:19 +0800 hgweb: fix help pages title in gitweb and monoblue
Anton Shestakov <av6@dwimlabs.net> [Tue, 30 Jun 2015 23:31:19 +0800] rev 25686
hgweb: fix help pages title in gitweb and monoblue Help pages in gitweb and monoblue were setting a completely inappropriate title: "Branches". Let's have a proper title (copy-pasted from paper style).
Tue, 30 Jun 2015 22:15:58 +0800 hgweb: don't show summary link as active on error pages in monoblue
Anton Shestakov <av6@dwimlabs.net> [Tue, 30 Jun 2015 22:15:58 +0800] rev 25685
hgweb: don't show summary link as active on error pages in monoblue These two error pages in monoblue think they are the summary page, when they clearly aren't.
Sun, 28 Jun 2015 13:22:17 -0400 identify: build the tag list directly instead of using wctx.tags()
Matt Harbison <matt_harbison@yahoo.com> [Sun, 28 Jun 2015 13:22:17 -0400] rev 25684
identify: build the tag list directly instead of using wctx.tags() The current implementation of workingctx.tags() returns the tags of the parents. This causes the calculation of {lastesttagdistance} from wdir() to be wrong. The value when updated to a tag is 0, but updated to the tag's child is 2, the child of that 3, and so on. This prepares for workingctx.tags() to not report the parent tags.
Sun, 28 Jun 2015 18:39:58 -0400 identify: avoid a crash when given '-r wdir()'
Matt Harbison <matt_harbison@yahoo.com> [Sun, 28 Jun 2015 18:39:58 -0400] rev 25683
identify: avoid a crash when given '-r wdir()' The crash was 'NoneType is not subscriptable' in hexfunc(ctx.node()), because the node for wdir() is None. This can be avoided simply by detecting 'wdir()' and taking the existing path for no given revision.
Fri, 26 Jun 2015 14:33:34 -0700 tests: clean up duplicated output in test-subrepo-recursion progress
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 26 Jun 2015 14:33:34 -0700] rev 25682
tests: clean up duplicated output in test-subrepo-recursion progress We have fixed a bug where two progress instance were created and competed with each other (in 95f490136e75). But we did not updated the non-hardlink section of 'test-subrepo-recursion.t'. This patch fixes it.
Wed, 01 Jul 2015 17:46:37 -0500 Added signature for changeset 540cd0ddac49 stable
Matt Mackall <mpm@selenic.com> [Wed, 01 Jul 2015 17:46:37 -0500] rev 25681
Added signature for changeset 540cd0ddac49
Wed, 01 Jul 2015 17:46:37 -0500 Added tag 3.4.2 for changeset 540cd0ddac49 stable
Matt Mackall <mpm@selenic.com> [Wed, 01 Jul 2015 17:46:37 -0500] rev 25680
Added tag 3.4.2 for changeset 540cd0ddac49
Mon, 29 Jun 2015 19:09:42 -0700 transplant: only pull the transplanted revision (issue4692) stable 3.4.2
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 29 Jun 2015 19:09:42 -0700] rev 25679
transplant: only pull the transplanted revision (issue4692) For some reason, transplant was pulling all remote revisions when transplanting from a remote repository (unless --branch was specified).
Mon, 29 Jun 2015 19:18:51 -0700 transplant: update test to use hash for remote transplant stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 29 Jun 2015 19:18:51 -0700] rev 25678
transplant: update test to use hash for remote transplant Transplant is apparently allowing using revision numbers when transplanting through http. I call this nonsense and update the test to use an explicit hash. This "feature" will break in the next change fixing another bug.
Mon, 29 Jun 2015 11:20:09 -0700 changegroup: properly compute common base in changeggroupsubset (issue4736) stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 29 Jun 2015 11:20:09 -0700] rev 25677
changegroup: properly compute common base in changeggroupsubset (issue4736) The computation of roots was buggy, any ancestor of a bundled merge which was also a descendant of the parents of a bundled revision were included as part of the bundle. We fix it and add a test for strip (which revealed the problem). Check the test for a practical usecase.
(0) -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip