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 34202
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 34201
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 34200
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 34199
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 34198
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 34197
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 34196
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 34195
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 34194
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 34193
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 34192
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 34191
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 34190
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 34189
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 34188
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 34187
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 34186
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 34185
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 34184
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 34183
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 34182
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 34181
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 34180
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 34179
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 34178
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 34177
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 34176
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 34175
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 34174
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 34173
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 34172
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 34171
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 34170
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 34169
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 34168
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 34167
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 34166
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 34165
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 34164
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 34163
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 34162
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 34161
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 34160
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 34159
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 34158
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
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 34157
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 34156
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 34155
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 34154
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 34153
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 34152
doctest: use print_function and convert bytes to unicode where needed
Sun, 03 Sep 2017 15:47:17 +0900 doctest: do not embed non-ascii characters in docstring
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Sep 2017 15:47:17 +0900] rev 34151
doctest: do not embed non-ascii characters in docstring Since the outer docstring is parsed as a unicode on Python 3, we have to either double-escape or construct non-ascii string from ascii string.
Sun, 03 Sep 2017 15:42:27 +0900 doctest: pass encoding name as system string
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Sep 2017 15:42:27 +0900] rev 34150
doctest: pass encoding name as system string
Sun, 03 Sep 2017 14:38:58 +0900 doctest: replace str() with bytes()
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Sep 2017 14:38:58 +0900] rev 34149
doctest: replace str() with bytes()
Sun, 03 Sep 2017 14:37:25 +0900 doctest: replace chr() with pycompat.bytechr()
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Sep 2017 14:37:25 +0900] rev 34148
doctest: replace chr() with pycompat.bytechr()
Sun, 03 Sep 2017 14:35:37 +0900 doctest: replace .iteritems() with .items()
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Sep 2017 14:35:37 +0900] rev 34147
doctest: replace .iteritems() with .items()
Sun, 03 Sep 2017 14:32:11 +0900 doctest: bulk-replace string literals with b'' for Python 3
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Sep 2017 14:32:11 +0900] rev 34146
doctest: bulk-replace string literals with b'' for Python 3 Our code transformer can't rewrite string literals in docstrings, and I don't want to make the transformer more complex.
Thu, 07 Sep 2017 22:36:54 +0900 debuginstall: do not pass exception object to formatter (issue5676)
Yuya Nishihara <yuya@tcha.org> [Thu, 07 Sep 2017 22:36:54 +0900] rev 34145
debuginstall: do not pass exception object to formatter (issue5676)
Thu, 07 Sep 2017 22:27:23 +0900 debuginstall: use codecs.lookup() to detect invalid encoding
Yuya Nishihara <yuya@tcha.org> [Thu, 07 Sep 2017 22:27:23 +0900] rev 34144
debuginstall: use codecs.lookup() to detect invalid encoding encoding.fromlocal() never tries to decode an ascii string since 853574db5b12, and there's no universal non-ascii string which can be decoded as any valid character set.
Sun, 10 Sep 2017 23:37:14 +0900 extensions: fix wrapcommand/function of class instance
Yuya Nishihara <yuya@tcha.org> [Sun, 10 Sep 2017 23:37:14 +0900] rev 34143
extensions: fix wrapcommand/function of class instance 5361771f9714 changed _updatewrapper() to copy the __name__ attribute, but not all callable objects has __name__. Spotted by loading mq with extdiff.
Tue, 12 Sep 2017 09:13:02 -0700 changegroup: avoid creating empty changegroup part
Durham Goode <durham@fb.com> [Tue, 12 Sep 2017 09:13:02 -0700] rev 34142
changegroup: avoid creating empty changegroup part Previously this check happened in the changegroup code itself. Since its refactor, this logic needs to move out to callers that care about it, such as this one. Otherwise we get empty bundle devel-warnings in certain extensions. Differential Revision: https://phab.mercurial-scm.org/D690
Tue, 12 Sep 2017 15:12:27 -0700 tests: split test-revset.t in half
Durham Goode <durham@fb.com> [Tue, 12 Sep 2017 15:12:27 -0700] rev 34141
tests: split test-revset.t in half This test has gotten so large that running it can exceed the normal timeout on systems under load (like if we're running all the tests in parallel). This patch splits the test cleanly in half. Differential Revision: https://phab.mercurial-scm.org/D694
Mon, 11 Sep 2017 13:17:43 -0700 merge: flush any deferred writes just before recordupdates()
Phil Cohen <phillco@fb.com> [Mon, 11 Sep 2017 13:17:43 -0700] rev 34140
merge: flush any deferred writes just before recordupdates() ``recordupdates`` calls into the dirstate which requires the files to be there, so this is the last possible moment we can flush anything. Differential Revision: https://phab.mercurial-scm.org/D673
Mon, 11 Sep 2017 13:03:27 -0700 merge: flush any deferred writes before, and after, running any workers
Phil Cohen <phillco@fb.com> [Mon, 11 Sep 2017 13:03:27 -0700] rev 34139
merge: flush any deferred writes before, and after, running any workers Since we fork to create workers, any changes they queue up will be lost after the worker terminates, so the easiest solution is to have each worker flush the writes they accumulate--we are close to the end of the merge in any case. To prevent duplicated writes, we also have the master processs flush before forking. In an in-memory merge (M2), we'll instead disable the use of workers. Differential Revision: https://phab.mercurial-scm.org/D628
Mon, 11 Sep 2017 13:03:27 -0700 filemerge: flush if using deferred writes when running a merge tool
Phil Cohen <phillco@fb.com> [Mon, 11 Sep 2017 13:03:27 -0700] rev 34138
filemerge: flush if using deferred writes when running a merge tool Since merge tools might read from the filesystem, we need to write out our deferred writes here. No-ops if not using deferred writes. Differential Revision: https://phab.mercurial-scm.org/D627
Mon, 11 Sep 2017 13:03:27 -0700 merge: pass wctx to premerge, filemerge
Phil Cohen <phillco@fb.com> [Mon, 11 Sep 2017 13:03:27 -0700] rev 34137
merge: pass wctx to premerge, filemerge In the in-memory merge branch. we'll need to call a function (``flushall``) on the wctx inside of _xmerge. This prepares the way so it can be done without hacks like ``fcd.ctx()``. Differential Revision: https://phab.mercurial-scm.org/D449
Mon, 11 Sep 2017 18:07:29 +0200 cmdutil: fix amend when passing a date
Boris Feld <boris.feld@octobus.net> [Mon, 11 Sep 2017 18:07:29 +0200] rev 34136
cmdutil: fix amend when passing a date Following https://phab.mercurial-scm.org/D636, passing the same date that the changeset to amend would results in no new commits but the output changed from: $ hg amend -d '0 0' nothing changed [1] to: $ hg amend -d '0 0' Restore the old behavior by parsing the date passed as parameter so the condition "date == old.date()" correctly works in cases both dates are identical. Add a test for covering this regression. This bug was found thanks to Evolve test suite. Differential Revision: https://phab.mercurial-scm.org/D691
Tue, 12 Sep 2017 11:18:35 -0400 merge with stable
Augie Fackler <augie@google.com> [Tue, 12 Sep 2017 11:18:35 -0400] rev 34135
merge with stable
Fri, 30 Jun 2017 03:39:32 +0200 configitems: register the 'eol.only-consistent' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:39:32 +0200] rev 34134
configitems: register the 'eol.only-consistent' config
Fri, 30 Jun 2017 03:39:26 +0200 configitems: register the 'eol.native' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:39:26 +0200] rev 34133
configitems: register the 'eol.native' config
Fri, 30 Jun 2017 03:39:21 +0200 configitems: register the 'eol.fix-trailing-newline' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:39:21 +0200] rev 34132
configitems: register the 'eol.fix-trailing-newline' config
Fri, 30 Jun 2017 03:43:43 +0200 configitems: register the 'patchbomb.publicurl' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:43:43 +0200] rev 34131
configitems: register the 'patchbomb.publicurl' config
Fri, 30 Jun 2017 03:43:41 +0200 configitems: register the 'patchbomb.intro' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:43:41 +0200] rev 34130
configitems: register the 'patchbomb.intro' config
Fri, 30 Jun 2017 03:43:40 +0200 configitems: register the 'patchbomb.from' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:43:40 +0200] rev 34129
configitems: register the 'patchbomb.from' config
Fri, 30 Jun 2017 03:43:39 +0200 configitems: register the 'patchbomb.flagtemplate' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:43:39 +0200] rev 34128
configitems: register the 'patchbomb.flagtemplate' config
Fri, 30 Jun 2017 03:43:38 +0200 configitems: register the 'patchbomb.confirm' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:43:38 +0200] rev 34127
configitems: register the 'patchbomb.confirm' config
Fri, 30 Jun 2017 03:43:37 +0200 configitems: register the 'patchbomb.bundletype' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:43:37 +0200] rev 34126
configitems: register the 'patchbomb.bundletype' config
Wed, 06 Sep 2017 21:12:27 -0700 blackbox: remove _bbvfs state
Jun Wu <quark@fb.com> [Wed, 06 Sep 2017 21:12:27 -0700] rev 34125
blackbox: remove _bbvfs state `_bbvfs` is redundant because it could be calcualted from `_bbrepo`. Differential Revision: https://phab.mercurial-scm.org/D651
Wed, 06 Sep 2017 21:08:59 -0700 blackbox: do not cache file objects
Jun Wu <quark@fb.com> [Wed, 06 Sep 2017 21:08:59 -0700] rev 34124
blackbox: do not cache file objects Having the blackbox file objects cached in `ui._bbfp` could in theory be troublesome if multiple processes (ex. chg servers) have file objects referring to a same file. (Although I spent some time and failed to build a convincing test case) This patch makes blackbox re-open the file every time to make the situation better. Ideally we also need proper locking. The caching logic traces back to the commit introducing blackbox (18242716a). That commit does not have details about why caching is necessary. Consider the fact that blackbox logs are not many, it seems fine to remove the fp cache to be more confident. Differential Revision: https://phab.mercurial-scm.org/D650
Wed, 06 Sep 2017 20:54:53 -0700 blackbox: inline _bbwrite
Jun Wu <quark@fb.com> [Wed, 06 Sep 2017 20:54:53 -0700] rev 34123
blackbox: inline _bbwrite There is no need to make it a separate method. This makes the next change easier to read. Differential Revision: https://phab.mercurial-scm.org/D649
Wed, 06 Sep 2017 19:27:30 -0700 blackbox: fix rotation with chg
Jun Wu <quark@fb.com> [Wed, 06 Sep 2017 19:27:30 -0700] rev 34122
blackbox: fix rotation with chg The added test will show: $ $PYTHON showsize.py .hg/blackbox* .hg/blackbox.log: < 500 .hg/blackbox.log.1: < 500 .hg/blackbox.log.2: < 500 .hg/blackbox.log.3: < 500 .hg/blackbox.log.4: < 500 .hg/blackbox.log.5: >= 500 with previous code. The issue is caused by blackbox caching file objects *by path*, and the rotation size check could run on a wrong file object (i.e. it should check "blackbox.log", but `filehandles["blackbox.log"]` contains a file object that has been renamed to "blackbox.log.5"). This patch removes the "filehandlers" global cache added by 45313f5a3a8c to solve the issue. I think the original patch was trying to make different ui objects use a same file object if their blackbox.log path is the same. In theory it could also be problematic in the rotation case. Anyway, that should become unnecessary after D650. Differential Revision: https://phab.mercurial-scm.org/D648
Wed, 06 Sep 2017 18:31:25 -0700 test-blackbox: make it compatible with chg
Jun Wu <quark@fb.com> [Wed, 06 Sep 2017 18:31:25 -0700] rev 34121
test-blackbox: make it compatible with chg Differential Revision: https://phab.mercurial-scm.org/D647
Mon, 11 Sep 2017 15:59:18 -0700 ssh: fix flakey ssh errors on BSD systems
Durham Goode <durham@fb.com> [Mon, 11 Sep 2017 15:59:18 -0700] rev 34120
ssh: fix flakey ssh errors on BSD systems There's been a persistent issue with flakiness on BSD systems (like OSX) where the 'no suitable response from remote hg' message would sometimes not appear. This was caused by one of the earlier calls failing with a "IOError: Broken pipe". Catching those errors and printing the same message removes the flakiness. Differential Revision: https://phab.mercurial-scm.org/D687
Mon, 11 Sep 2017 13:03:27 -0700 context: add overlayworkingcontext and overlayworkingfilectx
Phil Cohen <phillco@fb.com> [Mon, 11 Sep 2017 13:03:27 -0700] rev 34119
context: add overlayworkingcontext and overlayworkingfilectx These two classes will be used extensively in the first in-memory merge milestone. Differential Revision: https://phab.mercurial-scm.org/D616
Sun, 10 Sep 2017 18:52:40 -0700 changegroup: rename getsubsetraw to makestream
Durham Goode <durham@fb.com> [Sun, 10 Sep 2017 18:52:40 -0700] rev 34118
changegroup: rename getsubsetraw to makestream Now that nothing uses getsubsetraw except makestream, let's move the functionality into the makestream. This removes the last remaining excess changegroup creation function, getsubsetraw. Differential Revision: https://phab.mercurial-scm.org/D671
Sun, 10 Sep 2017 18:51:31 -0700 changegroup: remove external uses of getbundler
Durham Goode <durham@fb.com> [Sun, 10 Sep 2017 18:51:31 -0700] rev 34117
changegroup: remove external uses of getbundler Now that makestream and makechangegroup are the primary creation methods for changegroups, let's get rid of this rogue use of getbundler and getsubsetraw. Differential Revision: https://phab.mercurial-scm.org/D670
Sun, 10 Sep 2017 18:50:12 -0700 changegroup: replace getchangegroup with makechangegroup
Durham Goode <durham@fb.com> [Sun, 10 Sep 2017 18:50:12 -0700] rev 34116
changegroup: replace getchangegroup with makechangegroup As part of reducing the number of changegroup creation APIs, let's replace getchangegroup with calls to makechangegroup. This is mostly a drop in replacement, but it does change the version specifier to be required, so it's more obvious which callers are creating old version 1 changegroups still. Differential Revision: https://phab.mercurial-scm.org/D669
Sun, 10 Sep 2017 18:48:42 -0700 changegroup: replace changegroup with makechangegroup
Durham Goode <durham@fb.com> [Sun, 10 Sep 2017 18:48:42 -0700] rev 34115
changegroup: replace changegroup with makechangegroup As part of reducing the number of changegroup creation APIs, let's replace the changegroup function with makechangegroup. This pushes the responsibility of creating the outgoing set to the caller, but that seems like a simple and reasonable concept for the caller to be aware of. Differential Revision: https://phab.mercurial-scm.org/D668
Sun, 10 Sep 2017 18:47:39 -0700 changegroup: delete getlocalchangegroup
Durham Goode <durham@fb.com> [Sun, 10 Sep 2017 18:47:39 -0700] rev 34114
changegroup: delete getlocalchangegroup As part of reducing the number of changegroup creation APIs, let's go ahead and delete this unused function. It appears to have been deprecated in the last release anyway. Differential Revision: https://phab.mercurial-scm.org/D667
Sun, 10 Sep 2017 19:01:56 -0700 changegroup: replace getlocalchangegroupraw with makestream
Durham Goode <durham@fb.com> [Sun, 10 Sep 2017 19:01:56 -0700] rev 34113
changegroup: replace getlocalchangegroupraw with makestream As part of reducing the number of changegroup creation apis, let's replace calls to getlocalchangegroupraw with calls to makestream. Aside from one case of checking if there are no outgoing commits and returning None, this is pretty much a drop in replacement. Differential Revision: https://phab.mercurial-scm.org/D666
Sun, 10 Sep 2017 18:43:59 -0700 changegroup: replace changegroupsubset with makechangegroup
Durham Goode <durham@fb.com> [Sun, 10 Sep 2017 18:43:59 -0700] rev 34112
changegroup: replace changegroupsubset with makechangegroup As part of getting rid of all the permutations of changegroup creation, let's remove changegroupsubset and call makechangegroup instead. This moves the responsibility of creating the outgoing set to the caller, but that seems like a relatively reasonable unit of functionality for the caller to have to care about (i.e. what commits should be bundled). Differential Revision: https://phab.mercurial-scm.org/D665
Sun, 10 Sep 2017 18:39:02 -0700 changegroup: replace getsubset with makechangegroup
Durham Goode <durham@fb.com> [Sun, 10 Sep 2017 18:39:02 -0700] rev 34111
changegroup: replace getsubset with makechangegroup The current changegroup APIs are a bit of a mess. Currently you can use getsubsetraw, getsubset, changegroupsubset, getlocalchangegroupraw, getchangegroup, and getlocalchangroup to produce changegroups. This patch is the beginning of a refactor to boil all of that away to just makechangegroup and makestream. The first step adds the new functions and replaces getsubset function with them. Differential Revision: https://phab.mercurial-scm.org/D664
Wed, 06 Sep 2017 16:17:04 -0700 rebase: remove unnecessary '.unfiltered()' calls
Jun Wu <quark@fb.com> [Wed, 06 Sep 2017 16:17:04 -0700] rev 34110
rebase: remove unnecessary '.unfiltered()' calls Now we have a clear centric place to control whether `rbsrt.repo` is unfiltered or not, we can drop `unfiltered()` in other places. Differential Revision: https://phab.mercurial-scm.org/D645
Wed, 06 Sep 2017 16:13:04 -0700 rebase: remove complex unhiding code
Jun Wu <quark@fb.com> [Wed, 06 Sep 2017 16:13:04 -0700] rev 34109
rebase: remove complex unhiding code This is similar to Martin von Zweigbergk's previous patch [1]. Previous patches are adding more `.unfiltered()` to the rebase code. So I wonder: are we playing whack-a-mole regarding on `unfiltered()` in rebase? Thinking about it, I believe most of the rebase code *should* just use an unfiltered repo. The only exception is before we figuring out a `rebasestate`. This patch makes it so. See added comment in code for why that's more reasonable. This would make the code base cleaner (not mangling the `repo` object), faster (no need to invalidate caches), simpler (less LOC), less error-prone (no need to think about what to unhide, ex. should we unhide wdir p2? how about destinations?), and future proof (other code may change visibility in an unexpected way, ex. directaccess may make the destination only visible when it's in "--dest" revset tree). [1]: https://www.mercurial-scm.org/pipermail/mercurial-devel/2017-March/094277.html Differential Revision: https://phab.mercurial-scm.org/D644
Wed, 06 Sep 2017 15:23:19 -0700 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com> [Wed, 06 Sep 2017 15:23:19 -0700] rev 34108
rebase: use unfiltered repo when loading state Before this patch, `rebase --abort` may fail to do the cleanup: $ hg rebase --abort rebase aborted (no revision is removed, only broken state is cleared) The added test case makes sure `--abort` works in this case. Differential Revision: https://phab.mercurial-scm.org/D643
Wed, 06 Sep 2017 12:40:00 -0700 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com> [Wed, 06 Sep 2017 12:40:00 -0700] rev 34107
rebase: do not crash rebasing merge with a parent having hidden successor The added test will crash with previous code. Differential Revision: https://phab.mercurial-scm.org/D640
(0) -30000 -10000 -3000 -1000 -300 -100 -96 +96 +100 +300 +1000 +3000 +10000 tip