Sat, 11 Mar 2017 12:25:56 -0800 rebase: don't update state dict same way for each root
Martin von Zweigbergk <martinvonz@google.com> [Sat, 11 Mar 2017 12:25:56 -0800] rev 32175
rebase: don't update state dict same way for each root The update statement does not depend on anything in the loop, so just move it before the loop and do it once. There are no cases where update would happen 0 times before (and 1 now); the function returns early in all such cases.
Thu, 04 May 2017 21:11:40 -0700 forget: access status fields by name, not index
Martin von Zweigbergk <martinvonz@google.com> [Thu, 04 May 2017 21:11:40 -0700] rev 32174
forget: access status fields by name, not index
Wed, 03 May 2017 18:26:57 -0700 demandimport: add urwid.command_map to ignore list
Phil Cohen <phillco@fb.com> [Wed, 03 May 2017 18:26:57 -0700] rev 32173
demandimport: add urwid.command_map to ignore list The useful pudb debugger can be used with Mercurial, but its import of urwid fails when demandimport is enabled. Add urwid.command_map to the ignore list so pudb can be used with hg without disabling all of demandimport.
Fri, 05 May 2017 10:08:36 -0700 outgoing: run on filtered repo
Martin von Zweigbergk <martinvonz@google.com> [Fri, 05 May 2017 10:08:36 -0700] rev 32172
outgoing: run on filtered repo outgoing has been using an unfiltered repo since fe67107094fd (discovery: outgoing pass unfiltered repo to findcommonincoming (issue3776), 2013-01-28). If I'm reading code and history correctly, it should be safe to run _outgoing() on a filtered repo since c5456b64eb07 (discovery: run discovery on filtered repository, 2015-01-07). By running _outgoing() on a filtered repo, we can also remove the workaround there for ignoring filtered revisions.
Fri, 05 May 2017 14:10:58 -0700 manifest: remove check for non-contexts in _dirmancache
Martin von Zweigbergk <martinvonz@google.com> [Fri, 05 May 2017 14:10:58 -0700] rev 32171
manifest: remove check for non-contexts in _dirmancache It looks like the _dirmancache has contained only manifest contexts since d79c141fdf41 (manifest: remove usages of manifest.read, 2016-11-10).
Thu, 04 May 2017 12:48:45 +0200 bundle: factor the 'getchangegroup' out
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 04 May 2017 12:48:45 +0200] rev 32170
bundle: factor the 'getchangegroup' out The call in the two branches is identical, so we can just issue it outside of the conditional.
Thu, 04 May 2017 12:47:27 +0200 bundle: avoid reset of the 'outgoing' variable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 04 May 2017 12:47:27 +0200] rev 32169
bundle: avoid reset of the 'outgoing' variable We have a cleaner way to achieve the same effect. Not resetting the variable will help us to simplify the code.
Thu, 04 May 2017 12:43:41 +0200 changegroup: deprecate 'getlocalchangroup' (API)
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 04 May 2017 12:43:41 +0200] rev 32168
changegroup: deprecate 'getlocalchangroup' (API) We have 'getchangegroup' with a shorter name for the exactly same feature. Now that all users are gone we can formally deprecate it.
Thu, 04 May 2017 12:41:50 +0200 tests: directly 'getchangegroup'
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 04 May 2017 12:41:50 +0200] rev 32167
tests: directly 'getchangegroup' It is identical to 'getlocalchangegroup' with a shorter name.
Thu, 04 May 2017 12:41:36 +0200 exchange: directly 'getchangegroup'
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 04 May 2017 12:41:36 +0200] rev 32166
exchange: directly 'getchangegroup' It is identical to 'getlocalchangegroup' with a shorter name.
Thu, 04 May 2017 12:41:17 +0200 commands: directly 'getchangegroup'
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 04 May 2017 12:41:17 +0200] rev 32165
commands: directly 'getchangegroup' It is identical to 'getlocalchangegroup' with a shorter name.
Thu, 04 May 2017 12:36:45 +0200 changegroup: deduplicate 'getlocalchangegroup'
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 04 May 2017 12:36:45 +0200] rev 32164
changegroup: deduplicate 'getlocalchangegroup' The two functions 'getlocalchangegroup' and 'getchangegroup' have been strictly identical for multiple years ('getchangegroup' had a deprecated docstring) We'll drop one of them (getlocalchangegroup, since it has the longest name). However, we needs to migrate all users of the dropped one to the new one before we can deprecate it. In the mean time we drop one of the duplicated definition and the outdated docstring.
Thu, 04 May 2017 04:57:30 +0530 py3: add test to show 'hg log -Tjson' works
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 04 May 2017 04:57:30 +0530] rev 32163
py3: add test to show 'hg log -Tjson' works
Thu, 04 May 2017 04:52:03 +0530 py3: add test to show 'hg log -G' works
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 04 May 2017 04:52:03 +0530] rev 32162
py3: add test to show 'hg log -G' works
Thu, 04 May 2017 04:42:05 +0530 py3: rename test-check-py3-commands.t to test-py3-commands.t
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 04 May 2017 04:42:05 +0530] rev 32161
py3: rename test-check-py3-commands.t to test-py3-commands.t test-check-*.t is a set of tests which tests certain coding style checks. So this test was wrongly named, thanks to marmoute for pointing this out.
Thu, 04 May 2017 04:38:20 +0530 py3: use list of bytes rather than bytestring while extending bytes into lists
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 04 May 2017 04:38:20 +0530] rev 32160
py3: use list of bytes rather than bytestring while extending bytes into lists Python 2: >>> ls = [] >>> ls.extend(b'abc') >>> ls ['a', 'b', 'c'] Python 3: >>> ls = [] >>> ls.extend(b'abc') >>> ls [97, 98, 99] So to make sure things work fine in Py3, this patch does: >>> ls = [] >>> ls.extend([b'a', b'b', b'c']) >>> ls [b'a', b'b', b'c'] After this `hg log -G` works!
Thu, 04 May 2017 01:12:14 +0530 py3: use pycompat.byteskwargs to converts kwargs to bytes
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 04 May 2017 01:12:14 +0530] rev 32159
py3: use pycompat.byteskwargs to converts kwargs to bytes baseformatter._item must contain both keys and values in bytes. So to make sure that, we convert the opts back to bytes.
Thu, 04 May 2017 00:44:53 +0530 py3: make adefaults keys str to be compatible with getattr
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 04 May 2017 00:44:53 +0530] rev 32158
py3: make adefaults keys str to be compatible with getattr getattr passes a str value of the attribute to be looked and keys in adefaults dict are bytes which resulted in AttributeError. This patch abuses r'' to make the keys str.
Wed, 03 May 2017 15:41:28 +0530 py3: abuse r'' to access keys in keyword arguments
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 03 May 2017 15:41:28 +0530] rev 32157
py3: abuse r'' to access keys in keyword arguments
Wed, 03 May 2017 15:37:51 +0530 py3: use pycompat.bytechr instead of chr
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 03 May 2017 15:37:51 +0530] rev 32156
py3: use pycompat.bytechr instead of chr
Fri, 05 May 2017 01:41:54 +0530 py3: use %d to format integers into bytestrings
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 05 May 2017 01:41:54 +0530] rev 32155
py3: use %d to format integers into bytestrings
Fri, 05 May 2017 01:26:49 +0530 py3: use pycompat.bytestr instead of bytes
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 05 May 2017 01:26:49 +0530] rev 32154
py3: use pycompat.bytestr instead of bytes
Fri, 05 May 2017 01:26:13 +0530 py3: slice over bytes to prevent getting ascii values
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 05 May 2017 01:26:13 +0530] rev 32153
py3: slice over bytes to prevent getting ascii values
Sat, 08 Apr 2017 11:02:37 +0530 py3: use encoding.unitolocal instead of .encode(encoding.encoding)
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 08 Apr 2017 11:02:37 +0530] rev 32152
py3: use encoding.unitolocal instead of .encode(encoding.encoding)
Wed, 03 May 2017 10:43:59 -0700 rebase: use matcher to optimize manifestmerge
Durham Goode <durham@fb.com> [Wed, 03 May 2017 10:43:59 -0700] rev 32151
rebase: use matcher to optimize manifestmerge The old merge code would call manifestmerge and calculate the complete diff between the source to the destination. In many cases, like rebase, the vast majority of differences between the source and destination are irrelevant because they are differences between the destination and the common ancestor only, and therefore don't affect the merge. Since most actions are 'keep', all the effort to compute them is wasted. Instead, let's compute the difference between the source and the common ancestor and only perform the diff of those files against the merge destination. When using treemanifest, this lets us avoid loading almost the entire tree when rebasing from a very old ancestor. This speeds up rebase of an old stack of 27 commits by 20x. In mozilla-central, without treemanifest, when rebasing a commit from default~100000 to default, this speeds up the manifestmerge step from 2.6s to 1.2s. However, the additional diff adds an overhead to all manifestmerge calls, especially for flat manifests. When rebasing a commit from default~1 to default it appears to add 100ms in mozilla-central. While we could put this optimization behind a flag, I think the fact that it makes merge O(number of changes being applied) instead of O(number of changes between X and Y) justifies it.
Tue, 02 May 2017 23:47:10 -0700 changegroup: delete unused 'bundlecaps' argument (API)
Martin von Zweigbergk <martinvonz@google.com> [Tue, 02 May 2017 23:47:10 -0700] rev 32150
changegroup: delete unused 'bundlecaps' argument (API)
Wed, 03 May 2017 10:33:26 -0700 localrepo: reuse exchange.bundle2requested()
Martin von Zweigbergk <martinvonz@google.com> [Wed, 03 May 2017 10:33:26 -0700] rev 32149
localrepo: reuse exchange.bundle2requested() It seems like localrepo.getbundle() is trying to do the same thing, so let's just call the method. That way we get the same condition as there (matching any "HG2" prefix, not only "HG20").
Fri, 28 Apr 2017 01:13:07 +0530 py3: use raw strings while accessing class.__dict__
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 28 Apr 2017 01:13:07 +0530] rev 32148
py3: use raw strings while accessing class.__dict__ The keys of class.__dict__ are unicodes on Python 3.
Tue, 25 Apr 2017 01:52:30 +0530 py3: handle opts correctly for `hg add`
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 25 Apr 2017 01:52:30 +0530] rev 32147
py3: handle opts correctly for `hg add` opts in add command were passed again to cmdutil.add() as kwargs so we need to convert them again to str. Intstead we convert them to bytes when passing scmutil.match(). Opts handling is also corrected for all the functions which are called from cmdutil.add().
Mon, 24 Apr 2017 04:32:04 +0530 py3: handle opts correctly for rollback
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 24 Apr 2017 04:32:04 +0530] rev 32146
py3: handle opts correctly for rollback dryrun and force are just check for None, the value is not used. So its better to leave opts as unicodes as that wont harm us.
Fri, 21 Apr 2017 15:04:32 +0530 py3: handle opts correctly for unbundle
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 21 Apr 2017 15:04:32 +0530] rev 32145
py3: handle opts correctly for unbundle There is just a check whether the value is None or not. So even having optupdate as unicodes won't harm us.
Fri, 21 Apr 2017 02:20:46 +0530 py3: convert opts to bytes in cmdutil.dorecord()
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 21 Apr 2017 02:20:46 +0530] rev 32144
py3: convert opts to bytes in cmdutil.dorecord() commands.commit() calls cmdutil.dorecord() where opts are passed as unicodes being keyword arguments. This patch converts them back to bytes as they are required.
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -32 +32 +50 +100 +300 +1000 +3000 +10000 tip