Sushil khanchi <sushilkhanchi97@gmail.com> [Tue, 16 Apr 2019 01:19:58 +0530] rev 42201
branch: add tests which shows branch can be closed from a non-branchhead cset
This patch shows that we can close a branch even from a cset which is not
a branch head. It was supposed to abort this operation.
Next patch will be fixing the issue.
Differential Revision: https://phab.mercurial-scm.org/D6281
Ian Moody <moz-ian@perix.co.uk> [Sat, 20 Apr 2019 17:27:24 +0100] rev 42200
phabricator: read more metadata from local:commits
local:commits metadata can contain branch info, and 'rev' has been superseded
by 'commit', see:
https://github.com/phacility/arcanist/blob/
83661809e532c3fe444a8bf7c7d6936e6377691b/src/repository/api/ArcanistMercurialAPI.php#L281
Differential Revision: https://phab.mercurial-scm.org/D6300
Ian Moody <moz-ian@perix.co.uk> [Sat, 20 Apr 2019 17:22:35 +0100] rev 42199
phabricator: don't assume the existence of properties of local:commits
Not all the properties are guaranteed to be there, so if we don't check first
we could die with a KeyError.
Differential Revision: https://phab.mercurial-scm.org/D6299
Ian Moody <moz-ian@perix.co.uk> [Sat, 20 Apr 2019 16:01:47 +0100] rev 42198
phabricator: include branch in the diffproperty metadata
This does not make Phabricator display the branch in web UI anywhere as that
still need us to use creatediff API for that. However a future patch will make
phabread use this to include the branch in its `hg import`-able output.
Differential Revision: https://phab.mercurial-scm.org/D6297
Martin von Zweigbergk <martinvonz@google.com> [Wed, 24 Apr 2019 10:47:40 -0700] rev 42197
tests: demonstrate `hg log -r . <file>` linkrev bug
Differential Revision: https://phab.mercurial-scm.org/D6309
Joerg Sonnenberger <joerg@bec.de> [Fri, 19 Apr 2019 20:06:37 +0200] rev 42196
unionrepo: sync with repository API
Differential Revision: https://phab.mercurial-scm.org/D6289
Martin von Zweigbergk <martinvonz@google.com> [Tue, 23 Apr 2019 08:39:26 -0700] rev 42195
match: remove unused match.__iter__ implementation (API)
Differential Revision: https://phab.mercurial-scm.org/D6305
Danny Hooper <hooper@google.com> [Thu, 21 Mar 2019 18:32:45 -0700] rev 42194
fix: allow fixer tools to return metadata in addition to the file content
With this change, fixer tools can be configured to output a JSON object that
will be parsed and passed to hooks that can be used to print summaries of what
code was formatted or perform other post-fixing work.
The motivation for this change is to allow parallel executions of a
"meta-formatter" tool to report back statistics, which are then aggregated and
processed after all formatting has completed. Providing an extensible mechanism
inside fix.py is far simpler, and more portable, than trying to make a tool
like this communicate through some other channel.
Differential Revision: https://phab.mercurial-scm.org/D6167
Pulkit Goyal <pulkit@yandex-team.ru> [Wed, 24 Apr 2019 19:42:43 +0300] rev 42193
context: check file exists before getting data from _wrappedctx
overlayworkingctx class is used to do in-memory merging. The data() function of
that class has logic to look for data() in the wrappedctx if the file data in
cache is empty and if the file is dirty. This assumes that if a file is dirty
and cache has empty data for it, it will exists in the _wrappedctx.
However this assumption can be False in case when we are merging a file which is
empty in destination. In these cases, the backup file 'foo.orig' created by our
internal merge algorithms will be empty, however it won't be present in
_wrappedctx. This case will lead us to error like the one this patch is fixing.
Let's only fallback to getting data from wrappedctx if cache has 'None' as data.
Differential Revision: https://phab.mercurial-scm.org/D6308
Pulkit Goyal <pulkit@yandex-team.ru> [Wed, 24 Apr 2019 19:28:46 +0300] rev 42192
tests: show IMM is broken when merging file empty in destination
When we are doing in-memory merging, and we are merging a file which is empty in
merge destination, it leads to error 'abort: xxx not found in manifest'.
Next patch will fix this error.
Differential Revision: https://phab.mercurial-scm.org/D6307
Antonio Muci <a.mux@inwind.it> [Fri, 19 Apr 2019 02:24:25 +0200] rev 42191
buildrpm: bump bundled Python version to 2.7.16 when building for centos{5,6}
When building rpm packages for centos 5 and 6, we bundle a mercurial-specific
version of Python 2.7 in /opt/python-hg.
This change is analogous to
5e947367606c, and bumps the embedded Python version
from 2.7.14 (released in 2017) to 2.7.16 (latest as of today).
Augie Fackler <augie@google.com> [Tue, 23 Apr 2019 15:49:17 -0400] rev 42190
merge with stable
Ian Moody <moz-ian@perix.co.uk> [Mon, 22 Apr 2019 17:46:57 +0100] rev 42189
phabricator: set local:commits time metadata as an int, not a string
Same as arcanist does
Differential Revision: https://phab.mercurial-scm.org/D6296
Ian Moody <moz-ian@perix.co.uk> [Mon, 22 Apr 2019 17:46:01 +0100] rev 42188
phabricator: use templatefilters.json in writediffproperties
Instead of json.dumps, since it makes the code simpler and more readable.
This would have been the better option for
8fd19a7b4ed6 but I wasn't aware of
it at the time.
Differential Revision: https://phab.mercurial-scm.org/D6295
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 21 Apr 2019 09:34:16 -0700] rev 42187
commands: use byteskwargs() in verify()
Otherwise Python 3 complains about the missing key.
Differential Revision: https://phab.mercurial-scm.org/D6294
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 21 Apr 2019 09:29:55 -0700] rev 42186
match: use raw strings to avoid illegal baskslash escape
Python 3.8 was complaining about the invalid escape
sequences. Let's use raw strings to avoid the warning and
double baskslashes.
Differential Revision: https://phab.mercurial-scm.org/D6293
Pulkit Goyal <pulkit@yandex-team.ru> [Sat, 20 Apr 2019 00:48:16 +0300] rev 42185
revbranchcache: use context manager in _writerevs() to write to file
The other _writenames() is a bit complicated to use context manager.
Differential Revision: https://phab.mercurial-scm.org/D6292
Pulkit Goyal <pulkit@yandex-team.ru> [Sat, 20 Apr 2019 00:44:18 +0300] rev 42184
revbranchcache: factor logic to write names and revs in separate functions
Before this patch, the write function was so populated with upto 4 level of
indentation, it was hard to understand what's going on.
Differential Revision: https://phab.mercurial-scm.org/D6291
Martin von Zweigbergk <martinvonz@google.com> [Thu, 18 Apr 2019 22:16:33 -0700] rev 42183
tests: make log style a little easier to read in test-copytrace-heuristics.t
Revision numbers are much shorter and easier to read (especially
compared to the full nodeids that were used here), so I switched to
that. That's also what almost all the commands used (e.g. `hg rebase
-s . -d 1`). I updated the two instances that used nodeids. I also
made some other little cleanups to the log templates.
Differential Revision: https://phab.mercurial-scm.org/D6279
Martin von Zweigbergk <martinvonz@google.com> [Thu, 18 Apr 2019 22:23:26 -0700] rev 42182
tests: avoid cryptic nodeids in tests/test-rename-merge1.t
These two nodeids had not been part of any output before, so one can't
know which revision they refer to without adding something like `hg
log` before them. It turned out that '.^' was equivalent for both of
them, so that's what I replaced them with.
Differential Revision: https://phab.mercurial-scm.org/D6280
Martin von Zweigbergk <martinvonz@google.com> [Thu, 18 Apr 2019 22:08:58 -0700] rev 42181
tests: defines aliases for `hg log` calls in test-copytrace-heuristics.t
This also makes the test cases more consistent since a few had missed
the ":" in "changeset:" that the others used.
Differential Revision: https://phab.mercurial-scm.org/D6278
Georges Racinet <georges.racinet@octobus.net> [Thu, 14 Mar 2019 17:57:31 +0000] rev 42180
rust-discovery: implementing and exposing stats()
This time, it's simple enough that we can do it in all layers in
one shot.
Differential Revision: https://phab.mercurial-scm.org/D6233
Georges Racinet <georges.racinet@octobus.net> [Wed, 20 Feb 2019 09:04:39 +0100] rev 42179
rust-discovery: cpython bindings for the core logic
As previously done with the ancestors submodule, testing for
the bindings is provided from Python on a trivial case.
Differential Revision: https://phab.mercurial-scm.org/D6232
Georges Racinet <georges.racinet@octobus.net> [Tue, 19 Feb 2019 23:42:31 +0100] rev 42178
rust-discovery: starting core implementation
Once exposed to the Python side, this core object will avoid
costly roundtrips with potentially big sets of revisions.
This changeset implements the core logic of the object only, i.e.,
manipulation of the missing, common and undefined set-like revision
attributes.
Differential Revision: https://phab.mercurial-scm.org/D6231
Georges Racinet <georges.racinet@octobus.net> [Wed, 20 Feb 2019 18:33:53 +0100] rev 42177
rust-dagops: roots
Unsuprisingly, the algorithm is much easier than for heads, provided
we work on a set in the first place.
To improve the signature, a trait for set-likes object would be useful,
but that's not an immediate concern.
Differential Revision: https://phab.mercurial-scm.org/D6230
Georges Racinet <georges.racinet@octobus.net> [Tue, 19 Feb 2019 23:41:57 +0100] rev 42176
rust-dagops: range of revisions
This is a Rust implementation for what reachableroots2() does if
includepath is True.
The algorithmic details and performance notes are included in the
documentation comment.
Our main use case for now is a Rust counterpart of the partialdiscovery
object, so we don't really need bindings yet.
Differential Revision: https://phab.mercurial-scm.org/D6229
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 21 Apr 2019 08:57:01 -0700] rev 42175
setup: tweak error message for Python 3
We now have beta support for Python 3. In my opinion, it isn't
yet stable enough to allow `pip install Mercurial` to work with
Python 3 out of the box: we don't want people accidentally using
Mercurial with Python 3 just yet.
But I do think we should be more friendly about informing people
of their options.
This commit tweaks the error message that users see when running
setup.py with Python 3. We instruct them about the current level
of Python 3 support, point them at the wiki for more info, and
give them instructions on how to bypass the check.
As part of this, I also changed which version value is printed,
as we were printing a named tuple before.
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 21 Apr 2019 07:21:08 -0700] rev 42174
setup: remove set and dict comprehensions
Yuya observed in a recent review that it is worthwhile to keep
setup.py parseable with Python 2.6 so a useful error message is
seen when attempting to run with Python 2.6.
This commit removes a set and dict comprehension so setup.py
is parseable with Python 2.6.
Pulkit Goyal <pulkit@yandex-team.ru> [Fri, 19 Apr 2019 23:13:28 +0300] rev 42173
branchcache: don't verify all nodes while writing
nodes are verified either when they are added or used. In case of commits. we
will load the whole branchmap, only verify nodes for the branch on which we are
committing and then we write.
However before this patch, writing the branchmap was validating all the nodes
whereas it should not. This patch fixes that.
Differential Revision: https://phab.mercurial-scm.org/D6290
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 20 Apr 2019 07:29:07 -0700] rev 42172
setup: properly package distutils in py2exe virtualenv builds
Our in-repo py2exe packaging code uses virtualenvs for managing
dependencies. An advantage of this is that packaging is more
deterministic and reproducible. Without virtualenvs, we need to
install packages in the system Python install. Packages installed
by other consumers of the system Python could leak into the Mercurial
package.
A regression from this change was that py2exe packages contained
the virtualenv's hacked distutils modules instead of the original
distutils modules. (virtualenv installs a hacked distutils module
because distutils uses relative path lookups that fail when running
from a virtualenv.)
This commit introduces a workaround so py2exe packaging uses the
original distutils modules when running from a virtualenv.
With this change, `import distutils` no longer fails from py2exe
builds produced from a virtualenv. This fixes the regression.
Furthermore, we now include all distutils modules. Before, py2exe's
module finding would only find modules there were explicitly
referenced in code. So, we now package a complete copy of distutils
instead of a partial one. This is even better than before.
# no-check-commit foo_bar function name