Tue, 22 Aug 2017 16:57:37 -0400 tests: update test-largefiles-small-disk to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:57:37 -0400] rev 33962
tests: update test-largefiles-small-disk to pass our import checker
Tue, 22 Aug 2017 15:51:47 -0400 tests: update test-keyword to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:51:47 -0400] rev 33961
tests: update test-keyword to pass our import checker
Tue, 22 Aug 2017 15:51:37 -0400 tests: update test-impexp-branch to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:51:37 -0400] rev 33960
tests: update test-impexp-branch to pass our import checker
Tue, 22 Aug 2017 15:51:30 -0400 tests: update test-help to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:51:30 -0400] rev 33959
tests: update test-help to pass our import checker
Tue, 22 Aug 2017 15:51:24 -0400 tests: update test-hardlinks to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:51:24 -0400] rev 33958
tests: update test-hardlinks to pass our import checker
Tue, 22 Aug 2017 15:51:18 -0400 tests: update test-glog to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:51:18 -0400] rev 33957
tests: update test-glog to pass our import checker
Tue, 22 Aug 2017 15:51:12 -0400 tests: update test-fncache to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:51:12 -0400] rev 33956
tests: update test-fncache to pass our import checker
Tue, 22 Aug 2017 15:51:06 -0400 tests: update test-eol to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:51:06 -0400] rev 33955
tests: update test-eol to pass our import checker
Tue, 22 Aug 2017 15:50:59 -0400 tests: update test-dirstate to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:50:59 -0400] rev 33954
tests: update test-dirstate to pass our import checker
Tue, 22 Aug 2017 15:50:35 -0400 tests: update test-debugcommands to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:50:35 -0400] rev 33953
tests: update test-debugcommands to pass our import checker
Tue, 22 Aug 2017 15:50:27 -0400 tests: update test-convert-clonebranches to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:50:27 -0400] rev 33952
tests: update test-convert-clonebranches to pass our import checker
Tue, 22 Aug 2017 15:50:01 -0400 tests: update test-commit to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:50:01 -0400] rev 33951
tests: update test-commit to pass our import checker
Tue, 22 Aug 2017 15:49:54 -0400 tests: update test-command-template to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:49:54 -0400] rev 33950
tests: update test-command-template to pass our import checker
Tue, 22 Aug 2017 15:49:20 -0400 tests: update test-chg to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:49:20 -0400] rev 33949
tests: update test-chg to pass our import checker
Tue, 22 Aug 2017 15:05:51 -0400 tests: update test-bundle2-format to pass import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:05:51 -0400] rev 33948
tests: update test-bundle2-format to pass import checker
Tue, 22 Aug 2017 15:04:36 -0400 tests: update test-bundle2-pushback to pass the import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:04:36 -0400] rev 33947
tests: update test-bundle2-pushback to pass the import checker
Tue, 22 Aug 2017 15:04:14 -0400 tests: update test-bookmarks to pass the import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:04:14 -0400] rev 33946
tests: update test-bookmarks to pass the import checker
Tue, 22 Aug 2017 14:58:39 -0400 tests: update test-bisect to pass our module import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:58:39 -0400] rev 33945
tests: update test-bisect to pass our module import checker
Tue, 22 Aug 2017 14:58:21 -0400 tests: update test-archive to pass our module import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:58:21 -0400] rev 33944
tests: update test-archive to pass our module import checker
Tue, 22 Aug 2017 14:58:10 -0400 tests: update test-annotate to pass our module import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:58:10 -0400] rev 33943
tests: update test-annotate to pass our module import checker
Mon, 03 Jul 2017 03:56:53 +0200 obsolete: fix old typo
Boris Feld <boris.feld@octobus.net> [Mon, 03 Jul 2017 03:56:53 +0200] rev 33942
obsolete: fix old typo Clean an old typo in successorssets. Differential Revision: https://phab.mercurial-scm.org/D531
Mon, 03 Jul 2017 03:54:24 +0200 obsolete: move merge logic on the smaller object
Boris Feld <boris.feld@octobus.net> [Mon, 03 Jul 2017 03:54:24 +0200] rev 33941
obsolete: move merge logic on the smaller object Refactor some logic in _succs in order to clean successorssets code. Differential Revision: https://phab.mercurial-scm.org/D530
Mon, 28 Aug 2017 04:11:58 +0530 releasenotes: view admonition titles using -l flag
Rishabh Madan <rishabhmadan96@gmail.com> [Mon, 28 Aug 2017 04:11:58 +0530] rev 33940
releasenotes: view admonition titles using -l flag Since this extension is fairly new for almost all the contributors, remembering the admonition (with titles) is difficult. The list (-l) flag provides a list of all the active admonitions along with titles. For usage, hg releasenotes -l returns the list. Differential Revision: https://phab.mercurial-scm.org/D454
Sat, 26 Aug 2017 16:00:07 -0700 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com> [Sat, 26 Aug 2017 16:00:07 -0700] rev 33939
tests: move baduisetup test inside "#if demandimport" The test case depends on the failure happening not at import time, but at uisetup() time, so it doesn't make sense when demandimport is disabled. There was already a section for testing demandimport stuff, so I moved it inside that existing section. As part of the move, I enabled the extension using '--config' so subsequent tests don't get the bad extension enabled. Differential Revision: https://phab.mercurial-scm.org/D526
Fri, 25 Aug 2017 15:50:07 -0700 revlog: abort on attempt to write null revision
Martin von Zweigbergk <martinvonz@google.com> [Fri, 25 Aug 2017 15:50:07 -0700] rev 33938
revlog: abort on attempt to write null revision My repo got corrupted yesterday by something that ended up writing the null revision to the revlog (nullid hash, not nullrev index, of course). We use many extensions internally (narrowhg, remotefilelog, evolve, internal extensions) and treemanifests are on. The null revision was written to the changelog, the root manifest log, and one subdirectory manifest log. I have no idea exactly why the null revision was written, but it seems cheap enough to check that we should fail instead of corrupting the repo. Differential Revision: https://phab.mercurial-scm.org/D522
Tue, 22 Aug 2017 23:39:05 -0700 context: remove unnecessary default values for matchers (API)
Martin von Zweigbergk <martinvonz@google.com> [Tue, 22 Aug 2017 23:39:05 -0700] rev 33937
context: remove unnecessary default values for matchers (API) ctx._dirstatestatus() is called only from workingctx._buildstatus() and that function, in turn, is called only from basectx.status(). basectx.status() will always pass a matcher to _buildstatus(), so there's no need to handle a None matcher there. Differential Revision: https://phab.mercurial-scm.org/D492
Tue, 22 Aug 2017 23:27:55 -0700 context: always pass a matcher into _matchstatus() (API)
Martin von Zweigbergk <martinvonz@google.com> [Tue, 22 Aug 2017 23:27:55 -0700] rev 33936
context: always pass a matcher into _matchstatus() (API) This just makes it a little easier to follow and removes the need to call the superclass's method in workingctx. Differential Revision: https://phab.mercurial-scm.org/D491
Wed, 23 Aug 2017 11:30:25 -0700 test-casecollision-merge: fix the test
Jun Wu <quark@fb.com> [Wed, 23 Aug 2017 11:30:25 -0700] rev 33935
test-casecollision-merge: fix the test D30 (055fee3547df) makes the error message unpredictable, therefore the fix. Differential Revision: https://phab.mercurial-scm.org/D494
Sun, 20 Aug 2017 09:46:27 -0700 run-tests: make per-line condition support testcase names
Jun Wu <quark@fb.com> [Sun, 20 Aug 2017 09:46:27 -0700] rev 33934
run-tests: make per-line condition support testcase names 7340465bd added multiple test cases support. The latter has a problem - output lines cannot be made conditional with `#if`: ``` # COUNTEREXAMPLE: DOES NOT WORK #testcases A B $ command-foo common ouput #if A A's ouput #else B's ouput #endif common ouput ``` That's not trivial to fix (even if it works in test, `run-tests.py -i` may be suboptimal because diff algorithm does not know how to skip the `#if` lines, even if it does, it may have trouble figuring out whether a changed line belongs to inside a `#if` block or outside). Matching output lines conditionally is useful. 4eec2f04a added per-line condition support for hghave. This patch extends that to also support test case names. Differential Revision: https://phab.mercurial-scm.org/D466
Fri, 25 Aug 2017 13:49:17 -0700 simplemerge: refactor _picklabels to be more compact
Phil Cohen <phillco@fb.com> [Fri, 25 Aug 2017 13:49:17 -0700] rev 33933
simplemerge: refactor _picklabels to be more compact Use @martinvonz's suggestion from D376. Differential Revision: https://phab.mercurial-scm.org/D521
Fri, 25 Aug 2017 13:49:16 -0700 simplemerge: remove check for null context
Phil Cohen <phillco@fb.com> [Fri, 25 Aug 2017 13:49:16 -0700] rev 33932
simplemerge: remove check for null context Differential Revision: https://phab.mercurial-scm.org/D520
Thu, 24 Aug 2017 22:20:02 +0900 run-tests: pass unicode to Pygments
Yuya Nishihara <yuya@tcha.org> [Thu, 24 Aug 2017 22:20:02 +0900] rev 33931
run-tests: pass unicode to Pygments This is required on Python 3, and is more correct on Python 2 because Pygments is a unicode library.
Thu, 24 Aug 2017 22:15:40 +0900 run-tests: factor out highlight functions
Yuya Nishihara <yuya@tcha.org> [Thu, 24 Aug 2017 22:15:40 +0900] rev 33930
run-tests: factor out highlight functions
Thu, 24 Aug 2017 22:09:57 +0900 run-tests: include "\n" in formatted message instead of calling writeln()
Yuya Nishihara <yuya@tcha.org> [Thu, 24 Aug 2017 22:09:57 +0900] rev 33929
run-tests: include "\n" in formatted message instead of calling writeln() So we don't have to strip "\n" from pygments output.
Sun, 23 Apr 2017 13:08:58 +0900 encoding: add fast path of from/toutf8b() for ASCII strings
Yuya Nishihara <yuya@tcha.org> [Sun, 23 Apr 2017 13:08:58 +0900] rev 33928
encoding: add fast path of from/toutf8b() for ASCII strings See the previous patch for why. The added test seems not making much sense because ASCII strings should never contain "\xed" and be valid UTF-8. (with mercurial repo) $ export HGRCPATH=/dev/null HGPLAIN= $ hg log --time --config experimental.stabilization=all -Tjson > /dev/null (original) time: real 6.830 secs (user 6.740+0.000 sys 0.080+0.000) time: real 6.690 secs (user 6.650+0.000 sys 0.040+0.000) time: real 6.700 secs (user 6.640+0.000 sys 0.060+0.000) (fast jsonescape) time: real 5.630 secs (user 5.550+0.000 sys 0.070+0.000) time: real 5.700 secs (user 5.650+0.000 sys 0.050+0.000) time: real 5.690 secs (user 5.640+0.000 sys 0.050+0.000) (this patch) time: real 5.190 secs (user 5.120+0.000 sys 0.070+0.000) time: real 5.230 secs (user 5.170+0.000 sys 0.050+0.000) time: real 5.220 secs (user 5.150+0.000 sys 0.070+0.000)
Sun, 23 Apr 2017 13:06:23 +0900 encoding: add fast path of from/tolocal() for ASCII strings
Yuya Nishihara <yuya@tcha.org> [Sun, 23 Apr 2017 13:06:23 +0900] rev 33927
encoding: add fast path of from/tolocal() for ASCII strings This is micro optimization, but seems not bad since to/fromlocal() is called lots of times and isasciistr() is cheap and simple. We boldly assume that any non-ASCII characters have at least one 8-bit byte. This isn't true for some email character sets (e.g. ISO-2022-JP and UTF-7), but I believe no such encodings are used as a platform default. Shift_JIS, a major crap, is okay as it should have a leading byte in 0x80-0xff range. (with mercurial repo) $ export HGRCPATH=/dev/null HGPLAIN= $ hg log --time --config experimental.stabilization=all > /dev/null (original) time: real 7.460 secs (user 7.420+0.000 sys 0.030+0.000) time: real 7.670 secs (user 7.590+0.000 sys 0.080+0.000) time: real 7.560 secs (user 7.510+0.000 sys 0.040+0.000) (this patch) time: real 7.340 secs (user 7.260+0.000 sys 0.060+0.000) time: real 7.260 secs (user 7.210+0.000 sys 0.030+0.000) time: real 7.310 secs (user 7.260+0.000 sys 0.060+0.000)
Sun, 23 Apr 2017 12:59:42 +0900 encoding: add function to test if a str consists of ASCII characters
Yuya Nishihara <yuya@tcha.org> [Sun, 23 Apr 2017 12:59:42 +0900] rev 33926
encoding: add function to test if a str consists of ASCII characters Most strings are ASCII. Let's optimize for it. Using uint64_t is slightly faster than uint32_t on 64bit system, but there isn't huge difference.
Sun, 23 Apr 2017 14:47:52 +0900 encoding: add fast path of jsonescape() (issue5533)
Yuya Nishihara <yuya@tcha.org> [Sun, 23 Apr 2017 14:47:52 +0900] rev 33925
encoding: add fast path of jsonescape() (issue5533) This isn't highly optimized as it copies characters one by one, but seems reasonably simple and not slow. (with mercurial repo) $ export HGRCPATH=/dev/null HGPLAIN= $ hg log --time --config experimental.stabilization=all -Tjson > /dev/null (original) time: real 6.830 secs (user 6.740+0.000 sys 0.080+0.000) time: real 6.690 secs (user 6.650+0.000 sys 0.040+0.000) time: real 6.700 secs (user 6.640+0.000 sys 0.060+0.000) (this patch) time: real 5.630 secs (user 5.550+0.000 sys 0.070+0.000) time: real 5.700 secs (user 5.650+0.000 sys 0.050+0.000) time: real 5.690 secs (user 5.640+0.000 sys 0.050+0.000)
Sun, 23 Apr 2017 16:10:51 +0900 encoding: extract stub for fast JSON escape
Yuya Nishihara <yuya@tcha.org> [Sun, 23 Apr 2017 16:10:51 +0900] rev 33924
encoding: extract stub for fast JSON escape This moves JSON character maps to pure/charencode.py because they will be used only when the fast-path fails.
Thu, 24 Aug 2017 21:43:54 -0700 journal: do not use atomictemp (issue5338)
Jun Wu <quark@fb.com> [Thu, 24 Aug 2017 21:43:54 -0700] rev 33923
journal: do not use atomictemp (issue5338) Writing journal files using `atomictemp` leads to quadratic performance that could be problematic if automation runs many commands. Other logs like blackbox does not use atomictemp, and journal logs are not critical for repo correctness. So let's make them non-atomictemp. Differential Revision: https://phab.mercurial-scm.org/D517
Tue, 22 Aug 2017 14:26:25 -0400 tests: update test-commandserver to pass our import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:26:25 -0400] rev 33922
tests: update test-commandserver to pass our import checker
Tue, 22 Aug 2017 16:37:56 -0400 tests: add blank output lines to test-commandserver
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:37:56 -0400] rev 33921
tests: add blank output lines to test-commandserver This helps the import checker notice when a Python heredoc has ended. It's not perfect, but it gets nasty quick and I think the better fix would be to add a real parser for .t-tests, which will have to wait.
Tue, 22 Aug 2017 16:37:06 -0400 contrib: make import-checker agree more with run-tests about heredocpy
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:37:06 -0400] rev 33920
contrib: make import-checker agree more with run-tests about heredocpy run-tests.py and import-checker.py take wholly different approaches to .t-tests, and the result was that they had different notions about when a Python heredoc had ended, leading to conflicts. This resolves part of the issue, and the rest I can deal with by tweaking the one offending test file.
Tue, 22 Aug 2017 15:28:54 -0400 contrib: add bzrlib to list of packages from which we import symbols
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:28:54 -0400] rev 33919
contrib: add bzrlib to list of packages from which we import symbols Helps some tests pass the import checker.
Tue, 22 Aug 2017 15:50:53 -0400 tests: ensure demandimport test uses absolute_import
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:50:53 -0400] rev 33918
tests: ensure demandimport test uses absolute_import
Tue, 22 Aug 2017 15:16:58 -0400 tests: blacklist test-demandimport from test-check-module-imports
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:16:58 -0400] rev 33917
tests: blacklist test-demandimport from test-check-module-imports It just does too much weird import stuff to have a hope of passing the checks.
Tue, 22 Aug 2017 15:16:09 -0400 tests: sort excluded test files in test-check-module-imports
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:16:09 -0400] rev 33916
tests: sort excluded test files in test-check-module-imports
Tue, 22 Aug 2017 14:25:06 -0400 contrib: allow symbol imports from hgclient for tests
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:25:06 -0400] rev 33915
contrib: allow symbol imports from hgclient for tests
Tue, 22 Aug 2017 14:15:16 -0400 tests: blacklist some more entries in module import checks
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:15:16 -0400] rev 33914
tests: blacklist some more entries in module import checks
Thu, 24 Aug 2017 09:23:06 +0200 bookmarks: allow deleting active bookmark using '.'
David Demelier <markand@malikania.fr> [Thu, 24 Aug 2017 09:23:06 +0200] rev 33913
bookmarks: allow deleting active bookmark using '.'
Thu, 17 Aug 2017 18:26:11 +0200 template: add minimal obsfate template function
Boris Feld <boris.feld@octobus.net> [Thu, 17 Aug 2017 18:26:11 +0200] rev 33912
template: add minimal obsfate template function The goal of this series is to have templates capable of displaying the evolution of a changeset in a clean and human-readable way. Add the succsandmarkers template return successors and markers so it can be used separately like this: > {succsandmarkers % "{get(succsandmarkers, "markers")|json};"} The following patches will add template functions that takes successors and markers as inputs and compute various obsfate fields from them.
Mon, 03 Jul 2017 03:27:58 +0200 obsolete: track markers in _succs
Boris Feld <boris.feld@octobus.net> [Mon, 03 Jul 2017 03:27:58 +0200] rev 33911
obsolete: track markers in _succs We now also store markers in _succs. It will be useful for the obsfate template that will use them to display more meaningful information like the list of users that have evolved a changeset into its successors.
Mon, 03 Jul 2017 03:13:17 +0200 obsolete: add an explicit '_succs.copy()' method
Boris Feld <boris.feld@octobus.net> [Mon, 03 Jul 2017 03:13:17 +0200] rev 33910
obsolete: add an explicit '_succs.copy()' method Mimic the standard API for copying in the _succs class, it makes the code slightly cleaner and will be needed later for copying markers at the same time than copying the list content.
Mon, 03 Jul 2017 00:53:55 +0200 obsolete: introduce a _succs class
Boris Feld <boris.feld@octobus.net> [Mon, 03 Jul 2017 00:53:55 +0200] rev 33909
obsolete: introduce a _succs class It will be useful later when we will be adding markers to _succs in order to represent a successorset with the list of markers from the root to each successors sets. This information will be needed for the obsfate template I will introduce. Makes it a subclass of list so all callers will continue to work.
Thu, 24 Aug 2017 21:30:51 -0700 simplemerge: simplify code now that we always write to a context
Phil Cohen <phillco@fb.com> [Thu, 24 Aug 2017 21:30:51 -0700] rev 33908
simplemerge: simplify code now that we always write to a context There's no need for an `out` abstraction between files and contexts anymore. Differential Revision: https://phab.mercurial-scm.org/D383
Thu, 24 Aug 2017 21:30:51 -0700 simplemerge: make context parameters non-optional
Phil Cohen <phillco@fb.com> [Thu, 24 Aug 2017 21:30:51 -0700] rev 33907
simplemerge: make context parameters non-optional Also update the function docstring. Differential Revision: https://phab.mercurial-scm.org/D382
Thu, 24 Aug 2017 21:30:51 -0700 simplemerge: stop accepting, and passing, file parameters
Phil Cohen <phillco@fb.com> [Thu, 24 Aug 2017 21:30:51 -0700] rev 33906
simplemerge: stop accepting, and passing, file parameters Differential Revision: https://phab.mercurial-scm.org/D381
Thu, 24 Aug 2017 21:30:37 -0700 simplemerge: stop reading from, and writing to, files
Phil Cohen <phillco@fb.com> [Thu, 24 Aug 2017 21:30:37 -0700] rev 33905
simplemerge: stop reading from, and writing to, files We now use contexts first for everything and also pass them everywhere. Differential Revision: https://phab.mercurial-scm.org/D380
Thu, 24 Aug 2017 21:30:37 -0700 simplemerge: use context paths for default labels instead of file paths
Phil Cohen <phillco@fb.com> [Thu, 24 Aug 2017 21:30:37 -0700] rev 33904
simplemerge: use context paths for default labels instead of file paths This is the last place we used the filepath arguments without first using the context version. Differential Revision: https://phab.mercurial-scm.org/D379
Thu, 24 Aug 2017 21:30:37 -0700 contrib: make simplemerge script pass context-like objects
Phil Cohen <phillco@fb.com> [Thu, 24 Aug 2017 21:30:37 -0700] rev 33903
contrib: make simplemerge script pass context-like objects `simplemerge()` will soon require context-like objects to work. Create a simple context-like object that wraps the requested files and can be passed to the new API. Differential Revision: https://phab.mercurial-scm.org/D378
Thu, 24 Aug 2017 21:26:40 -0700 simplemerge: use `ctx.decoddeddata()` instead of `repo.wreaddata`
Phil Cohen <phillco@fb.com> [Thu, 24 Aug 2017 21:26:40 -0700] rev 33902
simplemerge: use `ctx.decoddeddata()` instead of `repo.wreaddata` This eliminates the need for the `repo` object. Differential Revision: https://phab.mercurial-scm.org/D435
Thu, 24 Aug 2017 21:26:40 -0700 context: add `decodeddata()` to basefilectx
Phil Cohen <phillco@fb.com> [Thu, 24 Aug 2017 21:26:40 -0700] rev 33901
context: add `decodeddata()` to basefilectx This will be used as an abstraction by simplemerge to get the data it used to read off the filesystem. Differential Revision: https://phab.mercurial-scm.org/D434
Mon, 21 Aug 2017 08:52:46 +0200 bookmarks: allow renaming active bookmark using '.'
David Demelier <markand@malikania.fr> [Mon, 21 Aug 2017 08:52:46 +0200] rev 33900
bookmarks: allow renaming active bookmark using '.'
Tue, 22 Aug 2017 14:14:52 -0400 i18n: update check-translation script to pass import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:14:52 -0400] rev 33899
i18n: update check-translation script to pass import checker
Tue, 22 Aug 2017 14:14:34 -0400 demandimportpy3: update to pass import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:14:34 -0400] rev 33898
demandimportpy3: update to pass import checker
Tue, 22 Aug 2017 16:02:57 -0400 contrib: always treat importlib.* as stdlib
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 16:02:57 -0400] rev 33897
contrib: always treat importlib.* as stdlib
Tue, 22 Aug 2017 14:14:19 -0400 hg: update top-level script to use modern import conventions
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:14:19 -0400] rev 33896
hg: update top-level script to use modern import conventions
Tue, 22 Aug 2017 14:13:13 -0400 simplemerge: update to conform with modern import conventions
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:13:13 -0400] rev 33895
simplemerge: update to conform with modern import conventions
Tue, 22 Aug 2017 14:12:37 -0400 contrib: inform import checker that __builtin__ is a thing
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:12:37 -0400] rev 33894
contrib: inform import checker that __builtin__ is a thing
Tue, 22 Aug 2017 14:12:21 -0400 contrib: allow importing "symbols" from mercurial
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:12:21 -0400] rev 33893
contrib: allow importing "symbols" from mercurial
Tue, 22 Aug 2017 14:12:03 -0400 hgperf: update to conform with import style checks
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:12:03 -0400] rev 33892
hgperf: update to conform with import style checks
Tue, 22 Aug 2017 14:11:48 -0400 contrib: update hg-ssh to conform with import style checks
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:11:48 -0400] rev 33891
contrib: update hg-ssh to conform with import style checks
Tue, 22 Aug 2017 12:59:21 -0400 contrib: have import-checker work mostly with native strings for mod names
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 12:59:21 -0400] rev 33890
contrib: have import-checker work mostly with native strings for mod names Module names are a bit awkward to deal with portably otherwise.
Wed, 23 Aug 2017 12:35:03 -0700 bundlerepo: move bundle2 part handling out to a function
Durham Goode <durham@fb.com> [Wed, 23 Aug 2017 12:35:03 -0700] rev 33889
bundlerepo: move bundle2 part handling out to a function This moves the bundle2 part handling for bundlerepo out to a separate function so extensions can participate in bundlerepo setup when using bundle2 bundles. Differential Revision: https://phab.mercurial-scm.org/D290
Wed, 23 Aug 2017 12:35:03 -0700 bundle2: seek part back during iteration
Durham Goode <durham@fb.com> [Wed, 23 Aug 2017 12:35:03 -0700] rev 33888
bundle2: seek part back during iteration Previously, iterparts would yield the part to users, then consume the part. This changed the part after the user was given it and left it at the end, both of which seem unexpected. Let's seek back to the beginning after we've consumed it. I tried not seeking to the end at all, but that seems important for the overall bundle2 consumption. This is used in a future patch to let us move the bundlerepo bundle2-changegroup-part to be handled entirely within the for loop, instead of having to do a seek back to 0 after the entire loop finishes. Differential Revision: https://phab.mercurial-scm.org/D289
Wed, 23 Aug 2017 12:34:56 -0700 bundlerepo: move temp bundle creation to a separate function
Durham Goode <durham@fb.com> [Wed, 23 Aug 2017 12:34:56 -0700] rev 33887
bundlerepo: move temp bundle creation to a separate function A future patch will refactor certain parts of bundlerepo initiatlization such that we need to create temp bundles from another function. Let's move this to another function to support that. Differential Revision: https://phab.mercurial-scm.org/D288
Thu, 17 Aug 2017 13:04:47 -0700 exchange: don't attempt phase exchange if phase-heads was in bundle
Martin von Zweigbergk <martinvonz@google.com> [Thu, 17 Aug 2017 13:04:47 -0700] rev 33886
exchange: don't attempt phase exchange if phase-heads was in bundle The Mercurial core server doesn't yet include phase-heads parts in the bundle, but our Google-internal server wants to do that. Unfortunately, the usual exchange still happens even if phase-heads part is included (including the short-circuited one for old/publishing servers). That means that even if our server (again, the Google-internal one, but also future Mercurial core servers) includes a phase-heads part to indicate that some heads should be drafts, that would still get overwritten by the phase updating that happens after. So let's fix that by marking the phase step done if we receive at least one phase-heads part in the bundle. Differential Revision: https://phab.mercurial-scm.org/D440
Wed, 16 Aug 2017 15:48:48 -0700 pushvars: do not mangle repo state
Jun Wu <quark@fb.com> [Wed, 16 Aug 2017 15:48:48 -0700] rev 33885
pushvars: do not mangle repo state Setting `repo._shellvars` works but is not a clean way to pass the pushvars information from the push command to the exchange operation. Therefore change it to actually pass `pushvars` as a push operation argument instead. This makes third party extension like remotenames easier to support pushvars cleanly. The key value parsing and verification code has been moved to a lower level so it's harder to be bypassed and easier to be used in remotenames which could replace `push` command entirely. Differential Revision: https://phab.mercurial-scm.org/D423
Sun, 27 Aug 2017 13:39:17 -0700 record: fix revert -i for lines without newline (issue5651) stable
Jun Wu <quark@fb.com> [Sun, 27 Aug 2017 13:39:17 -0700] rev 33884
record: fix revert -i for lines without newline (issue5651) This is a regression caused by 66117dae87f9. Code prior to 66117dae87f9 seems to miss the "\ No newline at end of file" line. Differential Revision: https://phab.mercurial-scm.org/D528
Mon, 21 Aug 2017 16:43:37 +0530 morestatus: check whether the conflict message is None before printing
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 21 Aug 2017 16:43:37 +0530] rev 33883
morestatus: check whether the conflict message is None before printing There are cases like bisect when the conflict message can be None. So we make sure that we don't print None in that case. Thanks to Martin for catching this. Differential Revision: https://phab.mercurial-scm.org/D461
Wed, 23 Aug 2017 01:09:08 +0000 bundle2: fixed usage of an attribute that was removed in py3k
Alex Gaynor <alex.gaynor@gmail.com> [Wed, 23 Aug 2017 01:09:08 +0000] rev 33882
bundle2: fixed usage of an attribute that was removed in py3k Differential Revision: https://phab.mercurial-scm.org/D482
Sun, 13 Aug 2017 19:58:45 +0530 releasenotes: add check flag for use of admonitions and its validity
Rishabh Madan <rishabhmadan96@gmail.com> [Sun, 13 Aug 2017 19:58:45 +0530] rev 33881
releasenotes: add check flag for use of admonitions and its validity While using releasenotes extension, we will be using admonitions in commit messages. The check (-c) flag will look for an admonition within the message. If it exists, it will verify if it is stated under default or custom admonition. The check fails if the admonition is not present in any of them. It also suggests similar admonitions in case the admonition is invalid. Differential Revision: https://phab.mercurial-scm.org/D368
Tue, 22 Aug 2017 16:16:39 +0200 copies: fix misaligned lines
Gábor Stefanik <gabor.stefanik@nng.com> [Tue, 22 Aug 2017 16:16:39 +0200] rev 33880
copies: fix misaligned lines
Tue, 22 Aug 2017 16:08:31 +0200 copies: fix typo in comment
Gábor Stefanik <gabor.stefanik@nng.com> [Tue, 22 Aug 2017 16:08:31 +0200] rev 33879
copies: fix typo in comment "will not be limited" was meant to be "will not be visited". I missed this when writing the original graft-through-rename patch series.
Tue, 22 Aug 2017 11:00:46 -0400 python3: whitelist test-imports-checker.t, which now passes
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 11:00:46 -0400] rev 33878
python3: whitelist test-imports-checker.t, which now passes
Tue, 22 Aug 2017 12:58:28 -0400 contrib: make import checker always think in terms of bytes
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 12:58:28 -0400] rev 33877
contrib: make import checker always think in terms of bytes The doctests now do some regrettable things, but they'll always work since we're dealing with ASCII module names etc.
Tue, 22 Aug 2017 10:58:29 -0400 contrib: work around some modules not existing on Py3 in import checker
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 10:58:29 -0400] rev 33876
contrib: work around some modules not existing on Py3 in import checker
Tue, 22 Aug 2017 15:05:07 -0400 tests: stop using old except syntax in test-bundle2-format
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 15:05:07 -0400] rev 33875
tests: stop using old except syntax in test-bundle2-format
Tue, 22 Aug 2017 14:57:52 -0400 tests: update test-archive to always use hashlib
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:57:52 -0400] rev 33874
tests: update test-archive to always use hashlib We don't need the fallback to the old modules anymore.
Tue, 22 Aug 2017 14:57:10 -0400 md5sum: assume hashlib exists now that we're 2.7 only
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 14:57:10 -0400] rev 33873
md5sum: assume hashlib exists now that we're 2.7 only
Tue, 22 Aug 2017 12:58:51 -0400 undumprevlog: update to valid Python 3 syntax
Augie Fackler <raf@durin42.com> [Tue, 22 Aug 2017 12:58:51 -0400] rev 33872
undumprevlog: update to valid Python 3 syntax I didn't do anything to ensure correctness here, just enough to avoid tracebacks in the import checker, which uses the native ast module to try and parse all our Python files.
Wed, 23 Aug 2017 01:08:09 +0000 tests: fixed a bytes/unicode confusion in the test runner
Alex Gaynor <alex.gaynor@gmail.com> [Wed, 23 Aug 2017 01:08:09 +0000] rev 33871
tests: fixed a bytes/unicode confusion in the test runner Differential Revision: https://phab.mercurial-scm.org/D483
Tue, 22 Aug 2017 10:01:27 -0700 run-tests: remove unused pygments token type
Martin von Zweigbergk <martinvonz@google.com> [Tue, 22 Aug 2017 10:01:27 -0700] rev 33870
run-tests: remove unused pygments token type Differential Revision: https://phab.mercurial-scm.org/D478
Mon, 21 Aug 2017 22:13:51 -0700 run-tests: also highlight .py test files in summary messages
Martin von Zweigbergk <martinvonz@google.com> [Mon, 21 Aug 2017 22:13:51 -0700] rev 33869
run-tests: also highlight .py test files in summary messages With the .t files highlighted, it's very easy to not even notice failed .py tests. Differential Revision: https://phab.mercurial-scm.org/D471
Sun, 20 Aug 2017 10:55:05 -0700 test-revset: make it work with chg
Jun Wu <quark@fb.com> [Sun, 20 Aug 2017 10:55:05 -0700] rev 33868
test-revset: make it work with chg chg currently triggers `reposetup` as a side effect of `hg serve` command. Therefore change the test to not output during `reposetup` to be compatible with chg. Differential Revision: https://phab.mercurial-scm.org/D455
Sat, 19 Aug 2017 11:23:33 +0900 copies: use intersectmatchers() in non-merge p1 optimization
Yuya Nishihara <yuya@tcha.org> [Sat, 19 Aug 2017 11:23:33 +0900] rev 33867
copies: use intersectmatchers() in non-merge p1 optimization This enables the optimization introduced by d4247c306d82 for non-rebase cases. Before, the match couldn't be narrowed if it was e.g. alwaysmatcher. The logic is copied from bd56bea5ecf8.
Tue, 22 Aug 2017 11:00:00 +0200 run-tests: pre instantiate pygments objects
Matthieu Laneuville <matthieu.laneuville@octobus.net> [Tue, 22 Aug 2017 11:00:00 +0200] rev 33866
run-tests: pre instantiate pygments objects Pre instantiate pygments objects to minimize overhead (cf. 20436925e080)
Mon, 21 Aug 2017 21:35:06 -0700 merge with stable
Sean Farley <sean@farley.io> [Mon, 21 Aug 2017 21:35:06 -0700] rev 33865
merge with stable
Fri, 11 Aug 2017 01:34:11 -0700 rebase: only change self.state when collapsing in _finishrebase
Jun Wu <quark@fb.com> [Fri, 11 Aug 2017 01:34:11 -0700] rev 33864
rebase: only change self.state when collapsing in _finishrebase When the code executes to _finishrebase, self.state should be populated with correct destinations and do not need to be written to a node. The code was introduced by 8dc45c9059, which seems to avoid setting state values to None but it didn't provide more details. Differential Revision: https://phab.mercurial-scm.org/D346
Thu, 10 Aug 2017 22:17:15 -0700 rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com> [Thu, 10 Aug 2017 22:17:15 -0700] rev 33863
rebase: choose merge base without unwanted revisions Previously, when there are 2 merge base candidates, we choose p1 blindly, which may make the merge result to have "unwanted content". This patch makes rebase smarter - choose a merge base that does not have "unwanted revs" if possible. Since we don't really have a good solution when there are "unwanted revs", abort in that case. Differential Revision: https://phab.mercurial-scm.org/D340
Tue, 15 Aug 2017 23:23:55 -0700 templatekw: choose {latesttag} by len(changes), not date (issue5659) stable
Martin von Zweigbergk <martinvonz@google.com> [Tue, 15 Aug 2017 23:23:55 -0700] rev 33862
templatekw: choose {latesttag} by len(changes), not date (issue5659) As Augie reported in the bug, the current heuristic of choosing the best tag of a merge commit by taking the one with newest tag (in terms of tagging date) currently fails in the Mercurial repo itself. Copying the example from Yuya: $ hg glog -T '{node|short} {latesttag}+{latesttagdistance}\n' \ -r '4.2.3: & (merge() + parents(merge()) + tag())' o 02a745c20121 4.2.3+5 |\ | o 86aca74a063b 4.2.3+4 | |\ | | o e6d8ee3c9ec3 4.3-rc+109 | | | | | ~ o | a3ce07e2dde5 4.3.1+2 : | o | 3fee7f7d2da0 4.3.1+0 |/ o 98e990bb7330 4.2.3+3 |\ | ~ o 506d7e48fbe6 4.2.3+2 : o 943c91326b23 4.2.3+0 | ~ It seems to me like the best choice is the tag with the smallest number of changes since it (across all paths, not the longest single path). So that's what this patch does, even though it's costly. Best-of-5 timings for Yuya's command above shows a slowdown from 1.293s to 1.610s. We can optimize it later. Differential Revision: https://phab.mercurial-scm.org/D447
Fri, 18 Aug 2017 12:50:26 -0700 tests: use graph log in {latesttag} tests stable
Martin von Zweigbergk <martinvonz@google.com> [Fri, 18 Aug 2017 12:50:26 -0700] rev 33861
tests: use graph log in {latesttag} tests The tests are much easier to read if one does not have to re-read the setup part all the time to understand the graph shape. Differential Revision: https://phab.mercurial-scm.org/D446
Wed, 16 Aug 2017 10:44:06 -0700 demandimport: disable if chg is being used
Jun Wu <quark@fb.com> [Wed, 16 Aug 2017 10:44:06 -0700] rev 33860
demandimport: disable if chg is being used In chg's case, making modules lazily loaded could actually slow down things since chg pre-imports them. Therefore disable demandimport if chg is being used. This is not done by setting `HGDEMANDIMPORT` chg client-side because that has side-effects on child processes (hooks, etc). Differential Revision: https://phab.mercurial-scm.org/D351
Fri, 18 Aug 2017 11:08:17 -0700 demandimport: move HGDEMANDIMPORT test to __init__.py
Jun Wu <quark@fb.com> [Fri, 18 Aug 2017 11:08:17 -0700] rev 33859
demandimport: move HGDEMANDIMPORT test to __init__.py The logic is now shared between demandimport{2,3}. Differential Revision: https://phab.mercurial-scm.org/D445
Tue, 15 Aug 2017 10:15:31 -0700 log: add a "graphwidth" template variable
Danny Hooper <hooper@google.com> [Tue, 15 Aug 2017 10:15:31 -0700] rev 33858
log: add a "graphwidth" template variable Wrapping text in templates for 'hg log --graph' can't be done very well, because the template doesn't know how wide the graph drawing is. The edge drawing function needs to know the number of lines in the template output, so we need to also determine how wide that drawing would be before we call the edgefn or evaluate the template. This patch makes edgefn compute the graph width and pass it into the template so that we can do something like this: COLUMNS=10 hg log --graph --template "{fill(desc, termwidth - graphwidth)}" @ a a a a | a a a a | a a a a o a a a |\ a a a | | a a a | | a a a Using extensions to do this would be relatively complicated due to a lack of hooks in this area of the code. In the future it may make sense to have a more generic "textwidth" that tells you how many columns you can expect to fill without causing the terminal to wrap your output. I'm not sure there are other situations to motivate this yet, or if it is entirely feasible. Differential Revision: https://phab.mercurial-scm.org/D360
Wed, 16 Aug 2017 10:18:57 +0200 obsmarker: fix precnode deprecation
Boris Feld <boris.feld@octobus.net> [Wed, 16 Aug 2017 10:18:57 +0200] rev 33857
obsmarker: fix precnode deprecation The deprecation message for marker.precnode was wrong. Fix the typo. Differential Revision: https://phab.mercurial-scm.org/D413
Wed, 16 Aug 2017 10:26:26 +0200 obsmarker: precnode was renamed into prednode
Boris Feld <boris.feld@octobus.net> [Wed, 16 Aug 2017 10:26:26 +0200] rev 33856
obsmarker: precnode was renamed into prednode Update all calls to formatter.write first arguments to remove references to precnode and use prednode consistently everywhere. Differential Revision: https://phab.mercurial-scm.org/D414
Wed, 16 Aug 2017 16:48:41 +0200 revset: mark evolution-related revsets as experimental
Boris Feld <boris.feld@octobus.net> [Wed, 16 Aug 2017 16:48:41 +0200] rev 33855
revset: mark evolution-related revsets as experimental Differential Revision: https://phab.mercurial-scm.org/D416
Tue, 15 Aug 2017 17:22:57 -0700 push: fix docsstring
Jun Wu <quark@fb.com> [Tue, 15 Aug 2017 17:22:57 -0700] rev 33854
push: fix docsstring Seems the code block misses `::`. This patch makes sure `[push]` and `pushvars.server = true` are in two lines. Differential Revision: https://phab.mercurial-scm.org/D411
Wed, 16 Aug 2017 13:54:24 +0900 py3: select input or raw_input by pycompat
Yuya Nishihara <yuya@tcha.org> [Wed, 16 Aug 2017 13:54:24 +0900] rev 33853
py3: select input or raw_input by pycompat This seems slightly cleaner.
Wed, 16 Aug 2017 13:50:11 +0900 py3: make encoding.strio() an identity function on Python 2
Yuya Nishihara <yuya@tcha.org> [Wed, 16 Aug 2017 13:50:11 +0900] rev 33852
py3: make encoding.strio() an identity function on Python 2 It's the convention the other encoding.str*() functions follow. To make things simple, this also drops kwargs from the strio() constructor.
Sun, 13 Aug 2017 14:12:28 +0900 templatekw: specify plural form of instability
Yuya Nishihara <yuya@tcha.org> [Sun, 13 Aug 2017 14:12:28 +0900] rev 33851
templatekw: specify plural form of instability Follows up 40739aef97f7.
Wed, 16 Aug 2017 13:57:19 +0900 templatekw: rename termwidth() per convention
Yuya Nishihara <yuya@tcha.org> [Wed, 16 Aug 2017 13:57:19 +0900] rev 33850
templatekw: rename termwidth() per convention
Fri, 11 Aug 2017 01:08:07 -0700 rebase: optimize "source" calculation in adjustdest
Jun Wu <quark@fb.com> [Fri, 11 Aug 2017 01:08:07 -0700] rev 33849
rebase: optimize "source" calculation in adjustdest The "source" variable is calculated inside a loop but it does not depend on loop variables. Therefore move it outside the loop. Differential Revision: https://phab.mercurial-scm.org/D345
Fri, 11 Aug 2017 01:36:59 -0700 rebase: remove "state >= revtodo" condition
Jun Wu <quark@fb.com> [Fri, 11 Aug 2017 01:36:59 -0700] rev 33848
rebase: remove "state >= revtodo" condition Now the minimal value of state is revtodo, that condition is always true, therefore removed. Differential Revision: https://phab.mercurial-scm.org/D344
Fri, 11 Aug 2017 01:05:47 -0700 rebase: remove self.destancestors
Jun Wu <quark@fb.com> [Fri, 11 Aug 2017 01:05:47 -0700] rev 33847
rebase: remove self.destancestors The state is no longer used after calculating "self.external", therefore removed. Differential Revision: https://phab.mercurial-scm.org/D343
Fri, 14 Jul 2017 09:01:45 -0700 rebase: remove rebaseset from _checkobsrebase
Jun Wu <quark@fb.com> [Fri, 14 Jul 2017 09:01:45 -0700] rev 33846
rebase: remove rebaseset from _checkobsrebase The parameter is not used. Therefore removed. Differential Revision: https://phab.mercurial-scm.org/D85
Mon, 10 Jul 2017 12:18:32 -0700 rebase: remove revignored and nullmerge states
Jun Wu <quark@fb.com> [Mon, 10 Jul 2017 12:18:32 -0700] rev 33845
rebase: remove revignored and nullmerge states They are no longer necessary to make rebase behavior correct. Therefore remove them to make the code cleaner and easier to reason about. Differential Revision: https://phab.mercurial-scm.org/D26
Sat, 08 Jul 2017 20:38:34 -0700 rebase: remove messages for nullmerge and revignored (BC)
Jun Wu <quark@fb.com> [Sat, 08 Jul 2017 20:38:34 -0700] rev 33844
rebase: remove messages for nullmerge and revignored (BC) These states will be removed to make the code cleaner and more robust. Remove their messages first to make review easier. Differential Revision: https://phab.mercurial-scm.org/D25
Sat, 08 Jul 2017 20:38:34 -0700 rebase: remove revprecursor and revpruned states (BC)
Jun Wu <quark@fb.com> [Sat, 08 Jul 2017 20:38:34 -0700] rev 33843
rebase: remove revprecursor and revpruned states (BC) Those states are no longer necessary for rebase to function properly. Remove them to make the code cleaner. Marked as BC because in a corner case where working parent is obsoleted, and is skipped for rebase, we no longer move working parent after rebase completes. That is better since if working parent is obsoleted, it should be the user moving working parent back there (after a rebase) explicitly, in that case, we shouldn't move working parent again. Differential Revision: https://phab.mercurial-scm.org/D24
(0) -30000 -10000 -3000 -1000 -120 +120 +1000 +3000 +10000 tip