Durham Goode <durham@fb.com> [Wed, 20 Sep 2017 09:39:03 -0700] rev 34300
bundlerepo: update to use new deltaiter api
Differential Revision: https://phab.mercurial-scm.org/D745
Durham Goode <durham@fb.com> [Wed, 20 Sep 2017 09:28:30 -0700] rev 34299
debug: update debugbundle to use new deltaiter api
Changegroup now has a deltaiter api for easy iteration over a series of deltas.
Let's use that in the debugbundle command.
Differential Revision: https://phab.mercurial-scm.org/D744
Durham Goode <durham@fb.com> [Wed, 20 Sep 2017 09:22:22 -0700] rev 34298
revlog: add revmap back to revlog.addgroup
The recent c8b6ed51386b patch removed the linkmapper argument from addgroup, as
part of trying to make addgroup more agnostic from the changegroup format. It
turns out that the changegroup can't resolve linkrevs while iterating over the
deltas, because applying the deltas might affect the linkrev resolution. For
example, when applying a series of changelog entries, the linkmapper just
returns len(cl). If we're iterating over the deltas without applying them to the
changelog, this results in incorrect linkrevs. This was caught by the hgsql
extension, which reads the revisions before applying them.
The fix is to return linknodes as part of the delta iterator, and let the
consumer choose what to do.
Differential Revision: https://phab.mercurial-scm.org/D730
Martin von Zweigbergk <martinvonz@google.com> [Tue, 19 Sep 2017 22:06:26 -0700] rev 34297
rebase: also include other namespaces in changeset description
This makes use of the generic method of listing bookmarks and tags, so
other extensions that add other namespaces will get their names added
too.
This does mean that bookmarks will come before tags, just like we
apparently decided to order them in the "hg log" output. It doesn't
seem like people would be parsing the rebase output anyway. We also
did 79ab5369d55a (rebase: use _ctxdesc in one more place, 2017-08-29)
recently, so now seems like a good time.
Differential Revision: https://phab.mercurial-scm.org/D741
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 20 Sep 2017 07:46:55 +0530] rev 34296
tersestatus: sort the dictionary before iterating on it
There has report of flakiness in test-status-terse.t. In the terse code, we are
iterating on a dictionary without sorting and since python dicts are unordered,
that can be a reason behind the flakiness. Before we have a better
implementation for the terse thing, let's make sure current implementation
possess minimum bugs.
Differential Revision: https://phab.mercurial-scm.org/D740
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 03 Sep 2017 20:06:45 +0530] rev 34295
copytrace: use the full copytracing method if only drafts are involved
This patch adds the functionality to use the full copytracing even if
`experimental.copytrace = heuristics` in cases when drafts are involved.
This is also a part of copytrace extension in fbext.
This also adds tests which are also taken from fbext.
.. feature::
The `heuristics` option for `experimental.copytrace` performs full
copytracing if both source and destination branches contains non-public
changsets only.
Differential Revision: https://phab.mercurial-scm.org/D625
Martin von Zweigbergk <martinvonz@google.com> [Fri, 15 Sep 2017 10:43:22 -0700] rev 34294
templates: introduce a obsfateoperation() function
Differential Revision: https://phab.mercurial-scm.org/D723
Martin von Zweigbergk <martinvonz@google.com> [Fri, 15 Sep 2017 10:42:49 -0700] rev 34293
obsmarker: track operation by default
We added support for including the operation responsible for creating
the obsmarker in 3546a771e376 (obsolete: add operation metadata to
rebase/amend/histedit obsmarkers, 2017-05-09). However, soon
thereafter, in f432897a9f49 (obsmarker: add an experimental flag
controlling "operation" recording, 2017-05-20), it was hidden behind a
config that was off by default. It seems unlikely that people will
manually turn it on, and obsmarkers/evolution as a whole is still
experimental anyway, so let's turn on the tracking by default.
Differential Revision: https://phab.mercurial-scm.org/D722
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 20 Sep 2017 02:40:25 +0530] rev 34292
uncommit: add an experimental.uncommitondirtywdir config
There are people who wants to do `hg uncommit` on dirty working directory, so
this patch adds a config which can be used to the achieve that.
Adds tests for the same.
Differential Revision: https://phab.mercurial-scm.org/D735
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 20 Sep 2017 02:18:01 +0530] rev 34291
uncommit: don't allow bare uncommit on dirty working directory
As per IRC discussion and suggestion by Augie, we should not allow bare `hg
uncommit` on dirty working directory.
Differential Revision: https://phab.mercurial-scm.org/D734
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 16 Sep 2017 02:34:13 +0530] rev 34290
uncommit: rename the flag 'empty' to 'keep' which retains empty changeset
This patch renames the flag 'empty' which retains the empty changeset if all
the files are uncommitted to 'keep'.
Differential Revision: https://phab.mercurial-scm.org/D726
Augie Fackler <augie@google.com> [Mon, 18 Sep 2017 14:19:47 -0400] rev 34289
tests: avoid repr in test-bundle2-format.t
We don't *really* need it here, and it was making Python 3 harder.
Augie Fackler <augie@google.com> [Mon, 18 Sep 2017 14:04:05 -0400] rev 34288
tests: port test-bundle2-format inline helper script to Python 3
We're now very close to this test passing.
Augie Fackler <augie@google.com> [Tue, 19 Sep 2017 00:27:55 -0400] rev 34287
bundle2: portably grab first byte of part name for letter check
Augie Fackler <augie@google.com> [Mon, 18 Sep 2017 14:03:21 -0400] rev 34286
bundle2: make ValueError messages native strings
Augie Fackler <augie@google.com> [Mon, 18 Sep 2017 13:36:05 -0400] rev 34285
bundle2: update check for a generator to work on Python 3
Augie Fackler <augie@google.com> [Mon, 18 Sep 2017 13:35:43 -0400] rev 34284
bundle2: stop using %r to quote part names
Valid part names are restricted to [a-zA-Z0-9_:-]+, so I'm not worried
about having quoting present in places where we should have
predominantly valid part names. This will significantly ease the
Python 3 transition, and simultaneously isn't a BC because this is
only in error messages that should never be shown.
Jun Wu <quark@fb.com> [Mon, 18 Sep 2017 16:01:03 -0700] rev 34283
blackbox: set lastui even if ui.log is not called (issue5518)
`lastui` decides where (where is the `.hg`) to use if the current `ui`
object does not have a `_bbrepo` associated. Previously it only gets set in
`ui.log`, which means unless a `ui` with repo associated calls `log` with
tracked event, blackbox does not know where to write its log. This patch
makes `reposetup` set `lastui` so it so we could log some more events (see
test changes).
Differential Revision: https://phab.mercurial-scm.org/D655
Jun Wu <quark@fb.com> [Wed, 06 Sep 2017 21:23:38 -0700] rev 34282
blackbox: unindent a try block
The try block is no longer necessary.
Differential Revision: https://phab.mercurial-scm.org/D654
Jun Wu <quark@fb.com> [Mon, 18 Sep 2017 15:56:08 -0700] rev 34281
blackbox: simplify ui states
It seems cleaner to just remove `_partialinit`, `copy`, `__init__`. This
patch makes it so by using `getattr` in `log` so those fields do not need to
be existed.
Differential Revision: https://phab.mercurial-scm.org/D652
Jun Wu <quark@fb.com> [Fri, 01 Sep 2017 19:42:09 -0700] rev 34280
revset: move weight information to predicate
Previously revset weight is hardcoded and cannot be modified. This patch
moves it to predicate so newly registered revsets could define their weight
to properly give static optimization some hint.
Differential Revision: https://phab.mercurial-scm.org/D657
Jun Wu <quark@fb.com> [Fri, 01 Sep 2017 19:30:40 -0700] rev 34279
revset: remove "small" argument from "_optimize"
`_optimize` calculates weights of subtrees. "small" affects some weight
calculation (either 1 or 0.5). The weights are now only useful in `and`
optimization where we might swap two arguments and use `andsmally`.
In the real world, it seems unlikely that revsets with weight of 0.5 or 1
matters the `and` order optimization. I think the important thing is to get
weights of expensive revsets right (ex. `contains`).
This patch removes the `small` argument to simplify the interface.
As for choosing between 0.5 vs 1, things returning a single revision
(`ancestor`, `string`) has a weight of 0.5. Things returning multiple
revisions returns 1. This could be sometimes useful in the `andsmally`
optimization, ex.
(((:)-2) & expensive()) & ((1-2) & expensive())
^^^ ^
^^^^^^^ ^^^^^
^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^
weight=1 weight=0.5
would have an `andsmally` optimization so `1-2` gets executed first, which
seems to be desirable.
Differential Revision: https://phab.mercurial-scm.org/D656
Augie Fackler <augie@google.com> [Mon, 18 Sep 2017 13:37:00 -0400] rev 34278
ui: fix progress debug log format strings to work on Python 3
Augie Fackler <augie@google.com> [Mon, 18 Sep 2017 13:37:32 -0400] rev 34277
tests: update `f` helper script to work on Python 3
Augie Fackler <augie@google.com> [Tue, 19 Sep 2017 00:09:37 -0400] rev 34276
tests: fix run-tests XML reporting on Python 3
cdatasafe wants to work in terms of bytes, but of course we have a
unicode. Easy to work around, especially since we know we'll get utf-8
at the end.
Augie Fackler <augie@google.com> [Tue, 19 Sep 2017 00:08:52 -0400] rev 34275
tests: convert bisect support regex to binary
The bisection feature of run-tests still fails tests with this because
bisect itself doesn't work yet. We'll get there.
Augie Fackler <augie@google.com> [Tue, 19 Sep 2017 00:08:12 -0400] rev 34274
tests: decode bytes path to hg command before hitting with shellquote
Augie Fackler <augie@google.com> [Tue, 19 Sep 2017 00:07:51 -0400] rev 34273
tests: fix test-is-whitelisted check in run-tests
Again, look for bytes in a set of bytes objects.
Augie Fackler <augie@google.com> [Tue, 19 Sep 2017 00:07:23 -0400] rev 34272
tests: fix run-tests "slow test" check
Look for bytes in a set of bytes objects.
Augie Fackler <augie@google.com> [Tue, 19 Sep 2017 00:06:57 -0400] rev 34271
tests: fix run-tests default values in Test constructor
As far as I can tell, default values are evaluated far earlier on
Python 3.6 than 2.7, meaning we've got to be more careful about when
we read the defaults dictionary for the kwarg defaults. Sigh.
With this change, test-run-tests.t is significantly less of a mess
under 3.6.
Augie Fackler <augie@google.com> [Mon, 18 Sep 2017 17:11:32 -0400] rev 34270
tests: add support for listing tests to run in a file
This will make it easier for us to run the tests in the python3
whitelist in buildbot.
Augie Fackler <augie@google.com> [Mon, 18 Sep 2017 15:34:50 -0400] rev 34269
python3: remove test-update-dest.t from the whitelist
I've poked at this on and off several times, and I can't figure out
what regressed. Let's kick this out of the whitelist for now so that
we can get the *rest* of our progress covered by the buildbots.