Martijn Pieters <mj@zopatista.com> [Tue, 31 Jul 2018 19:37:48 +0200] rev 38820
debug: allow specifying a manifest node rather than a revision
Martin von Zweigbergk <martinvonz@google.com> [Fri, 20 Jul 2018 11:37:31 -0700] rev 38819
perfmoonwalk: make work with filtered repo
This also fixes the out-of-range "len(repo)" that weirdly works (and
gets the nullid). I suspect it wasn't intentional to include the
timing of reading the null revision.
Differential Revision: https://phab.mercurial-scm.org/D4017
Martin von Zweigbergk <martinvonz@google.com> [Fri, 20 Jul 2018 11:17:33 -0700] rev 38818
revlog: don't include trailing nullrev in revlog.revs(stop=len(revlog))
This was an odd side effect of the nullid entry that's in the
index. The existing callers (mostly repair.py) seem to have handled it
fine. It doesn't seem intentional, and it's pretty surprising, so
let's remove that surprise.
Differential Revision: https://phab.mercurial-scm.org/D4015
Augie Fackler <augie@google.com> [Mon, 16 Jul 2018 14:15:29 -0400] rev 38817
patchbomb: ensure all headers and values given to email mod are native strings
This lets test-patch-bookmark.t only fail with some harmless header
output changes on Python 3, so I think patchbomb might be basically
useful on Python 3 now.
Differential Revision: https://phab.mercurial-scm.org/D3952
Martin von Zweigbergk <martinvonz@google.com> [Mon, 30 Jul 2018 14:37:36 -0700] rev 38816
context: delete an obsolete comment
Obsolete since 91618801d5c3 (context: raise ProgrammingError on
repo['my-tag'], 2018-07-06).
Differential Revision: https://phab.mercurial-scm.org/D4002
Martin von Zweigbergk <martinvonz@google.com> [Fri, 27 Jul 2018 14:48:58 -0700] rev 38815
templatekw: use ctx1.status(ctx2) instead of repo.status(ctx1, ctx2)
Differential Revision: https://phab.mercurial-scm.org/D4001
Martin von Zweigbergk <martinvonz@google.com> [Fri, 27 Jul 2018 14:48:34 -0700] rev 38814
patch: use ctx1.status(ctx2) instead of repo.status(ctx1, ctx2)
Differential Revision: https://phab.mercurial-scm.org/D4000
Martin von Zweigbergk <martinvonz@google.com> [Fri, 27 Jul 2018 14:48:06 -0700] rev 38813
fileset: use ctx1.status(ctx2) instead of repo.status(ctx1, ctx2)
Differential Revision: https://phab.mercurial-scm.org/D3999
Martin von Zweigbergk <martinvonz@google.com> [Fri, 27 Jul 2018 14:47:38 -0700] rev 38812
uncommit: use ctx1.status(ctx2) instead of repo.status(ctx1, ctx2)
Differential Revision: https://phab.mercurial-scm.org/D3998
Martin von Zweigbergk <martinvonz@google.com> [Fri, 27 Jul 2018 14:46:59 -0700] rev 38811
fix: use ctx1.status(ctx2) instead of repo.status(ctx1, ctx2)
Differential Revision: https://phab.mercurial-scm.org/D3997
Martin von Zweigbergk <martinvonz@google.com> [Fri, 27 Jul 2018 14:49:45 -0700] rev 38810
amend: use ctx1.status(ctx2) instead of repo.status(ctx1, ctx2)
Differential Revision: https://phab.mercurial-scm.org/D3996
Rodrigo Damazio Bovendorp <rdamazio@google.com> [Thu, 19 Jul 2018 23:22:05 -0700] rev 38809
dispatch: making all hg abortions be output with a specific label
This allows abortions to be highlighted specially and separately
from warnings - for instance, red is a reasonable color for when hg
aborts, but is overly dramatic for most warnings produced elsewhere.
Differential Revision: https://phab.mercurial-scm.org/D3967
Augie Fackler <augie@google.com> [Thu, 19 Jul 2018 15:21:28 -0400] rev 38808
ui: fix implicit unicode-to-bytes conversion introduced in 9df29b7c62cf
This is harmless, unless you try and run hg with HGUNICODEPEDANTRY
enabled. It's technically wrong, so let's go ahead and fix it.
Differential Revision: https://phab.mercurial-scm.org/D3989
Augie Fackler <augie@google.com> [Wed, 01 Aug 2018 10:23:57 -0400] rev 38807
merge with stable
Matt Harbison <matt_harbison@yahoo.com> [Wed, 10 Oct 2018 12:25:28 -0400] rev 38806
lfs: avoid a potential variable reference before assignment error in cmdserver
A coworker hit this once yesterday when pulling in thg (a retry worked), and
then I hit it with strip after a pull. I had a difficult time recreating a test
for this (at least one of the tricks was to not use '-R', which seems to cause
reposetup() to be called for each command), so I'm not sure how large of a
window there actually is for this. Calling reposetup() *after* the requirement
is added will skip the hook entirely.
The other issue I had was adding a couple `ui.status()` lines around the check
that installs the hook. On Windows, the cmdserver process ballooned to 1.6GB
and hung. Changing that to `ui.warn()` avoided the hang. It also hung on
macOS, but without the large memory usage.
Augie Fackler <raf@durin42.com> [Mon, 01 Oct 2018 16:07:38 -0400] rev 38805
Added signature for changeset 5405cb1a7901
Augie Fackler <raf@durin42.com> [Mon, 01 Oct 2018 16:07:36 -0400] rev 38804
Added tag 4.7.2 for changeset 5405cb1a7901
Yuya Nishihara <yuya@tcha.org> [Wed, 05 Sep 2018 21:23:29 +0900] rev 38803
manifest: fix out-of-bounds read of corrupted manifest entry
Spotted by ASAN.
Yuya Nishihara <yuya@tcha.org> [Wed, 05 Sep 2018 21:32:45 +0900] rev 38802
manifest: rewrite pathlen() to not cross entry boundary
Even though the entire manifest data should be terminated by '\0', it seems
not nice to scan '\0' over the entry terminator, '\n'.
Yuya Nishihara <yuya@tcha.org> [Wed, 26 Sep 2018 21:24:14 +0900] rev 38801
chgserver: do not send system() back to client if stdio redirected (issue5992)
As the chg client doesn't know server-side stdio redirection, the server
shouldn't upcall on "runsystem" request if the stdio streams are redirected.
This patch teaches ui to remember the redirection flag, which is updated by
the caller right now. Future patches (for default) will add ui methods to
manage this flag internally.
Yuya Nishihara <yuya@tcha.org> [Wed, 26 Sep 2018 21:21:05 +0900] rev 38800
chgserver: update comment describing when to fall back to core _runsystem()
The condition "output needs to be captured" was moved to the core ui, and
removed at fbce78c58f1e "chg: refactor ui.system() to be partly overridden."
The next patch will add one more "if" to address the issue 5992.
Yuya Nishihara <yuya@tcha.org> [Wed, 26 Sep 2018 20:53:59 +0900] rev 38799
procutil: compare fd number to see if stdio protection is needed (issue5992)
When I wrote this function for commandserver at 69f86b937035, testing object
identity was suffice, and I was sloppy enough not to compare fileno() values.
However, it doesn't work in chg session because chgserver reopens stdio to
apply new buffering mode.
This patch partially fixes the issue 5992. Still we have another problem in
chgui._runsystem().
Yuya Nishihara <yuya@tcha.org> [Tue, 25 Sep 2018 23:06:02 +0900] rev 38798
test-ssh: show that stdio redirection doesn't work with chg
Running tests with --chg doesn't mean all hg invocations are replaced by
chg. This patch explicitly adds the test for "chg serve --stdio", which does
weird stdio dance.
Valentin Gatien-Baron <vgatien-baron@janestreet.com> [Tue, 25 Sep 2018 16:32:38 -0400] rev 38797
revset: make heads(commonancestors(x + x^)) be x^, not x
Differential Revision: https://phab.mercurial-scm.org/D4742
Valentin Gatien-Baron <vgatien-baron@janestreet.com> [Tue, 25 Sep 2018 16:29:39 -0400] rev 38796
revset: add tests of heads(commonancestors(..))
The second-to-last one shows the same bug as commonancestors(..): the
result should be 8, not 9.
Differential Revision: https://phab.mercurial-scm.org/D4741
Valentin Gatien-Baron <vgatien-baron@janestreet.com> [Tue, 25 Sep 2018 16:18:43 -0400] rev 38795
revset: reword commonancestor()'s help
The new version seems a bit more consistent with other doc comments,
and feels clearer to me (doesn't explain "commonancestors(set)" as
"common ancestors of set").
Differential Revision: https://phab.mercurial-scm.org/D4740
Valentin Gatien-Baron <vgatien-baron@janestreet.com> [Tue, 25 Sep 2018 16:14:57 -0400] rev 38794
revset: remove part of the commonancestors() comment
The reason is that:
- it shows up in "hg help revset", but it doesn't look like
documentation targeted at users
- it doesn't make sense to me: it doesn't say what happens with < 2
revisions, and is not quite right because my understanding is that
this revset was created precisely because "::x and ::y" was not
quite the same (when x and y don't evaluate to singletons).
Differential Revision: https://phab.mercurial-scm.org/D4739
Valentin Gatien-Baron <vgatien-baron@janestreet.com> [Tue, 25 Sep 2018 16:05:21 -0400] rev 38793
revset: make commonancestors(x + x^) be ::(x^), not ::x
Differential Revision: https://phab.mercurial-scm.org/D4738
Valentin Gatien-Baron <vgatien-baron@janestreet.com> [Tue, 25 Sep 2018 15:27:41 -0400] rev 38792
revset: add test demonstrating a bug with commonancestor()
Specifically, 9 is clearly not in "::8 and ::9".
Differential Revision: https://phab.mercurial-scm.org/D4737
Valentin Gatien-Baron <vgatien-baron@janestreet.com> [Tue, 25 Sep 2018 16:03:14 -0400] rev 38791
revset: fix commonancestor test so it demonstrates correct behavior
The problem is that hg log -r 'head()' is every changeset in the
repository, because in this test repository, every changeset has a
different branch. The author probably assumed all commits were on the
default branch, and that they were getting topological heads, 7 and 9.
As a result, this test was showing that the common ancestors of
0:9 are 0+1+2+4, which is not correct (next commit will test this).
Differential Revision: https://phab.mercurial-scm.org/D4736