Thu, 06 Apr 2017 19:24:04 +0200 hgweb: position the "followlines" box close to latest cursor position
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 06 Apr 2017 19:24:04 +0200] rev 31849
hgweb: position the "followlines" box close to latest cursor position
Thu, 06 Apr 2017 19:15:09 +0200 hgweb: add a floating tooltip to invite on followlines action
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 06 Apr 2017 19:15:09 +0200] rev 31848
hgweb: add a floating tooltip to invite on followlines action In followlines.js, we create a <div id="followlines-tooltip"> element to draw attention of users on "followlines" feature. The element shows up on hover of source lines after one second and follows the cursor. After first click (start line selection), the text changes and indicates that next click will terminate selection.
Sat, 08 Apr 2017 14:33:20 -0700 zstd: vendor python-zstandard 0.8.1
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 08 Apr 2017 14:33:20 -0700] rev 31847
zstd: vendor python-zstandard 0.8.1 This contains a fix for compilation on BSDs. #no-check-commit
Wed, 08 Mar 2017 09:03:42 -0500 fsmonitor: match watchman and filesystem encoding
Olivier Trempe <oliviertrempe@gmail.com> [Wed, 08 Mar 2017 09:03:42 -0500] rev 31846
fsmonitor: match watchman and filesystem encoding watchman's paths encoding can differ from filesystem encoding. For example, on Windows, it's always utf-8. Before this patch, on Windows, mismatch in path comparison between fsmonitor state and osutil.statfiles would yield a clean status for added/modified files. In addition to status reporting wrong results, this leads to files being discarded from changesets while doing history editing operations such as rebase. Benchmark: There is a little overhead at module import: python -m timeit "import hgext.fsmonitor" Windows before patch: 1000000 loops, best of 3: 0.563 usec per loop Windows after patch: 1000000 loops, best of 3: 0.583 usec per loop Linx before patch: 1000000 loops, best of 3: 0.579 usec per loop Linux after patch: 1000000 loops, best of 3: 0.588 usec per loop 10000 calls to _watchmantofsencoding: python -m timeit -s "from hgext.fsmonitor import _watchmantofsencoding, _fixencoding" "fname = '/path/to/file'" "for i in range(10000):" " if _fixencoding: fname = _watchmantofsencoding(fname)" Windows (_fixencoding is True): 100 loops, best of 3: 19.5 msec per loop Linux (_fixencoding is False): 100 loops, best of 3: 3.08 msec per loop
Fri, 07 Apr 2017 06:31:50 -0700 pull: abort pull --update if config requires destination (issue5528)
Ryan McElroy <rmcelroy@fb.com> [Fri, 07 Apr 2017 06:31:50 -0700] rev 31845
pull: abort pull --update if config requires destination (issue5528)
Fri, 07 Apr 2017 05:41:03 -0700 tests: move update requiredest test to own test file
Ryan McElroy <rmcelroy@fb.com> [Fri, 07 Apr 2017 05:41:03 -0700] rev 31844
tests: move update requiredest test to own test file More tests for this flag are coming in upcoming patches.
Fri, 07 Apr 2017 23:35:51 +0530 py3: add pycompat.unicode and add it to importer
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 07 Apr 2017 23:35:51 +0530] rev 31843
py3: add pycompat.unicode and add it to importer On python 3, builtins.unicode does not exist.
Fri, 07 Apr 2017 16:00:44 +0530 py3: add a bytes version of urllib.parse.urlencode() to pycompat.py
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 07 Apr 2017 16:00:44 +0530] rev 31842
py3: add a bytes version of urllib.parse.urlencode() to pycompat.py urllib.parse.urlencode() returns unicodes on Python 3. This commit adds a method which will take its output and encode it to bytes so that we can use bytes consistently.
Fri, 07 Apr 2017 13:46:35 +0530 py3: replace str() with bytes()
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 07 Apr 2017 13:46:35 +0530] rev 31841
py3: replace str() with bytes()
Fri, 07 Apr 2017 11:02:43 -0700 metadataonlyctx: replace "changeset()[0]" to "manifestnode()"
Jun Wu <quark@fb.com> [Fri, 07 Apr 2017 11:02:43 -0700] rev 31840
metadataonlyctx: replace "changeset()[0]" to "manifestnode()" As Yuya pointed out [1], "changeset()[0]" could be simplified to "manifestnode()". I didn't notice that method earlier. It should definitely be used - it's easier to read, and faster. [1]: https://www.mercurial-scm.org/pipermail/mercurial-devel/2017-March/095716.html
Fri, 07 Apr 2017 11:09:54 -0700 test-check-pylint: match its output
Jun Wu <quark@fb.com> [Fri, 07 Apr 2017 11:09:54 -0700] rev 31839
test-check-pylint: match its output "pylint --version" shows: pylint 2.0.0, astroid 1.5.0 Python 2.7.13 (default, Dec 21 2016, 07:16:46) [GCC 6.2.1 20160830] I got "Your code has been rated at 10.00/10" every time and didn't know how to turn it off. Therefore the fix.
Thu, 06 Apr 2017 19:01:51 -0700 test-flagprocessor: remove unnecessary greps
Jun Wu <quark@fb.com> [Thu, 06 Apr 2017 19:01:51 -0700] rev 31838
test-flagprocessor: remove unnecessary greps The "2>&1 | egrep ..." code is used for removing uninteresting parts from tracebacks. Now the test does not dump tracebacks, they can be removed.
Mon, 03 Apr 2017 09:31:39 -0700 bundlerepo: use raw revision in revdiff()
Jun Wu <quark@fb.com> [Mon, 03 Apr 2017 09:31:39 -0700] rev 31837
bundlerepo: use raw revision in revdiff() This is similar to "revlog: use raw revisions in revdiff". revdiff() generates raw text used in revlog directly. This makes test-flagprocessor.t happy.
Thu, 06 Apr 2017 17:45:47 -0700 bundlerepo: fix raw handling in revision()
Jun Wu <quark@fb.com> [Thu, 06 Apr 2017 17:45:47 -0700] rev 31836
bundlerepo: fix raw handling in revision() Similar to fixes in revlog.py, this patch uses "rawtext" to explicitly label contents expected to be raw, and makes sure content stored in _cache is raw text. Now test-flagprocessor.t points us to another issue.
Thu, 06 Apr 2017 18:06:42 -0700 bundlerepo: build revlog index with flags
Jun Wu <quark@fb.com> [Thu, 06 Apr 2017 18:06:42 -0700] rev 31835
bundlerepo: build revlog index with flags This fixes bundlerevlog.flags(rev) for any revisions provided by the bundle. Now test-flagprocessor.t points us to another issue.
Thu, 06 Apr 2017 17:43:29 -0700 bundlerepo: make baserevision return raw text
Jun Wu <quark@fb.com> [Thu, 06 Apr 2017 17:43:29 -0700] rev 31834
bundlerepo: make baserevision return raw text "baserevision" returns the text that will be used to apply deltas. Since deltas are against raw texts, "baserevision" should return raw text. Now test-flagprocessor.t points us to a new error.
Thu, 06 Apr 2017 17:24:36 -0700 test-flagprocessor: add tests about bundlerepo
Jun Wu <quark@fb.com> [Thu, 06 Apr 2017 17:24:36 -0700] rev 31833
test-flagprocessor: add tests about bundlerepo This shows flag processor is broken with a bundle repo. The test creates non-liner history to exercise code path where the deltaparent cannot be reused.
Thu, 06 Apr 2017 17:23:20 -0700 test-flagprocessor: use changegroup3 in bundle2
Jun Wu <quark@fb.com> [Thu, 06 Apr 2017 17:23:20 -0700] rev 31832
test-flagprocessor: use changegroup3 in bundle2 This will force "hg bundle" to use changegroup3 in the test. It is important since only changegroup3 preserves revlog flags.
Thu, 06 Apr 2017 17:01:58 -0700 bundle: allow bundle command to use changegroup3 in tests
Jun Wu <quark@fb.com> [Thu, 06 Apr 2017 17:01:58 -0700] rev 31831
bundle: allow bundle command to use changegroup3 in tests Since bundle2 writes changegroup version, we can just reuse the bundle2 format for changegroup3. This won't enable the bundle command to write changegroup3 in the wild, since exchange.parsebundlespec only returns changegroup2. It unlocks tests to override exchange.parsebundlespec and get "hg bundle" write changegroup3.
Wed, 05 Apr 2017 23:44:22 -0400 tests: add per-line output conditionals for Windows
Matt Harbison <matt_harbison@yahoo.com> [Wed, 05 Apr 2017 23:44:22 -0400] rev 31830
tests: add per-line output conditionals for Windows
Wed, 05 Apr 2017 23:17:27 -0400 run-tests: support per-line conditional output in tests
Matt Harbison <matt_harbison@yahoo.com> [Wed, 05 Apr 2017 23:17:27 -0400] rev 31829
run-tests: support per-line conditional output in tests Duplicating entire tests just because the output is different is both error prone and can make the tests harder to read. This harnesses the existing '(?)' infrastructure, both to improve readability, and because it seemed like the path of least resistance. The form is: $ test_cmd output (hghave-feature !) # required if hghave.has_feature(), else optional out2 (no-hghave-feature2 !) # req if not hghave.has_feature2(), else optional I originally extended the '(?)' syntax. For example, this: 2 r4/.hg/cache/checkisexec (execbit ?) pretty naturally reads as "checkisexec, if execbit". In some ways though, this inverts the meaning of '?'. For '(?)', the line is purely optional. In the example, it is mandatory iff execbit. Otherwise, it is carried forward as optional, to preserve the test output. I tried it the other way, (listing 'no-exec' in the example), but that is too confusing to read. Kostia suggested using '!', and that seems fine.
Wed, 05 Apr 2017 22:59:44 -0400 test-run-tests: pad the failure test to preserve the run order
Matt Harbison <matt_harbison@yahoo.com> [Wed, 05 Apr 2017 22:59:44 -0400] rev 31828
test-run-tests: pad the failure test to preserve the run order Test size seems to dictate the order in which the tests are run, and the next patch will add to test-success.t. Similar to c0cecc153d25.
Wed, 05 Apr 2017 22:00:33 -0400 run-tests: prevent a (glob) declaration from reordering (?) lines
Matt Harbison <matt_harbison@yahoo.com> [Wed, 05 Apr 2017 22:00:33 -0400] rev 31827
run-tests: prevent a (glob) declaration from reordering (?) lines Previously, if a series of optional output lines marked with '(?)' had a (glob) in one of the first lines, the output would be reordered such that it came last if none of the lines were output. The (re) declaration wasn't affected, which was helpful in figuring this out. There were no tests for '(re) (?)' so add that to make sure everything plays nice.
Fri, 07 Apr 2017 13:45:33 +0530 py3: use pycompat.byteskwargs() to convert opts to bytes
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 07 Apr 2017 13:45:33 +0530] rev 31826
py3: use pycompat.byteskwargs() to convert opts to bytes We have converted opts to unicodes before passing them.
Thu, 06 Apr 2017 22:10:46 -0700 test-check-code: do not use xargs
Jun Wu <quark@fb.com> [Thu, 06 Apr 2017 22:10:46 -0700] rev 31825
test-check-code: do not use xargs We have too many files, and passing them via arguments could cause strange errors on some platforms [1]. Since check-code.py can now take "-" and read file names from stdin, use it instead of xargs to avoid the argv size limit. [1]: https://www.mercurial-scm.org/pipermail/mercurial-devel/2017-April/096346.html
Thu, 06 Apr 2017 22:08:23 -0700 check-code: use "-" to specify a list of files from stdin
Jun Wu <quark@fb.com> [Thu, 06 Apr 2017 22:08:23 -0700] rev 31824
check-code: use "-" to specify a list of files from stdin This will be used by the next patch.
Thu, 06 Apr 2017 14:41:42 +0200 perf: add historical portability for util.timer
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 06 Apr 2017 14:41:42 +0200] rev 31823
perf: add historical portability for util.timer util.timer has been introduced in ae5d60bb and used in perf.py since 22fbca1d. For historical portability, forcibly define util.timer in perf.py
Wed, 05 Apr 2017 15:31:08 -0700 diff: add --binary option for git mode diffs
Alexander Fomin <afomin@fb.com> [Wed, 05 Apr 2017 15:31:08 -0700] rev 31822
diff: add --binary option for git mode diffs This patch adds --binary option to `hg diff` and `hg export` to allow more control about when binary diffs are displayed in Git mode as well as some tests to verify it behaves correctly (issue5510).
Wed, 05 Apr 2017 15:15:06 -0700 patch: make diff in git mode respect --text option (issue5510)
Alexander Fomin <afomin@fb.com> [Wed, 05 Apr 2017 15:15:06 -0700] rev 31821
patch: make diff in git mode respect --text option (issue5510) This changeset makes patch respect -a/--text option in --git mode by aligning its behaviour with git itself.
Wed, 05 Apr 2017 00:34:58 +0900 py3: have registrar process docstrings in bytes
Yuya Nishihara <yuya@tcha.org> [Wed, 05 Apr 2017 00:34:58 +0900] rev 31820
py3: have registrar process docstrings in bytes Mixing bytes and unicode creates a mess. Do things in bytes as possible. New sysbytes() helper only takes care of ASCII characters, but avoids raising nasty unicode exception. This is the same design principle as sysstr().
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip