Boris Feld <boris.feld@octobus.net> [Tue, 10 Jul 2018 10:18:46 +0200] rev 38639
revlog: add a doctest for _segmentspan
Boris Feld <boris.feld@octobus.net> [Tue, 10 Jul 2018 10:04:44 +0200] rev 38638
revlog: add a doctest to _trimchunk
Boris Feld <boris.feld@octobus.net> [Tue, 10 Jul 2018 10:04:31 +0200] rev 38637
revlog: introduce a tiny mock of a revlog class
This will be used in various function doctest added in the next changesets.
The class seems small enough to live in the module directly.
Paul Morelle <paul.morelle@octobus.net> [Thu, 17 May 2018 15:10:36 +0200] rev 38636
revlog: _segmentspan computes the byte span of a segment
Refactor out this code to be used somewhere else in a next changeset
Boris Feld <boris.feld@octobus.net> [Tue, 10 Jul 2018 15:17:05 -0700] rev 38635
revlog: early return in _slicechunk when span is already small enough
If the full span is smaller than the minimum gap size we'll consider, we know we
won't do any slicing and we can return earlier.
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.
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.
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).
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
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.
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.
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.
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.
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.
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)
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.
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.
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
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
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
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
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
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
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
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/
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
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.
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."
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.
Yuya Nishihara <yuya@tcha.org> [Sat, 09 Jun 2018 18:58:16 +0900] rev 38610
fileset: make debugfileset filter repository files
This prepares for the structural change of the fileset. A computed fileset
will no longer be a set of files, but a boolean function (i.e. matcher) to
test if an input file matches the given fileset expression.
--all-files option is added because some examples in the test need to scan
files across revisions.
Yuya Nishihara <yuya@tcha.org> [Sun, 08 Jul 2018 19:24:18 +0900] rev 38609
bundle2: use ProgrammingError to report bad use of addparam()
This allows us to embed error message in bytes.
Yuya Nishihara <yuya@tcha.org> [Sun, 08 Jul 2018 19:34:11 +0900] rev 38608
py3: byte-stringify literals in extension in test-bundle2-format.t
# skip-blame just some b''