Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 24 Feb 2019 19:56:34 +0100] rev 41802
runtest: extract the logic that update timeout for slow tests
We want to use the "slow" test logic not only for "#require" clauses but also in
"#if" clauses. For this to be useful we need the logic to bump the timeout in at
least two spots. The first step it to factor it out.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 24 Feb 2019 19:56:40 +0100] rev 41801
tests: increase timeout for slow test
Test case `test-sparse-revlog.t` need some artifact (a bundle) build before it
can run. The artifact is expensive to build, but can be reused from one run to
the other. We are about to update that test to make the artifact building
automatic if `--allow-slow-tests` is passed. However, we need a bump the
timeout a bit to make sure the artifact building as time to finish.
We could maybe teach run-tests.py how to directly handle such artifacts.
However since there is only one of them for now, this seems premature.
There are also some room to speed up the bundle creation for
test-sparse-revlog.t
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 25 Feb 2019 18:51:08 -0800] rev 41800
merge with stable
Boris Feld <boris.feld@octobus.net> [Wed, 02 Jan 2019 03:07:52 +0100] rev 41799
rewriting: add an option for rewrite commands to use the archived phase
Using the archived phase for cleanup provide the same effect than stripping,
but in a faster, append-only way.
We keep the feature experimental for now until it gets a bit more testing.
Boris Feld <boris.feld@octobus.net> [Tue, 16 Oct 2018 15:48:00 +0200] rev 41798
strip: introduce a soft strip option
This is the first user-accessible way to use the archived phase introduced in
4.8. This implements a feature discussed during the Stockholm sprint, using
the archived phase for hiding changesets.
The archived phase behaves exactly as stripping: changesets are no longer
visible, but pulling/unbundling them will make then reappear. The only notable
difference is that unlike hard stripping, soft stripping does not affect
obsmarkers.
The next changeset will make use of the archived phase for history rewriting
command. However, having a way to manually trigger the feature first seems a
necessary step before exposing users to this phase; there is a way to
un-archived changesets (unbundling), so there must be a way to archive them
again.
Adding a flag to strip is a good way to provide access to the feature without
taking a too big risk on the final UI we want. The flag is experimental so it
won't be exposed by default.
Using the archived phase is faster and less traumatic for the repository than
actually stripping changesets.
Pulkit Goyal <pulkit@yandex-team.ru> [Mon, 25 Feb 2019 16:49:01 +0300] rev 41797
branchcache: move loading of branch names and nodes into it's own function
This will help me in implementing lazy loading of the branchcache in upcoming
patches.
Differential Revision: https://phab.mercurial-scm.org/D6023
Manuel Jacob <me@manueljacob.de> [Sat, 23 Feb 2019 21:13:27 +0100] rev 41796
rebase: add missing dashes in help text
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 24 Feb 2019 19:56:46 +0100] rev 41795
test: stabilize bundle generation for test-sparse-revlog.t
To reduce the instability in the bundle binary content, we force it to contains
delta against p1 in all cases.
In the previous changeset, we already stabilized the processing of the bundle.
So we don't see any output change in the test itself.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 24 Feb 2019 19:56:51 +0100] rev 41794
test: don't trust delta bases from the bundle in test-sparse-revlog.t
The point of the test is to check the strategy sparse-revlog uses to pick delta
base. If we trust the bases used in the bundle, we no longer fully test this
logic.
In order to force this computation we have to use the side effect of a legacy
format configuration `format.generaldelta`. The lack of a more official way to
do so will be fixed in a later changeset.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 24 Feb 2019 19:56:57 +0100] rev 41793
test: update test-sparse-revlog.t output
This test is skipped unless a large artefact is pre-build. It seems like nobody
ran it in a while. Changeset
3764330f76a6 changed the expected output but
nobody noticed.
This changeset focus on the first and simpler step: putting the expected output
back to what one would get by running this test.
However this test changes highlight a couple of deeper issues:
1) Even if the revision content did not changed, a change in the delta
contained in the bundle affected the delta stored in the final revlog, changing
the test result. Since we are testing the delta computation strategy with
sparse, we should not blindly reuse the delta-base from the bundled delta.
2) A change in the format of the repository used to generate the bundle changed
the delta stored in the bundle. We should get a more stable output to avoid
future instabilities of this test.
3) The test is it not run by CI or developer.
We'll try to address all this issues in the coming changesets.
mitchell plamann <mplamann@janestreet.com> [Wed, 20 Feb 2019 15:02:59 -0500] rev 41792
bundle2: don't send "shared" requirement when cloning from a share
Differential Revision: https://phab.mercurial-scm.org/D5985
mitchell plamann <mplamann@janestreet.com> [Wed, 20 Feb 2019 14:57:00 -0500] rev 41791
tests: demonstrate failure when cloning from a share via bundle2
Differential Revision: https://phab.mercurial-scm.org/D5984
Navaneeth Suresh <navaneeths1998@gmail.com> [Fri, 22 Feb 2019 00:54:06 +0530] rev 41790
mq: disable qrecord during histedit (
issue5981)
qrecord during histedit may lead to deadlock-like situations. qpop will throw
an error on called during histedit even after qrecord-ing those changes. This
patch makes qrecord to abort on histedit.
Differential Revision: https://phab.mercurial-scm.org/D5997
Martin von Zweigbergk <martinvonz@google.com> [Wed, 20 Feb 2019 21:57:39 -0800] rev 41789
committablectx: move status-related methods closer together
The modified()/added()/removed()/deleted() clearly belong very close
to status(). I separated them in committablectx by the new
p[12]copies() methods. This brings the close again. Sorry about the
churn.
Differential Revision: https://phab.mercurial-scm.org/D5996
Augie Fackler <augie@google.com> [Thu, 21 Feb 2019 23:07:54 -0500] rev 41788
tests: add test for hg-test-mode emacs code
This is just coverage for the compilation-mode support, but that was
enough of a hassle that I wanted to have it covered somehow. Test
methodology is _extremely_ cargo-culted from the test for
compilation-mode in emacs, so I still have no idea what I'm doing.
Differential Revision: https://phab.mercurial-scm.org/D6003
Augie Fackler <augie@google.com> [Thu, 21 Feb 2019 23:06:18 -0500] rev 41787
hghave: add check for GNU emacs
Differential Revision: https://phab.mercurial-scm.org/D6002
Augie Fackler <augie@google.com> [Thu, 21 Feb 2019 20:12:39 -0500] rev 41786
contrib: also linkify tracebacks in compilation output when using hg-test-mode
Differential Revision: https://phab.mercurial-scm.org/D6001
Augie Fackler <augie@google.com> [Thu, 21 Feb 2019 19:59:00 -0500] rev 41785
contrib: add compilation-mode linking for our test output
These regular expressions will cause compilation-mode buffers in emacs
to link to source when there are check-code errors in the output of a
.t test.
In the true tradition of this file, I also have no idea what I'm doing.
Differential Revision: https://phab.mercurial-scm.org/D6000
Pulkit Goyal <pulkit@yandex-team.ru> [Fri, 22 Feb 2019 03:52:10 +0530] rev 41784
diff: make sure we output stat even when --git is not passed (
issue4037) (BC)
Before this patch, `hg diff --stat` will give an empty output. It will not show
the stat information. I debugged and found that the underlying code does not
return the diff header and due to that, other code paths fails to parse that as
a diff.
I looked into why we don't return diff headers in quiet mode and found the
behavior is from
8f8bb77d560e70bcc95577e4dfa877df18d876ab which does not have
any mention about why it is done. We also show the diff headers in git, so I
think it's fine showing diff header in normal diff in quiet mode.
Differential Revision: https://phab.mercurial-scm.org/D6007
Pulkit Goyal <pulkit@yandex-team.ru> [Sat, 23 Feb 2019 04:50:46 +0530] rev 41783
tests: add test to demonstrate
issue4037
`hg diff --stat -q --config diff.git=0` does not output anything whereas it
should print the stat. This is a quiet old bug dating to 2013 and looking at
code I think it exists it since 2005 or when --stat was introduced. The next
patch will fix the bug.
Differential Revision: https://phab.mercurial-scm.org/D6006
Martin von Zweigbergk <martinvonz@google.com> [Fri, 18 Jan 2019 11:07:46 -0800] rev 41782
grep: reuse getrenamedfn() from scmutil
My motivation is to reduce uses of filectx.renamed(). Reusing
scmutil.getrenamedfn() also means that we get some caching of copy
information per file and revision. I don't think that matters for `hg
grep` (I doubt it speeds up significantly, and I doubt it wastes
significant memory), but I'm not sure.
Differential Revision: https://phab.mercurial-scm.org/D6022
Martin von Zweigbergk <martinvonz@google.com> [Thu, 21 Feb 2019 10:54:29 -0800] rev 41781
templatekw: move getrenamedfn() to scmutil (API)
The function is already used by `hg log` (for following renames, not
for templates), so it seems it does not belong in templatekw.
Differential Revision: https://phab.mercurial-scm.org/D6021
Martin von Zweigbergk <martinvonz@google.com> [Sat, 23 Feb 2019 09:32:07 -0800] rev 41780
mq: get copy source from context object instead of from filelog
This removes dependence on filelog.renamed().
Differential Revision: https://phab.mercurial-scm.org/D6020
Martin von Zweigbergk <martinvonz@google.com> [Sat, 23 Feb 2019 09:30:49 -0800] rev 41779
mq: slightly modernize by using context object
Context objects have existed since mid-2006.
Differential Revision: https://phab.mercurial-scm.org/D6019