Tue, 19 Jun 2018 15:03:58 +0200 revlog: early return in _slicechunk when density is already good
Paul Morelle <paul.morelle@octobus.net> [Tue, 19 Jun 2018 15:03:58 +0200] rev 38634
revlog: early return in _slicechunk when density is already good We don't need to do anything if we know we won't enter the second while loop. Save the overhead of the first loop by returning earlier.
Tue, 10 Jul 2018 02:33:43 +0200 sparse-read: discard gap below 65K only
Boris Feld <boris.feld@octobus.net> [Tue, 10 Jul 2018 02:33:43 +0200] rev 38633
sparse-read: discard gap below 65K only Testing on actual data shows that 65K is more efficient in both time and memory than 256K.
Fri, 22 Jun 2018 17:12:24 +0200 sparse-read: target density of 50% instead of 25%
Paul Morelle <paul.morelle@octobus.net> [Fri, 22 Jun 2018 17:12:24 +0200] rev 38632
sparse-read: target density of 50% instead of 25% The target density value is wrong. The default target chain span is 4*text-length. However, the target max chain payload is 2*text-length. So default target density should be 50% (2/4) not 25% (1/4).
Fri, 06 Jul 2018 00:39:21 +0530 grep: change default behaviour to search working directory files (BC)
Sangeet Kumar Mishra <mail2sangeetmishra@gmail.com> [Fri, 06 Jul 2018 00:39:21 +0530] rev 38631
grep: change default behaviour to search working directory files (BC) With this patch, grep searches on the working directory by default and looks for all files tracked by the working directory and greps on them. ### OLD BEHAVIOUR $ hg init a $ cd a $ echo "some text">>file1 $ hg add file1 $ hg commit -m "adds file1" $ hg mv file1 file2 $ hg grep "some" `file2:1:some text` `file1:0:some text` This behaviour is undesirable since file1 is not in the current history and was renamed as file2, so the second result was redundant and confusing. ### NEW BEHAVIOUR $ hg init a $ cd a $ echo "some text">>file1 $ hg add file1 $ hg commit -m "adds file1" $ hg mv file1 file2 $ hg grep "some" `file2:2147483647:some text` Differential Revision: https://phab.mercurial-scm.org/D3826
Tue, 10 Jul 2018 13:18:34 +0200 patch: don't separate \r and \n when colorizing diff output
Sune Foldager <cryo@cyanite.org> [Tue, 10 Jul 2018 13:18:34 +0200] rev 38630
patch: don't separate \r and \n when colorizing diff output When displaying diffs, \r at the end of a line is treated as trailing whitespace. This causes an ANSI escape code to be inserted between \r and \n. Some programs, such as less since version 530 (maybe earlier, but at least not version 487) displays ^M when it encounters a lone \r. This causes a lot of noise in diff output on Windows, where \r\n is used to terminate lines. We avoid that by treating both \n and \r\n as end of line when considering trailing whitespace.
Sat, 07 Jul 2018 23:38:06 -0400 hook: add support for disabling the shell to native command translation
Matt Harbison <matt_harbison@yahoo.com> [Sat, 07 Jul 2018 23:38:06 -0400] rev 38629
hook: add support for disabling the shell to native command translation I think having it on by default is the right thing to do, but this is an escape hatch if someone has a command that shouldn't be mangled. The inspiration is the priority prefix. The translation does nothing on non Windows platforms, so the default value is selected to avoid printing a useless note by default.
Sat, 07 Jul 2018 23:47:49 -0400 hook: narrow the 'priority' prefix check to align with the documentation
Matt Harbison <matt_harbison@yahoo.com> [Sat, 07 Jul 2018 23:47:49 -0400] rev 38628
hook: narrow the 'priority' prefix check to align with the documentation A prefix like 'priorityfoo' is meaningless, but `hg help config.hooks` calls out the dot.
Sat, 07 Jul 2018 22:13:56 -0400 windows: don't consider '$$' to be an escaped '$' when translating to cmd.exe
Matt Harbison <matt_harbison@yahoo.com> [Sat, 07 Jul 2018 22:13:56 -0400] rev 38627
windows: don't consider '$$' to be an escaped '$' when translating to cmd.exe This functionality was inherited from `os.path.expandvars()`. But the point of adding this translating code is to be able to write a portable hook, and bash wouldn't replace '$$' with '$'. Escaping with '\' works, and is portable.
Wed, 20 Jun 2018 17:07:46 -0700 contrib: add heads(commonancestors(_)) to all-revsets
Sean Farley <sean@farley.io> [Wed, 20 Jun 2018 17:07:46 -0700] rev 38626
contrib: add heads(commonancestors(_)) to all-revsets This is mainly to check that we don't regress our optimization path.
Tue, 26 Jun 2018 15:26:21 -0700 revset: add optimization for heads(commonancestors())
Sean Farley <sean@farley.io> [Tue, 26 Jun 2018 15:26:21 -0700] rev 38625
revset: add optimization for heads(commonancestors()) Previously, the only way to get these commits were (tested on mozilla-central): hg perfrevset 'heads(::a7cf55 and ::d8b15)' ! wall 4.988366 comb 4.960000 user 4.780000 sys 0.180000 (best of 3) After this patch: (python) hg perfrevset 'heads(commonancestors(a7cf55 + d8b15))' ! wall 0.002155 comb 0.000000 user 0.000000 sys 0.000000 (best of 1107) (C) hg perfrevset 'heads(commonancestors(a7cf55 + d8b15))' ! wall 0.000568 comb 0.000000 user 0.000000 sys 0.000000 (best of 4646)
Mon, 18 Jun 2018 19:41:54 -0700 revsets: add commonancestors revset
Sean Farley <sean@farley.io> [Mon, 18 Jun 2018 19:41:54 -0700] rev 38624
revsets: add commonancestors revset This is a method to reproduce "::x and ::y" such that a set can be sent in. For instance, it'd be convenient to have "::heads()" work like this but that already means "::x + ::y + ..." for each element in the "heads()" set. Therefore, we add the "commonancestors" method to mean "::x and ::y ..." for each head in the given set.
Mon, 09 Jul 2018 10:07:20 -0400 tweakdefaults: enable word-diff by default
Augie Fackler <augie@google.com> [Mon, 09 Jul 2018 10:07:20 -0400] rev 38623
tweakdefaults: enable word-diff by default It's another creature comfort in diff output, we may as well include it alongside git-diffs and showfunc.
Tue, 10 Jul 2018 08:31:33 +0200 run-tests: fix a too long line
Boris Feld <boris.feld@octobus.net> [Tue, 10 Jul 2018 08:31:33 +0200] rev 38622
run-tests: fix a too long line Differential Revision: https://phab.mercurial-scm.org/D3900
Tue, 10 Jul 2018 08:25:04 +0200 run-tests: add missing life-cycle methods on the example custom test result
Boris Feld <boris.feld@octobus.net> [Tue, 10 Jul 2018 08:25:04 +0200] rev 38621
run-tests: add missing life-cycle methods on the example custom test result A previous commit introduced `onStart` and `onEnd` methods on test result but the one used in tests lacked those two methods. Fix it and add some output to be sure they are called. Differential Revision: https://phab.mercurial-scm.org/D3899
Tue, 10 Jul 2018 08:23:46 +0200 run-tests: fix test result verbosity
Boris Feld <boris.feld@octobus.net> [Tue, 10 Jul 2018 08:23:46 +0200] rev 38620
run-tests: fix test result verbosity A previous refactoring created the test result with a verbosity of 0 hiding some of the outputs in the normal case. Differential Revision: https://phab.mercurial-scm.org/D3898
Tue, 05 Jun 2018 12:04:15 +0200 shelve: use more accurate description in conflict marker
Boris Feld <boris.feld@octobus.net> [Tue, 05 Jun 2018 12:04:15 +0200] rev 38619
shelve: use more accurate description in conflict marker We use "shelve" and "working-copy" instead of "source" and "dest". This is a net win. Differential Revision: https://phab.mercurial-scm.org/D3694
Tue, 29 May 2018 00:30:50 +0200 shelve: directly handle the initial parent alignment
Boris Feld <boris.feld@octobus.net> [Tue, 29 May 2018 00:30:50 +0200] rev 38618
shelve: directly handle the initial parent alignment Shelve is currently sub-contracting some of its work to the rebase extension. In order to make shelve more independent and flexible we would like shelve to handle the parent alignment directly. After this change, we no longer need to use rebase in shelve. Differential Revision: https://phab.mercurial-scm.org/D3693
Thu, 24 May 2018 17:39:07 +0200 run-tests: extract onStart and onEnd into the test result
Boris Feld <boris.feld@octobus.net> [Thu, 24 May 2018 17:39:07 +0200] rev 38617
run-tests: extract onStart and onEnd into the test result It would allow custom test result to display custom messages. Differential Revision: https://phab.mercurial-scm.org/D3701
Sat, 28 Apr 2018 12:51:44 +0200 run-tests: add support for external test result
Boris Feld <boris.feld@octobus.net> [Sat, 28 Apr 2018 12:51:44 +0200] rev 38616
run-tests: add support for external test result The goal is to begin experiment with custom test result. I'm not sure we should offers any backward-compatibility guarantee on that plugin API as it doesn't change often and shouldn't have too much clients. Differential Revision: https://phab.mercurial-scm.org/D3700
Sun, 01 Jul 2018 23:36:53 +0900 encoding: alias cp65001 to utf-8 on Windows stable
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Jul 2018 23:36:53 +0900] rev 38615
encoding: alias cp65001 to utf-8 on Windows As far as I can tell, cp65001 is the Windows name for UTF-8. I don't know how different it is from the UTF-8, but Python 3 appears to have introduced new codec for cp65001, so the alias is enabled only for Python 2. https://bugs.python.org/issue13216 This patch is untested, but hopefully fixes the following issue. https://bitbucket.org/tortoisehg/thg/issues/5127/
Thu, 15 Mar 2018 17:37:03 +0530 remotenames: synchronise remotenames after push also
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 15 Mar 2018 17:37:03 +0530] rev 38614
remotenames: synchronise remotenames after push also Earlier we use to pull remotenames information from the server in case of pull and clone only. This patch adds logic to push also command to pull remotenames information. This will help us in keeping the remotenames more upto date where there are a lot people changing state of branches and bookmarks at the server. Differential Revision: https://phab.mercurial-scm.org/D2874
Sun, 10 Jun 2018 20:45:13 +0900 fileset: pass in badfn to inner matchers
Yuya Nishihara <yuya@tcha.org> [Sun, 10 Jun 2018 20:45:13 +0900] rev 38613
fileset: pass in badfn to inner matchers Just for sanity. No idea if this will make a difference, but it should propagate the badfn because the matcher created by mctx.matcher() will be returned by fileset.match() in future patches.
Sat, 09 Jun 2018 20:53:12 +0900 fileset: restrict getfileset() to not return a computed set (API)
Yuya Nishihara <yuya@tcha.org> [Sat, 09 Jun 2018 20:53:12 +0900] rev 38612
fileset: restrict getfileset() to not return a computed set (API) And rename the functions accordingly. fileset.match() will be changed to not compute the initial subset. test-glog*.t get back to the state before 9f9ffe5f687c "match: compose 'set:' pattern as matcher."
Sat, 09 Jun 2018 22:04:07 +0900 match: add prefixdirmatcher to adapt subrepo matcher back
Yuya Nishihara <yuya@tcha.org> [Sat, 09 Jun 2018 22:04:07 +0900] rev 38611
match: add prefixdirmatcher to adapt subrepo matcher back This serves as an inverse function to the subdirmatcher, and will be used to wrap a fileset matcher of subrepositories. One of the root/prefix paths could be deduced from the matcher attributes to be wrapped, but we don't since the callers of this class know the root/prefix paths and can simply pass them in.
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -24 +24 +50 +100 +300 +1000 +3000 +10000 tip