Sat, 13 May 2017 15:41:50 +0900 extensions: prohibit registration of command without using @command (API)
Yuya Nishihara <yuya@tcha.org> [Sat, 13 May 2017 15:41:50 +0900] rev 32342
extensions: prohibit registration of command without using @command (API) Detect the problem earlier for better error indication. I'm tired of teaching users that the mq extension is not guilty but the third-party extension is. https://bitbucket.org/tortoisehg/thg/issues?q=%27norepo%27
Sun, 14 May 2017 15:46:45 +0900 extensions: optionally print hint on import failure
Yuya Nishihara <yuya@tcha.org> [Sun, 14 May 2017 15:46:45 +0900] rev 32341
extensions: optionally print hint on import failure Test will be added by the next patch.
Sun, 14 May 2017 15:41:27 +0900 error: add hint to ProgrammingError
Yuya Nishihara <yuya@tcha.org> [Sun, 14 May 2017 15:41:27 +0900] rev 32340
error: add hint to ProgrammingError As the hint isn't shown by the default exception handler, we need to print it manually. I've copied the "** " style from _exceptionwarning().
Mon, 08 May 2017 22:14:56 +0900 registrar: unindent superfluous "if True" block
Yuya Nishihara <yuya@tcha.org> [Mon, 08 May 2017 22:14:56 +0900] rev 32339
registrar: unindent superfluous "if True" block
Mon, 08 May 2017 22:08:40 +0900 registrar: switch @command decorator to class
Yuya Nishihara <yuya@tcha.org> [Mon, 08 May 2017 22:08:40 +0900] rev 32338
registrar: switch @command decorator to class It overrides _funcregistrarbase._doregister() since the structure of the command table is quite different.
Sat, 09 Jan 2016 23:07:20 +0900 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org> [Sat, 09 Jan 2016 23:07:20 +0900] rev 32337
registrar: move cmdutil.command to registrar module (API) cmdutil.command wasn't a member of the registrar framework only for a historical reason. Let's make that happen. This patch keeps cmdutil.command as an alias for extension compatibility.
Sat, 13 May 2017 17:53:55 +0900 gendoc: make sure locale path is set before loading any modules
Yuya Nishihara <yuya@tcha.org> [Sat, 13 May 2017 17:53:55 +0900] rev 32336
gendoc: make sure locale path is set before loading any modules Otherwise some messages wouldn't be translated depending on when the util was loaded.
Thu, 18 May 2017 12:49:10 -0700 fsmonitor: don't attempt state-leave if we didn't state-enter
Wez Furlong <wez@fb.com> [Thu, 18 May 2017 12:49:10 -0700] rev 32335
fsmonitor: don't attempt state-leave if we didn't state-enter The state-enter command may not have been successful; for example, the watchman client session may have timed out if the user was busy/idle for a long period during a merge conflict resolution earlier in processing a rebase for a stack of diffs. It's cleaner (from the perspective of the watchman logs) to avoid issuing the state-leave command in these cases. Test Plan: ran `hg rebase --tool :merge -r '(draft() & date(-14)) - master::' -d master` and didn't observe any errors in the watchman logs or in the output from `watchman -p -j <<<'["subscribe", "/data/users/wez/fbsource", "wez", {"expression": ["name", ".hg/updatestate"]}]'`
Thu, 18 May 2017 12:48:07 -0700 fsmonitor: acquire localrepo.wlock prior to emitting hg.update state
Wez Furlong <wez@fb.com> [Thu, 18 May 2017 12:48:07 -0700] rev 32334
fsmonitor: acquire localrepo.wlock prior to emitting hg.update state we see some weird things in the watchman logs where the mercurial process is seemingly confused about which hg.update state it is publishing through watchman. On closer examination, we're seeing conflicting pids for the clients involved and this implies a race. To resolve this, we extend the wlock around the state-enter/state-leave events that are emitted to watchman. Test Plan: Some manual testing: In one window, run this, and then checkout a different rev: ``` $ watchman -p -j <<<'["subscribe", "/data/users/wez/fbsource", "wez", {"expression": ["name", ".hg/updatestate"]}]' { "version": "4.9.0", "subscribe": "wez", "clock": "c:1495034090:814028:1:312576" } { "state-enter": "hg.update", "version": "4.9.0", "clock": "c:1495034090:814028:1:312596", "unilateral": true, "subscription": "wez", "metadata": { "status": "ok", "distance": 125, "rev": "a1275d79ffa6c58b53116c8ec401c275ca6c1e2a", "partial": false }, "root": "/data/users/wez/fbsource" } { "root": "/data/users/wez/fbsource", "metadata": { "status": "ok", "distance": 125, "rev": "a1275d79ffa6c58b53116c8ec401c275ca6c1e2a", "partial": false }, "subscription": "wez", "unilateral": true, "version": "4.9.0", "clock": "c:1495034090:814028:1:312627", "state-leave": "hg.update" } ``` Tailed the watchman log file and looked for invalid state assertion errors, then ran my `rebase-all` script to update/rebase all of my heads. Didn't trigger the error condition (but couldn't reliably trigger it previously anyway), and the output captured above shows that the states are being emitted correctly.
Fri, 19 May 2017 13:12:42 +0200 obsolete: move the 'isenabled' function at the top of the file
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 May 2017 13:12:42 +0200] rev 32333
obsolete: move the 'isenabled' function at the top of the file That is a simple and important function so having it at the top next to the related constant seems better.
(0) -30000 -10000 -3000 -1000 -300 -100 -10 +10 +100 +300 +1000 +3000 +10000 tip