Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 18:50:14 +0200] rev 34709
bookmark: add a dedicated pretxnclose-bookmark hook
This new hook mirror the newly introduced 'txnclose-bookmark' but can abort the
transaction.
Boris Feld <boris.feld@octobus.net> [Tue, 10 Oct 2017 17:53:42 +0200] rev 34708
bookmark: add a dedicated txnclose-bookmark hook
The new 'txnclose-bookmark' hook expose the bookmark movement information
stored in 'tr.changes['bookmarks]'. To provide a simple and straightforward
hook API to the users, we introduce a new hook called for each bookmark
touched. Since a transaction can affect multiple bookmarks, updating the
existing 'txnclose' hook to expose that information would be more complex. The
data for all moves might not fit in environment variables and iterations over
each move would be cumbersome. So the introduction of a new dedicated hook is
preferred in this changeset.
This does not exclude the addition to the full bookmark information to the
existing 'txnclose' in the future to help write more complex hooks.
Augie Fackler <augie@google.com> [Fri, 13 Oct 2017 15:58:54 -0400] rev 34707
tweakdefaults: make commands.update.check be `noconflict`
This is the second-safest option we have to offer in `updatecheck`,
with `abort` being the safest and `linear` being the default. At the
sprint we discussed how much `none` and `linear` make us all
uncomfortable, and how we'd like to move the default behavior if we can.
I'm not sure we can get away with actually changing the out of the box
default behavior, but we can at *least* do this.
Differential Revision: https://phab.mercurial-scm.org/D1062
Augie Fackler <augie@google.com> [Sat, 14 Oct 2017 15:43:06 -0400] rev 34706
hgweb: fix logging to use native strings as appropriate
Kind of a tangled mess, but now logging works in both Python 2 and 3.
# no-check-commit because of the interface required by Python's HTTP
server code.
Differential Revision: https://phab.mercurial-scm.org/D1080
Augie Fackler <augie@google.com> [Sat, 14 Oct 2017 03:13:50 -0400] rev 34705
config: graduate experimental.updatecheck to commands.update.check
.. feature::
New `commands.update.check` feature to adjust constraints on when
`hg update` will allow updates with a dirty working copy.
also
.. bc::
The `experimental.updatecheck` name for the new `commands.update.check`
feature is now deprecated, and will be removed after this release.
Differential Revision: https://phab.mercurial-scm.org/D1070
Augie Fackler <augie@google.com> [Sat, 14 Oct 2017 15:42:38 -0400] rev 34704
hgweb: rewrite most obviously-native-strings to be native strings
This clearly won't be everything, but it unblocks a fair amount of
stuff here.
Differential Revision: https://phab.mercurial-scm.org/D1079
Augie Fackler <augie@google.com> [Thu, 05 Oct 2017 14:48:52 -0400] rev 34703
hgweb: use native strings consistently for querystring parsing
Differential Revision: https://phab.mercurial-scm.org/D1078
Augie Fackler <augie@google.com> [Thu, 05 Oct 2017 14:48:31 -0400] rev 34702
hgweb: rewrite two X or Y and Z ad-hoc ternaries with Y if X else Z
Just easier to muddle through for my brain now that I don't see the
old pattern much anymore.
Differential Revision: https://phab.mercurial-scm.org/D1077
Augie Fackler <augie@google.com> [Sun, 01 Oct 2017 12:12:34 -0400] rev 34701
httppeer: use native strings for headers
On Python 3, we need to use unicodes, rather than bytes. This lets
test-pull.t get a lot further along.
Differential Revision: https://phab.mercurial-scm.org/D887
Augie Fackler <augie@google.com> [Thu, 05 Oct 2017 14:29:51 -0400] rev 34700
hgweb: more native string treatment in query string parsing
Differential Revision: https://phab.mercurial-scm.org/D1076
Augie Fackler <augie@google.com> [Sat, 14 Oct 2017 14:07:39 -0400] rev 34699
httppeer: pass url to urllib as native str, not bytes
Differential Revision: https://phab.mercurial-scm.org/D1075
Denis Laxalde <denis@laxalde.org> [Sat, 14 Oct 2017 13:33:37 +0200] rev 34698
tersestatus: rework dirnode and tersedir docstrings
Follow-up on refactorings
3d6d4b12128e and
5d98674df18a of the original
changeset
7e3001b74ab3 by updating the docstrings of dirnode class and tersedir
function:
* rewrite dirnode.iterfilepaths()'s docstring (the method got
renamed and reimplemented in
5d98674df18a);
* simplify and update dirnode.tersewalk() to remove reference to 'self' and
'tersedict';
* use the imperative form of verbs in the first sentence of all docstrings.
Differential Revision: https://phab.mercurial-scm.org/D1072
Augie Fackler <augie@google.com> [Wed, 04 Oct 2017 10:52:50 -0400] rev 34697
bitmanipulation: reformat with clang-format
Mostly un-wrapping over-wrapped definitions.
Differential Revision: https://phab.mercurial-scm.org/D1069
Augie Fackler <augie@google.com> [Mon, 14 Sep 2015 14:16:31 -0400] rev 34696
hghave: add a check for clang-format
Differential Revision: https://phab.mercurial-scm.org/D1068
Augie Fackler <augie@google.com> [Thu, 05 Oct 2017 14:16:20 -0400] rev 34695
python3: use our bytes-only version of cgi.escape everywhere
As suggested by Yuya in D965.
Differential Revision: https://phab.mercurial-scm.org/D1067
Augie Fackler <augie@google.com> [Sat, 14 Oct 2017 02:57:26 -0400] rev 34694
url: add cgi.escape equivalent for bytestrings
This seems like a sensible enough place to put it.
Differential Revision: https://phab.mercurial-scm.org/D1066
Augie Fackler <augie@google.com> [Thu, 05 Oct 2017 14:15:05 -0400] rev 34693
python3: move from using func_name to __name__
Previously reviewed as D964, but required some fixups and therefore
seems to need a new revision.
Differential Revision: https://phab.mercurial-scm.org/D1065
Matt Harbison <matt_harbison@yahoo.com> [Sat, 14 Oct 2017 01:20:12 -0400] rev 34692
tests: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com> [Sat, 14 Oct 2017 01:07:59 -0400] rev 34691
test-conflicts: conditionalize for no-symlink platforms
It seems better to create standin files for the symlinks, rather than blacklist
the entire tests. Especially since link vs file doesn't seem to affect the
tests.
There is more instability in test-pathconflicts-{basic,merge}.t that I can't
figure out.
Matt Harbison <matt_harbison@yahoo.com> [Sat, 14 Oct 2017 00:20:59 -0400] rev 34690
test-extdata: conditonalize error message for Windows
Matt Harbison <matt_harbison@yahoo.com> [Sat, 14 Oct 2017 00:07:26 -0400] rev 34689
test-audit-path: fill in missing output for no-symlink case
It looks like this was meant to go with
989e884d1be9.
Yuya Nishihara <yuya@tcha.org> [Sat, 14 Oct 2017 13:37:14 +0900] rev 34688
test-i18n: guard gettext test appropriately
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 13:08:31 +0200] rev 34687
hook: add a 'hashook' function to test for hook existence
Preparing the data for some hooks can be expensive. Add a function to check if
a hook exists so we can skip useless preparation if no hook is configured.
muxator <a.mux@inwind.it> [Fri, 13 Oct 2017 22:42:17 +0200] rev 34686
build: for the bootstrap phase of a deb/rpm build pure-py mercurial is enough
When bootstrapping a deb/rpm build, packagelib.sh starts performing a local
build for the sole purpose of parsing the output of "hg version".
Then it "hg archive"s the source code, and builds everything again.
For that initial step, we are perfectly good in using a pure python mercurial,
without compiling the c modules (base85, bdiff, zstdlib, ...).
On my personal system, this cuts down 22 seconds for a package build (the
bootstrapping build goes from ~30 to ~8 seconds).
Phil Cohen <phillco@fb.com> [Fri, 13 Oct 2017 12:40:05 -0700] rev 34685
context: add a fast-comparision for arbitraryfilectx and workingfilectx
Differential Revision: https://phab.mercurial-scm.org/D1056
Denis Laxalde <denis@laxalde.org> [Fri, 13 Oct 2017 04:02:06 +0530] rev 34684
tersestatus: avoid modifying tersedict
Turn dirnode's methods into generators which can be used to update "tersedict"
in caller. So instead of passing the "tersedict" to be mutated here and there,
it's now clearer where it is updated as it's purely a local variable to
tersedir() function.
While I was here, I renamed _processtersestatus to tersewalk and
_addfilestotersed to iterfilepaths.
Differential Revision: https://phab.mercurial-scm.org/D1043
Denis Laxalde <denis@laxalde.org> [Wed, 11 Oct 2017 21:19:19 +0200] rev 34683
tersestatus: make methods part of the dirnode class
Differential Revision: https://phab.mercurial-scm.org/D1042
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 06 Oct 2017 20:54:23 +0530] rev 34682
tersestatus: re-implement the functionality to terse the status
The previous terse status implementation was hacking around os.listdir() and was
flaky. There have been a lot of instances of mercurial buildbots failing
and google's internal builds failing because of the
hacky implementation of terse status. Even though I wrote the last
implementation but it was hard for me to find the reason for the flake.
The new implementation can be slower than the old one but is clean and easy to
understand.
In this we create a node object for each directory and create a tree
like structure starting from the root of the working copy. While building the
tree like structure we store some information on the nodes which will be helpful
for deciding later whether we can terse the dir or not.
Once the whole tree is build we traverse and built the list of files for each
status with required tersing.
There is no behaviour change as the old test, test-status-terse.t passes with
the new implementation.
Differential Revision: https://phab.mercurial-scm.org/D985
Phil Cohen <phillco@fb.com> [Fri, 13 Oct 2017 12:54:46 -0700] rev 34681
context: add is `isinmemory()` to filectx
This will make it easier to skip certain behavior when running an in-memory
merge.
Differential Revision: https://phab.mercurial-scm.org/D1061
Ryan McElroy <rmcelroy@fb.com> [Fri, 06 Oct 2017 06:48:43 -0700] rev 34680
merge: ensure that we always commit the mergestate
In future patches, we may halt the merge process based on configuration or
user requests by raising exceptions. We need to ensure that the mergestate
is unconditionally committed even when such an exception is raised.
Depends on D930.
Differential Revision: https://phab.mercurial-scm.org/D931