Sun, 17 Sep 2017 12:39:53 +0900 py3: convert system strings to bytes in doctest of formatter.py
Yuya Nishihara <yuya@tcha.org> [Sun, 17 Sep 2017 12:39:53 +0900] rev 34256
py3: convert system strings to bytes in doctest of formatter.py
Sun, 17 Sep 2017 12:39:14 +0900 py3: rewrite stdout hack of doctest by using ui.pushbuffer()
Yuya Nishihara <yuya@tcha.org> [Sun, 17 Sep 2017 12:39:14 +0900] rev 34255
py3: rewrite stdout hack of doctest by using ui.pushbuffer() We can't use pycompat.stdout here because the doctest runner replaces sys.stdout with a string buffer.
Sun, 17 Sep 2017 12:26:42 +0900 py3: use bytes os.sep in doctest of pathutil.py
Yuya Nishihara <yuya@tcha.org> [Sun, 17 Sep 2017 12:26:42 +0900] rev 34254
py3: use bytes os.sep in doctest of pathutil.py
Sun, 17 Sep 2017 12:23:16 +0900 py3: fix doctests in patch.py to be compatible with Python 3
Yuya Nishihara <yuya@tcha.org> [Sun, 17 Sep 2017 12:23:16 +0900] rev 34253
py3: fix doctests in patch.py to be compatible with Python 3 We were lucky that parsepatch() could concatenate a character slice as if it were a list of chunks.
Sun, 17 Sep 2017 12:20:35 +0900 py3: stop using bytes[n] in patch.py
Yuya Nishihara <yuya@tcha.org> [Sun, 17 Sep 2017 12:20:35 +0900] rev 34252
py3: stop using bytes[n] in patch.py
Sun, 03 Sep 2017 16:45:33 +0900 error: move patch.PatchError so it can easily implement __bytes__ (API)
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Sep 2017 16:45:33 +0900] rev 34251
error: move patch.PatchError so it can easily implement __bytes__ (API)
Fri, 15 Sep 2017 00:01:57 -0700 templater: extract shortest() logic from template function
Martin von Zweigbergk <martinvonz@google.com> [Fri, 15 Sep 2017 00:01:57 -0700] rev 34250
templater: extract shortest() logic from template function It can be useful for extensions to be able to produce the shortest unambiguous hash (including the in-tree "show" extension). That logic is currently inside the shortest() template function. Let's move it out of the templater. I've put it on revlog since it's closely related to revlog._partialmatch. We may also want a convenience method on context, but I'll leave that for a later patch. Differential Revision: https://phab.mercurial-scm.org/D724
Fri, 15 Sep 2017 18:37:29 -0400 bundle2: raise a more helpful error if building a bundle part header fails
Augie Fackler <raf@durin42.com> [Fri, 15 Sep 2017 18:37:29 -0400] rev 34249
bundle2: raise a more helpful error if building a bundle part header fails I've tripped on this several times now, and am tired of debugging. Now the header parts are part of the error message when the ''.join() fails, which makes debugging obvious.
Fri, 15 Sep 2017 18:57:50 +0200 hgwebdir: read 'web.template' untrusted
Boris Feld <boris.feld@octobus.net> [Fri, 15 Sep 2017 18:57:50 +0200] rev 34248
hgwebdir: read 'web.template' untrusted The 'hgweb_mod.py' version of this read it untrusted. For consistency we align the two versions of this code.
Fri, 30 Jun 2017 03:45:53 +0200 configitems: register the 'web.templates' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:45:53 +0200] rev 34247
configitems: register the 'web.templates' config
Fri, 30 Jun 2017 03:45:52 +0200 configitems: register the 'web.style' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:45:52 +0200] rev 34246
configitems: register the 'web.style' config
Fri, 30 Jun 2017 03:45:51 +0200 configitems: register the 'web.stripes' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:45:51 +0200] rev 34245
configitems: register the 'web.stripes' config
Fri, 30 Jun 2017 03:45:50 +0200 configitems: register the 'web.refreshinterval' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:45:50 +0200] rev 34244
configitems: register the 'web.refreshinterval' config
Fri, 30 Jun 2017 03:45:49 +0200 configitems: register the 'web.prefix' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:45:49 +0200] rev 34243
configitems: register the 'web.prefix' config
Fri, 30 Jun 2017 03:45:48 +0200 configitems: register the 'web.port' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:45:48 +0200] rev 34242
configitems: register the 'web.port' config
Fri, 30 Jun 2017 03:45:47 +0200 configitems: register the 'web.ipv6' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:45:47 +0200] rev 34241
configitems: register the 'web.ipv6' config
Fri, 30 Jun 2017 03:45:45 +0200 configitems: register the 'web.errorlog' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:45:45 +0200] rev 34240
configitems: register the 'web.errorlog' config
Fri, 30 Jun 2017 03:45:44 +0200 configitems: register the 'web.encoding' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:45:44 +0200] rev 34239
configitems: register the 'web.encoding' config
Fri, 30 Jun 2017 03:45:43 +0200 configitems: register the 'web.description' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:45:43 +0200] rev 34238
configitems: register the 'web.description' config
Fri, 30 Jun 2017 03:45:42 +0200 configitems: register the 'web.descend' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:45:42 +0200] rev 34237
configitems: register the 'web.descend' config
Fri, 30 Jun 2017 03:45:41 +0200 configitems: register the 'web.deny_read' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:45:41 +0200] rev 34236
configitems: register the 'web.deny_read' config
Fri, 30 Jun 2017 03:45:40 +0200 configitems: register the 'web.csp' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:45:40 +0200] rev 34235
configitems: register the 'web.csp' config
Fri, 30 Jun 2017 03:45:38 +0200 configitems: register the 'web.collapse' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:45:38 +0200] rev 34234
configitems: register the 'web.collapse' config
Fri, 30 Jun 2017 03:45:37 +0200 configitems: register the 'web.certificate' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:45:37 +0200] rev 34233
configitems: register the 'web.certificate' config
Fri, 30 Jun 2017 03:45:36 +0200 configitems: register the 'web.cacerts' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:45:36 +0200] rev 34232
configitems: register the 'web.cacerts' config
Fri, 30 Jun 2017 03:45:35 +0200 configitems: register the 'web.baseurl' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:45:35 +0200] rev 34231
configitems: register the 'web.baseurl' config
Fri, 30 Jun 2017 03:45:34 +0200 configitems: register the 'web.allow_read' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:45:34 +0200] rev 34230
configitems: register the 'web.allow_read' config
Fri, 30 Jun 2017 03:45:33 +0200 configitems: register the 'web.allow_archive' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:45:33 +0200] rev 34229
configitems: register the 'web.allow_archive' config
Fri, 30 Jun 2017 03:45:32 +0200 configitems: register the 'web.address' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:45:32 +0200] rev 34228
configitems: register the 'web.address' config
Fri, 30 Jun 2017 03:45:31 +0200 configitems: register the 'web.accesslog' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:45:31 +0200] rev 34227
configitems: register the 'web.accesslog' config
Fri, 15 Sep 2017 19:21:08 +0200 web: use '_unset' default value for proxy config method
Boris Feld <boris.feld@octobus.net> [Fri, 15 Sep 2017 19:21:08 +0200] rev 34226
web: use '_unset' default value for proxy config method This special value is needed to make sure registered default value are taken in account.
Sat, 16 Sep 2017 11:48:05 -0400 tests: use int() instead of long() in test-pathencode.py
Augie Fackler <raf@durin42.com> [Sat, 16 Sep 2017 11:48:05 -0400] rev 34225
tests: use int() instead of long() in test-pathencode.py
Sat, 16 Sep 2017 11:47:53 -0400 tests: add xrange alias for test-pathencode.py
Augie Fackler <raf@durin42.com> [Sat, 16 Sep 2017 11:47:53 -0400] rev 34224
tests: add xrange alias for test-pathencode.py
Sat, 16 Sep 2017 11:33:16 -0400 python3: another 3 tests whitelisted
Augie Fackler <raf@durin42.com> [Sat, 16 Sep 2017 11:33:16 -0400] rev 34223
python3: another 3 tests whitelisted
Tue, 22 Aug 2017 21:22:34 -0400 repair: reliably obtain bytestr of node ids
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 21:22:34 -0400] rev 34222
repair: reliably obtain bytestr of node ids
Fri, 15 Sep 2017 18:38:36 -0400 bundles: turn nbchanges int into a bytestr using pycompat.bytestr
Augie Fackler <raf@durin42.com> [Fri, 15 Sep 2017 18:38:36 -0400] rev 34221
bundles: turn nbchanges int into a bytestr using pycompat.bytestr Fixes some python 3 failures.
Sat, 16 Sep 2017 11:09:08 -0400 exchange: hit opargs with pycompat.strkwargs before **-ing it
Augie Fackler <raf@durin42.com> [Sat, 16 Sep 2017 11:09:08 -0400] rev 34220
exchange: hit opargs with pycompat.strkwargs before **-ing it Fixes Python 3 problems.
Fri, 15 Sep 2017 23:58:45 +0900 revlog: update signature of dummy addgroup() in bundlerepo and unionrepo
Yuya Nishihara <yuya@tcha.org> [Fri, 15 Sep 2017 23:58:45 +0900] rev 34219
revlog: update signature of dummy addgroup() in bundlerepo and unionrepo Per c8b6ed51386b, 2f5c45fe3a3b and 00e3f909907f.
Sat, 16 Sep 2017 22:55:48 +0900 py3: use 'surrogatepass' error handler to process U+DCxx transparently
Yuya Nishihara <yuya@tcha.org> [Sat, 16 Sep 2017 22:55:48 +0900] rev 34218
py3: use 'surrogatepass' error handler to process U+DCxx transparently It's disallowed by default on Python 3. https://docs.python.org/3/library/codecs.html#error-handlers
Sat, 16 Sep 2017 22:42:19 +0900 py3: don't pass bytes to array.array()
Yuya Nishihara <yuya@tcha.org> [Sat, 16 Sep 2017 22:42:19 +0900] rev 34217
py3: don't pass bytes to array.array()
Sun, 03 Sep 2017 15:54:29 +0900 py3: wrap bytes in encoding.from/toutf8b() with bytestr
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Sep 2017 15:54:29 +0900] rev 34216
py3: wrap bytes in encoding.from/toutf8b() with bytestr
Sun, 03 Sep 2017 17:28:47 +0900 py3: iterate bytes as a byte string in store.lowerencode()
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Sep 2017 17:28:47 +0900] rev 34215
py3: iterate bytes as a byte string in store.lowerencode()
Sun, 03 Sep 2017 17:27:50 +0900 py3: use bytechr() in store._buildlowerencodefun()
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Sep 2017 17:27:50 +0900] rev 34214
py3: use bytechr() in store._buildlowerencodefun()
Sun, 03 Sep 2017 17:26:10 +0900 store: give name to lowerencode function
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Sep 2017 17:26:10 +0900] rev 34213
store: give name to lowerencode function lambda function isn't easy to track in traceback.
Sun, 03 Sep 2017 15:32:45 +0900 py3: iterate bytes as a byte string in dagparser.py
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Sep 2017 15:32:45 +0900] rev 34212
py3: iterate bytes as a byte string in dagparser.py
Sun, 03 Sep 2017 15:28:39 +0900 py3: wrap string constants in dagparser.py with bytestr()
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Sep 2017 15:28:39 +0900] rev 34211
py3: wrap string constants in dagparser.py with bytestr()
Sun, 03 Sep 2017 15:25:50 +0900 py3: drop use of str() in dagparser.py
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Sep 2017 15:25:50 +0900] rev 34210
py3: drop use of str() in dagparser.py
Sun, 03 Sep 2017 15:22:54 +0900 dagparser: fix variable name in error message
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Sep 2017 15:22:54 +0900] rev 34209
dagparser: fix variable name in error message There's no variable named 'type'.
Sun, 03 Sep 2017 17:47:21 +0900 py3: convert function name to bytes in ui.configwith()
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Sep 2017 17:47:21 +0900] rev 34208
py3: convert function name to bytes in ui.configwith()
Wed, 23 Aug 2017 01:23:16 -0400 drawdag: port to python 3
Augie Fackler <raf@durin42.com> [Wed, 23 Aug 2017 01:23:16 -0400] rev 34207
drawdag: port to python 3
Wed, 23 Aug 2017 10:51:26 -0400 drawdag: add a couple of doctests to help with python3 porting
Augie Fackler <raf@durin42.com> [Wed, 23 Aug 2017 10:51:26 -0400] rev 34206
drawdag: add a couple of doctests to help with python3 porting
Wed, 23 Aug 2017 01:24:01 -0400 drawdag: tagsmod.tag() takes a list of names, not a single name
Augie Fackler <raf@durin42.com> [Wed, 23 Aug 2017 01:24:01 -0400] rev 34205
drawdag: tagsmod.tag() takes a list of names, not a single name We were getting lucky on Python 2 since we have only one-byte names, but on Python 3 badness was happening.
Wed, 23 Aug 2017 01:22:59 -0400 bruterebase: port to python 3
Augie Fackler <raf@durin42.com> [Wed, 23 Aug 2017 01:22:59 -0400] rev 34204
bruterebase: port to python 3
Tue, 22 Aug 2017 21:21:13 -0400 exchange: use '%d' % x instead of str(x) to encode ints
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 21:21:13 -0400] rev 34203
exchange: use '%d' % x instead of str(x) to encode ints Recommended by Yuya instead of using pycompat.bytestr() in this case.
Fri, 15 Sep 2017 19:44:32 -0400 posix: always pass a native str to unicodedata.normalize's first arg
Augie Fackler <raf@durin42.com> [Fri, 15 Sep 2017 19:44:32 -0400] rev 34202
posix: always pass a native str to unicodedata.normalize's first arg
Fri, 15 Sep 2017 19:44:05 -0400 posix: use slicing to grab a single byte out of a bytes in HFS+ normcase code
Augie Fackler <raf@durin42.com> [Fri, 15 Sep 2017 19:44:05 -0400] rev 34201
posix: use slicing to grab a single byte out of a bytes in HFS+ normcase code
Fri, 15 Sep 2017 19:43:32 -0400 encoding: ensure getutf8char always returns a bytestr, never an int
Augie Fackler <raf@durin42.com> [Fri, 15 Sep 2017 19:43:32 -0400] rev 34200
encoding: ensure getutf8char always returns a bytestr, never an int
Fri, 15 Sep 2017 19:43:02 -0400 posix: fix HFS+ normcase doctest to produce valid bytes literals in Python 3
Augie Fackler <raf@durin42.com> [Fri, 15 Sep 2017 19:43:02 -0400] rev 34199
posix: fix HFS+ normcase doctest to produce valid bytes literals in Python 3 We were previously getting lucky on Python 2.
Fri, 15 Sep 2017 22:08:25 -0400 tests: add and remove some (glob) markers
Augie Fackler <augie@google.com> [Fri, 15 Sep 2017 22:08:25 -0400] rev 34198
tests: add and remove some (glob) markers I have no idea if these changes are reasonable, but they look like they'd help on the Windows buildbot.
Mon, 18 Sep 2017 11:53:54 -0400 Added signature for changeset 920977f72c7b stable
Augie Fackler <raf@durin42.com> [Mon, 18 Sep 2017 11:53:54 -0400] rev 34197
Added signature for changeset 920977f72c7b
Mon, 18 Sep 2017 11:53:53 -0400 Added tag 4.3.2 for changeset 920977f72c7b stable
Augie Fackler <raf@durin42.com> [Mon, 18 Sep 2017 11:53:53 -0400] rev 34196
Added tag 4.3.2 for changeset 920977f72c7b
Mon, 18 Sep 2017 11:51:41 -0400 merge with i18n stable 4.3.2
Augie Fackler <augie@google.com> [Mon, 18 Sep 2017 11:51:41 -0400] rev 34195
merge with i18n
Mon, 31 Jul 2017 12:18:42 -0300 i18n-pt_BR: synchronized with 850d2ec2cf6a stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Mon, 31 Jul 2017 12:18:42 -0300] rev 34194
i18n-pt_BR: synchronized with 850d2ec2cf6a
Fri, 15 Sep 2017 18:57:50 +0200 hgwebdir: read 'web.template' untrusted stable
Boris Feld <boris.feld@octobus.net> [Fri, 15 Sep 2017 18:57:50 +0200] rev 34193
hgwebdir: read 'web.template' untrusted The 'hgweb_mod.py' version of this read it untrusted. For consistency we align the two versions of this code.
Thu, 24 Aug 2017 22:55:56 +0530 uncommit: move fb-extension to core which uncommits a changeset
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 24 Aug 2017 22:55:56 +0530] rev 34192
uncommit: move fb-extension to core which uncommits a changeset uncommit extension in fb-hgext adds a uncommit command which by default uncommits a changeset and move all the changes to the working directory. If file names are passed, uncommit moves the changes from those files to the working directory and left the changeset with remaining committed files. The uncommit extension in fb-hgext does not creates an empty commit like the one in evolve extension unless user has specified ui.alllowemptycommit to True. The test file added is a combination of tests from test-uncommit.t, test-uncommit-merge.t and test-uncommit-bookmark.t from fb-hgext. .. feature:: A new uncommit extension which provides `hg uncommit` using which one can uncommit part or all of the changeset. This command undoes the effect of a local commit, returning the affected files to their uncommitted state. Differential Revision: https://phab.mercurial-scm.org/D529
Wed, 13 Sep 2017 21:15:46 -0700 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 13 Sep 2017 21:15:46 -0700] rev 34191
show: use consistent (and possibly shorter) node lengths `hg show` makes heavy use of shortest() to limit the length of the node hash. For the "stack" and "work" views, you are often looking at multiple lines of similar output for "lines" of work. It is visually appeasing for things to vertically align. A naive use of {shortest(node, N)} could result in variable length nodes and for the first character of the description to vary by a column or two. We implement a function to determine the longest shortest prefix for a set of revisions. The new function is used to determine the printed node length for all `hg show` views. .. feature:: show: use consistent node length in views Our previous shortest node length of 5 was arbitrarily chosen. shortest() already does the work of ensuring that a partial node isn't ambiguous with an integer revision, which is our primary risk of a collision for very short nodes. It should be safe to go with the shortest node possible. Existing code is also optimized to handle nodes as short as 4. So, we decrease the minimum hash length from 5 to 4. We also add a test demonstrating that prefix collisions increase the node length. .. feature:: show: decrease minimum displayed hash length from 5 to 4 Differential Revision: https://phab.mercurial-scm.org/D558
Thu, 03 Aug 2017 21:51:34 -0700 show: pass the minimum length for nodes as a template keyword
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 03 Aug 2017 21:51:34 -0700] rev 34190
show: pass the minimum length for nodes as a template keyword This will allow us to make the displayed length configurable and/or dynamic. Differential Revision: https://phab.mercurial-scm.org/D556
Thu, 03 Aug 2017 21:13:27 -0700 cmdutil: allow extra properties to be added to each context
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 03 Aug 2017 21:13:27 -0700] rev 34189
cmdutil: allow extra properties to be added to each context The changeset displayer allows setting extra keywords to be available to the templating layer. This patch adds an argument to displaygraph() to pass a dict of extra properties to be available to every changeset. Differential Revision: https://phab.mercurial-scm.org/D555
Thu, 14 Sep 2017 09:41:22 -0700 dirstate: perform transactions with _map using single call, where possible
Michael Bolin <mbolin@fb.com> [Thu, 14 Sep 2017 09:41:22 -0700] rev 34188
dirstate: perform transactions with _map using single call, where possible This is in the same style as https://phab.mercurial-scm.org/D493. In general, this replaces patterns such as: ``` f in self._map: entry = self._map[f] ``` with: ``` entry = self._map.get(f): if entry is not None: # use entry ``` Test Plan: `make tests` Differential Revision: https://phab.mercurial-scm.org/D663
Tue, 05 Sep 2017 00:34:13 +0200 extensions: register config item early
Boris Feld <boris.feld@octobus.net> [Tue, 05 Sep 2017 00:34:13 +0200] rev 34187
extensions: register config item early Config items are likely to be used in during extensions setup. So we much register them before that. For example this apply to the 'win32text.warn' options.
Tue, 05 Sep 2017 00:31:59 +0200 extensions: factor extra data loading out
Boris Feld <boris.feld@octobus.net> [Tue, 05 Sep 2017 00:31:59 +0200] rev 34186
extensions: factor extra data loading out Some of the extra data need to be registered earlier than they currently are (eg: config items). We first factor out the logic to registered them in a small function before reusing it in the next changeset.
Fri, 30 Jun 2017 03:45:56 +0200 configitems: register the 'win32text.warn' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:45:56 +0200] rev 34185
configitems: register the 'win32text.warn' config
Fri, 30 Jun 2017 03:43:17 +0200 configitems: register the 'mq.secret' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:43:17 +0200] rev 34184
configitems: register the 'mq.secret' config
Fri, 30 Jun 2017 03:43:16 +0200 configitems: register the 'mq.plain' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:43:16 +0200] rev 34183
configitems: register the 'mq.plain' config
Fri, 30 Jun 2017 03:43:15 +0200 configitems: register the 'mq.keepchanges' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:43:15 +0200] rev 34182
configitems: register the 'mq.keepchanges' config
Fri, 30 Jun 2017 03:43:14 +0200 configitems: register the 'mq.git' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:43:14 +0200] rev 34181
configitems: register the 'mq.git' config
Fri, 30 Jun 2017 03:45:54 +0200 configitems: register the 'win32mbcs.encoding' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:45:54 +0200] rev 34180
configitems: register the 'win32mbcs.encoding' config
Sun, 03 Sep 2017 03:49:15 +0530 copytrace: move fast heuristic copytracing algorithm to core
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 03 Sep 2017 03:49:15 +0530] rev 34179
copytrace: move fast heuristic copytracing algorithm to core copytrace extension in fb-hgext has a heuristic implementation of copy tracing which is faster than the current copy tracing. The heuristic limits the search of copies to just files that are either: 1) Renames in the same directory 2) Moved to other directory with same name The default copytrace implementation is very slow as it finds all the new files that were added from merge base up to the head commit and for each file it checks whether it this was copied or moved version of a different file. Stash@fb did analysis for the above heuristics on the fb repo and found that among 2,443,768 moves/copies there are only 32,234 moves/copies which does not fall under the above heuristics which is approx. 0.013 of total copies. This patch moves the heuristics algorithm under config `experimental.copytrace=heuristics`. While moving fbext to core, this patch removes couple of less useful config options named `sourcecommitlimit` and `maxmovescandidatestocheck`. Tests are also added for the heuristics algorithm, which are basically copied from fbext/tests/test-copytrace.t. The tests follow a pattern creating a server repo and then cloning to a local repo to create public and draft changesets, the distinction which will be useful in upcoming patches. After this patch `experimental.copytrace` has the following behaviour: 1) `off`: turns off copytracing 2) `heuristics`: use the heuristic algorithm added in this patch. 3) everything else: use the full copytracing algorithm .. feature:: A new fast heuristic algorithm for copytracing which assumes that the files moves are either:: 1) Renames in the same directory 2) Moves in other directories with same names You can use this algorithm by setting `experimental.copytrace=heuristics`. Differential Revision: https://phab.mercurial-scm.org/D623
Fri, 30 Jun 2017 03:36:46 +0200 configitems: register the 'convert.svn.startrev' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:36:46 +0200] rev 34178
configitems: register the 'convert.svn.startrev' config
Fri, 30 Jun 2017 03:36:36 +0200 configitems: register the 'convert.svn.debugsvnlog' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:36:36 +0200] rev 34177
configitems: register the 'convert.svn.debugsvnlog' config
Fri, 30 Jun 2017 03:36:28 +0200 configitems: register the 'convert.skiptags' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:36:28 +0200] rev 34176
configitems: register the 'convert.skiptags' config
Fri, 30 Jun 2017 03:36:20 +0200 configitems: register the 'convert.p4.startrev' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:36:20 +0200] rev 34175
configitems: register the 'convert.p4.startrev' config
Fri, 30 Jun 2017 03:36:00 +0200 configitems: register the 'convert.localtimezone' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:36:00 +0200] rev 34174
configitems: register the 'convert.localtimezone' config
Fri, 30 Jun 2017 03:35:55 +0200 configitems: register the 'convert.ignoreancestorcheck' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:35:55 +0200] rev 34173
configitems: register the 'convert.ignoreancestorcheck' config
Fri, 30 Jun 2017 03:35:48 +0200 configitems: register the 'convert.hg.usebranchnames' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:35:48 +0200] rev 34172
configitems: register the 'convert.hg.usebranchnames' config
Fri, 30 Jun 2017 03:35:38 +0200 configitems: register the 'convert.hg.tagsbranch' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:35:38 +0200] rev 34171
configitems: register the 'convert.hg.tagsbranch' config
Fri, 30 Jun 2017 03:35:29 +0200 configitems: register the 'convert.hg.startrev' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:35:29 +0200] rev 34170
configitems: register the 'convert.hg.startrev' config
Fri, 30 Jun 2017 03:35:22 +0200 configitems: register the 'convert.hg.sourcename' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:35:22 +0200] rev 34169
configitems: register the 'convert.hg.sourcename' config
Fri, 30 Jun 2017 03:35:12 +0200 configitems: register the 'convert.hg.saverev' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:35:12 +0200] rev 34168
configitems: register the 'convert.hg.saverev' config
Fri, 30 Jun 2017 03:34:58 +0200 configitems: register the 'convert.hg.revs' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:34:58 +0200] rev 34167
configitems: register the 'convert.hg.revs' config
Fri, 30 Jun 2017 03:34:49 +0200 configitems: register the 'convert.hg.ignoreerrors' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:34:49 +0200] rev 34166
configitems: register the 'convert.hg.ignoreerrors' config
Fri, 30 Jun 2017 03:34:45 +0200 configitems: register the 'convert.hg.clonebranches' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:34:45 +0200] rev 34165
configitems: register the 'convert.hg.clonebranches' config
Fri, 30 Jun 2017 03:34:32 +0200 configitems: register the 'convert.git.skipsubmodules' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:34:32 +0200] rev 34164
configitems: register the 'convert.git.skipsubmodules' config
Fri, 30 Jun 2017 03:34:23 +0200 configitems: register the 'convert.git.similarity' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:34:23 +0200] rev 34163
configitems: register the 'convert.git.similarity' config
Fri, 30 Jun 2017 03:34:14 +0200 configitems: register the 'convert.git.saverev' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:34:14 +0200] rev 34162
configitems: register the 'convert.git.saverev' config
Fri, 30 Jun 2017 03:34:06 +0200 configitems: register the 'convert.git.renamelimit' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:34:06 +0200] rev 34161
configitems: register the 'convert.git.renamelimit' config
Fri, 30 Jun 2017 03:34:00 +0200 configitems: register the 'convert.git.remoteprefix' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:34:00 +0200] rev 34160
configitems: register the 'convert.git.remoteprefix' config
Fri, 30 Jun 2017 03:33:51 +0200 configitems: register the 'convert.git.findcopiesharder' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:33:51 +0200] rev 34159
configitems: register the 'convert.git.findcopiesharder' config
Fri, 30 Jun 2017 03:33:41 +0200 configitems: register the 'convert.git.extrakeys' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:33:41 +0200] rev 34158
configitems: register the 'convert.git.extrakeys' config
Fri, 30 Jun 2017 03:33:29 +0200 configitems: register the 'convert.git.committeractions' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:33:29 +0200] rev 34157
configitems: register the 'convert.git.committeractions' config
Fri, 30 Jun 2017 03:33:25 +0200 configitems: register the 'convert.cvsps.mergeto' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:33:25 +0200] rev 34156
configitems: register the 'convert.cvsps.mergeto' config
Fri, 30 Jun 2017 03:33:15 +0200 configitems: register the 'convert.cvsps.mergefrom' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:33:15 +0200] rev 34155
configitems: register the 'convert.cvsps.mergefrom' config
Fri, 30 Jun 2017 03:33:06 +0200 configitems: register the 'convert.cvsps.fuzz' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:33:06 +0200] rev 34154
configitems: register the 'convert.cvsps.fuzz' config
Fri, 30 Jun 2017 03:32:53 +0200 configitems: register the 'convert.cvsps.cache' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:32:53 +0200] rev 34153
configitems: register the 'convert.cvsps.cache' config The convert extensions has code a bit all around, but it seems simpler to use a central declaration of options at the root first.
Wed, 13 Sep 2017 20:39:01 -0700 bundle2: move exception handling into part iterator
Durham Goode <durham@fb.com> [Wed, 13 Sep 2017 20:39:01 -0700] rev 34152
bundle2: move exception handling into part iterator As part of separating the part iteration logic from the part handling logic, let's move the exception handling to the part iterator class. Differential Revision: https://phab.mercurial-scm.org/D705
Wed, 13 Sep 2017 17:16:50 -0700 bundle2: move part counter to partiterator
Durham Goode <durham@fb.com> [Wed, 13 Sep 2017 17:16:50 -0700] rev 34151
bundle2: move part counter to partiterator As part of moving the part iterator logic to a separate class, let's move the part counting logic and the output for it. Differential Revision: https://phab.mercurial-scm.org/D704
Wed, 13 Sep 2017 17:16:45 -0700 bundle2: move part iterator a separate class
Durham Goode <durham@fb.com> [Wed, 13 Sep 2017 17:16:45 -0700] rev 34150
bundle2: move part iterator a separate class Currently, the part iterator logic is tightly coupled with the part handling logic, which means it's hard to replace the part handling logic without duplicating the part iterator bits. In a future diff we'll want to be able to replace all part handling, so let's begin refactoring the part iterator logic to it's own class. Differential Revision: https://phab.mercurial-scm.org/D703
Mon, 11 Sep 2017 13:39:22 -0700 changegroup: add source parameter to generatemanifests
Durham Goode <durham@fb.com> [Mon, 11 Sep 2017 13:39:22 -0700] rev 34149
changegroup: add source parameter to generatemanifests Extensions, like remotefilelog, will want to look at the source of a pull when determining what manifests to add to a changegroup. For instance, on push they will include everything, while on pull they won't. Differential Revision: https://phab.mercurial-scm.org/D686
Wed, 13 Sep 2017 10:43:44 -0700 changegroup: remove changegroup dependency from revlog.addgroup
Durham Goode <durham@fb.com> [Wed, 13 Sep 2017 10:43:44 -0700] rev 34148
changegroup: remove changegroup dependency from revlog.addgroup Previously revlog.addgroup would accept a changegroup and a linkmapper and use it to iterate of the deltas. As part of untangling the revlog-changegroup interdependency, let's move the changegroup delta iteration logic to it's own function and pass the simple iterator to the revlog instead. This will make it easier to introduce non-revlogs stores in the future, without reinventing any changegroup specific logic. Differential Revision: https://phab.mercurial-scm.org/D688
Wed, 13 Sep 2017 10:43:16 -0700 revlog: refactor chain variable
Durham Goode <durham@fb.com> [Wed, 13 Sep 2017 10:43:16 -0700] rev 34147
revlog: refactor chain variable Previously the addgroup loop would set chain to be the result of self._addrevision(node,...). Since _addrevision now always returns the passed in node, we can drop that behavior and just always set chain = node in the loop. This will be useful in a future patch where we refactor the cg.deltachunk logic to another function and therefore chain disappears entirely from this function. Differential Revision: https://phab.mercurial-scm.org/D699
Mon, 11 Sep 2017 17:49:49 +0000 scmutil: don't append .orig to backups in origbackuppath (BC)
Mark Thomas <mbthomas@fb.com> [Mon, 11 Sep 2017 17:49:49 +0000] rev 34146
scmutil: don't append .orig to backups in origbackuppath (BC) When ui.origbackuppath is set, .orig files are stored outside of the working copy, however they still have a .orig suffix appended to them. This can cause unexpected conflicts, particularly when tracked files or directories have .orig at the end. This change removes the .orig suffix from files stored in an out-of-tree origbackuppath. Test Plan: Update and run unit tests. Differential Revision: https://phab.mercurial-scm.org/D679
Mon, 11 Sep 2017 15:59:18 -0700 ssh: fix flakey ssh errors on BSD systems stable
Durham Goode <durham@fb.com> [Mon, 11 Sep 2017 15:59:18 -0700] rev 34145
ssh: fix flakey ssh errors on BSD systems This is a trivial backport of c037fd655b47 performed by augie@google.com, but the change is still really Durham's not mine, so I [augie] am leaving him as the author.
Thu, 14 Sep 2017 11:16:57 -0700 repair: preserve phase also when not using generaldelta (issue5678) stable
Martin von Zweigbergk <martinvonz@google.com> [Thu, 14 Sep 2017 11:16:57 -0700] rev 34144
repair: preserve phase also when not using generaldelta (issue5678) It seems like we used to pick the oldest possible version of the changegroup to use for bundles created by the repair module (used e.g. by "hg strip" and for temporary bundles by "hg rebase"). I tried to preserve that behavior when I created the changegroup.safeversion() method in 3b2ac2115464 (changegroup: introduce safeversion(), 2016-01-19). However, we have recently chagned our minds and decided that these commands are only used locally and downgrades are unlikely. That decicion allowed us to start adding obsmarker and phase information to these bundles. However, as the bug report shows, it means we get different behavior e.g. when generaldelta is not enabled (because when it was enabled, it forced us to use bundle2). The commit that actually caused the reported bug was 8e3021fd1a44 (strip: include phases in bundle (BC), 2017-06-15). So, since we now depend on having more information in the bundles, let's make sure we instead pick the newest possible changegroup version. Differential Revision: https://phab.mercurial-scm.org/D715
Thu, 14 Sep 2017 11:16:47 -0700 tests: add test for issue5678 stable
Martin von Zweigbergk <martinvonz@google.com> [Thu, 14 Sep 2017 11:16:47 -0700] rev 34143
tests: add test for issue5678 In addition to a test case for the direct problem described in the bug report, this also adds a test case showing how obsmarkers can also get lost when not using generaldelta. Differential Revision: https://phab.mercurial-scm.org/D714
Tue, 12 Sep 2017 19:27:01 -0700 merge: move cwd-missing detection to helper functions
Phil Cohen <phillco@fb.com> [Tue, 12 Sep 2017 19:27:01 -0700] rev 34142
merge: move cwd-missing detection to helper functions This will exist in two places with defered writes, so we want to avoid duplication. Differential Revision: https://phab.mercurial-scm.org/D626
Sun, 03 Sep 2017 15:09:04 +0900 doctest: enable tests by default on Python 3
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Sep 2017 15:09:04 +0900] rev 34141
doctest: enable tests by default on Python 3 Still several tests fail mostly because of the string issues, sigh. I'll fix them one by one.
Thu, 24 Aug 2017 22:33:28 +0900 doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org> [Thu, 24 Aug 2017 22:33:28 +0900] rev 34140
doctest: normalize b'', u'' and exception output on Python 3 The idea is described in the following page. https://dirkjan.ochtman.nl/writing/2014/07/06/single-source-python-23-doctests.html # no-check-commit
Sun, 03 Sep 2017 17:33:10 +0900 doctest: coerce dict.keys() to list
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Sep 2017 17:33:10 +0900] rev 34139
doctest: coerce dict.keys() to list Otherwise it would be printed as odict_keys([...]) on Python 3.
Sun, 03 Sep 2017 15:16:01 +0900 doctest: upgrade old-style "except" clause
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Sep 2017 15:16:01 +0900] rev 34138
doctest: upgrade old-style "except" clause
Sun, 03 Sep 2017 14:56:31 +0900 doctest: use print_function and convert bytes to unicode where needed
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Sep 2017 14:56:31 +0900] rev 34137
doctest: use print_function and convert bytes to unicode where needed
(0) -30000 -10000 -3000 -1000 -120 +120 +1000 +3000 +10000 tip