Thu, 15 Oct 2015 01:22:01 -0700 merge.applyupdates: call driverconclude after performing merge actions
Siddharth Agarwal <sid0@fb.com> [Thu, 15 Oct 2015 01:22:01 -0700] rev 26787
merge.applyupdates: call driverconclude after performing merge actions This will be a chance for the merge driver to finish resolving or generating any driver-resolved files. As before, having a separate error state from 'unresolved' is too big a refactoring for now, so we hack around it by setting unresolved to a positive value when necessary.
Thu, 15 Oct 2015 01:19:10 -0700 merge.applyupdates: call driverpreprocess before starting merge actions
Siddharth Agarwal <sid0@fb.com> [Thu, 15 Oct 2015 01:19:10 -0700] rev 26786
merge.applyupdates: call driverpreprocess before starting merge actions We also need to update our internal state to whatever state driverpreprocess leaves it in. Adding an error state separate from the unresolved count is too big a refactoring for now, so we hack around it by setting it to a positive value to indicate an error state.
Thu, 15 Oct 2015 01:17:29 -0700 merge: add stubs for preprocess and conclude steps of merge driver
Siddharth Agarwal <sid0@fb.com> [Thu, 15 Oct 2015 01:17:29 -0700] rev 26785
merge: add stubs for preprocess and conclude steps of merge driver The exact semantics for what should happen (particularly with respect to error handling) are still a bit hard to pin down, so I think it's better to experiment with it as an extension for now. For now this stub will act as a convenient point for extensions to hook on.
Thu, 15 Oct 2015 01:15:22 -0700 commands.resolve: don't allow users to mark or unmark driver-resolved files
Siddharth Agarwal <sid0@fb.com> [Thu, 15 Oct 2015 01:15:22 -0700] rev 26784
commands.resolve: don't allow users to mark or unmark driver-resolved files Users will often be in the habit of running 'hg resolve --mark --all' after resolving merge conflicts in source files. We need to make sure this doesn't cause driver-resolved files to be marked. 'hg resolve --all' will resolve driver-resolved files, though. The weird conditional structure is to accommodate an upcoming patch.
Thu, 15 Oct 2015 01:11:50 -0700 resolve: only create wctx once
Siddharth Agarwal <sid0@fb.com> [Thu, 15 Oct 2015 01:11:50 -0700] rev 26783
resolve: only create wctx once This allows for status and other results on the wctx to be cached between iterations.
Mon, 19 Oct 2015 12:07:17 -0700 dirstate: fix invalid reference to self.ui
James Mills <prologic@fb.com> [Mon, 19 Oct 2015 12:07:17 -0700] rev 26782
dirstate: fix invalid reference to self.ui
Sat, 17 Oct 2015 00:58:46 +0200 spelling: trivial spell checking
Mads Kiilerich <madski@unity3d.com> [Sat, 17 Oct 2015 00:58:46 +0200] rev 26781
spelling: trivial spell checking
Wed, 14 Oct 2015 03:30:27 -0400 mq: consistently use qrefresh
timeless@mozdev.org [Wed, 14 Oct 2015 03:30:27 -0400] rev 26780
mq: consistently use qrefresh
Wed, 14 Oct 2015 02:06:54 -0400 grammar: use does instead of do where appropriate
timeless@mozdev.org [Wed, 14 Oct 2015 02:06:54 -0400] rev 26779
grammar: use does instead of do where appropriate
Wed, 14 Oct 2015 22:29:03 -0400 l10n: use %d instead of %s for numbers
timeless@mozdev.org [Wed, 14 Oct 2015 22:29:03 -0400] rev 26778
l10n: use %d instead of %s for numbers
Thu, 15 Oct 2015 20:36:12 -0400 check-code: block non-portable pipe-and
timeless <timeless@mozdev.org> [Thu, 15 Oct 2015 20:36:12 -0400] rev 26777
check-code: block non-portable pipe-and
Thu, 15 Oct 2015 20:32:01 -0400 test-shelve: do not use non-portable pipe-and
timeless <timeless@mozdev.org> [Thu, 15 Oct 2015 20:32:01 -0400] rev 26776
test-shelve: do not use non-portable pipe-and
Sun, 18 Oct 2015 09:05:04 +0900 parsers: suppress warning of signed and unsigned comparison at nt_init
Yuya Nishihara <yuya@tcha.org> [Sun, 18 Oct 2015 09:05:04 +0900] rev 26775
parsers: suppress warning of signed and unsigned comparison at nt_init Spotted by CC=clang CFLAGS='-Wall -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -Wshorten-64-to-32': mercurial/parsers.c:1580:24: warning: comparison of integers of different signs: 'Py_ssize_t' (aka 'long') and 'unsigned long' [-Wsign-compare] if (self->raw_length > INT_MAX / sizeof(nodetree)) {
Sat, 17 Oct 2015 23:14:13 +0900 parsers: correct type of temporary variables for dirstate tuple fields
Yuya Nishihara <yuya@tcha.org> [Sat, 17 Oct 2015 23:14:13 +0900] rev 26774
parsers: correct type of temporary variables for dirstate tuple fields These fields are defined as int. This eliminates the following warning spotted by CC=clang CFLAGS='-Wall -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -Wshorten-64-to-32': mercurial/parsers.c:625:29: warning: comparison of integers of different signs: 'uint32_t' (aka 'unsigned int') and 'int' [-Wsign-compare] if (state == 'n' && mtime == now) {
Fri, 16 Oct 2015 02:53:57 +0100 test: enforce v1 type in 'test-bundle2-remote-changegroup.t'
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 16 Oct 2015 02:53:57 +0100] rev 26773
test: enforce v1 type in 'test-bundle2-remote-changegroup.t' This bundle command is meant to generate a bundle1, we enforce that to avoid test's misbehavior when moving to general-delta by default.
Fri, 16 Oct 2015 02:51:34 +0100 test: enforce v1 type in 'test-bundle2-format.t'
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 16 Oct 2015 02:51:34 +0100] rev 26772
test: enforce v1 type in 'test-bundle2-format.t' This bundle command is meant to generate a bundle1, we enforce that to avoid test's misbehavior when moving to general-delta by default.
Sat, 17 Oct 2015 15:48:14 -0700 editmerge: properly quote variables
Ryan McElroy <rmcelroy@fb.com> [Sat, 17 Oct 2015 15:48:14 -0700] rev 26771
editmerge: properly quote variables Previously, files with spaces would break editmerge.
Thu, 15 Oct 2015 01:09:58 -0700 commands.resolve: print out warning when only driver-resolved files remain
Siddharth Agarwal <sid0@fb.com> [Thu, 15 Oct 2015 01:09:58 -0700] rev 26770
commands.resolve: print out warning when only driver-resolved files remain 'hg resolve --all' will be the canonical way to run the 'conclude' step of the merge driver.
Thu, 15 Oct 2015 01:06:29 -0700 merge.mergestate: set merge driver state to 's' if there's none present
Siddharth Agarwal <sid0@fb.com> [Thu, 15 Oct 2015 01:06:29 -0700] rev 26769
merge.mergestate: set merge driver state to 's' if there's none present This allows mergestate.mdstate() to return 's' if there's nothing to be done on the merge driver end.
Thu, 15 Oct 2015 01:04:46 -0700 merge.mergestate: only check for merge driver when property is accessed
Siddharth Agarwal <sid0@fb.com> [Thu, 15 Oct 2015 01:04:46 -0700] rev 26768
merge.mergestate: only check for merge driver when property is accessed Otherwise 'hg update --clean', 'hg rebase --abort' etc wouldn't work.
Thu, 15 Oct 2015 01:02:32 -0700 localrepo.commit: abort if merge driver's conclude step hasn't been run yet
Siddharth Agarwal <sid0@fb.com> [Thu, 15 Oct 2015 01:02:32 -0700] rev 26767
localrepo.commit: abort if merge driver's conclude step hasn't been run yet This case also requires 'hg resolve --all' to be run before continuing.
Thu, 15 Oct 2015 00:57:56 -0700 merge.mergestate: add a way to get the merge driver state
Siddharth Agarwal <sid0@fb.com> [Thu, 15 Oct 2015 00:57:56 -0700] rev 26766
merge.mergestate: add a way to get the merge driver state This will be useful to check what the status of the merge driver is.
Thu, 15 Oct 2015 00:49:07 -0700 merge.mergestate: add a way to get the other side of the merge
Siddharth Agarwal <sid0@fb.com> [Thu, 15 Oct 2015 00:49:07 -0700] rev 26765
merge.mergestate: add a way to get the other side of the merge It's surprising there was no API at all for this until now. In any case this will be needed from custom merge drivers.
Thu, 15 Oct 2015 00:45:20 -0700 commands.resolve: support printing out driver-resolved files
Siddharth Agarwal <sid0@fb.com> [Thu, 15 Oct 2015 00:45:20 -0700] rev 26764
commands.resolve: support printing out driver-resolved files There's no user-visible way to mark files as driver-resolved, so this status won't be visible.
Sat, 17 Oct 2015 12:32:23 -0700 histedit: make histedit prune when obsolete is enabled
Durham Goode <durham@fb.com> [Sat, 17 Oct 2015 12:32:23 -0700] rev 26763
histedit: make histedit prune when obsolete is enabled Back in June we made histedit use obsolete markers to cleanup when possible. This was rolled back as part of 54f9561088c7 (which should have only rolled back the --abort stuff, but rolled back everything). This caused a nasty bug when used in conjuction with the inhibit+directaccess extensions where histedit would leave old nodes around even after they had been squashed away. The root of the problem is that we first clean up old nodes, and then we clean up temp nodes. In the first pass, when we obsoleted old nodes, some would become unobsolete because they had temp nodes on top of them, thus making them stick around even after the histedit finished. The fix is to A) move the temp node cleanup to be before the old node cleanup (since they are topological on top of the old nodes), and B) use obsolete markers instead of stripping.
Sat, 17 Oct 2015 11:23:54 -0700 clonebundles: rewrite documentation
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 17 Oct 2015 11:23:54 -0700] rev 26762
clonebundles: rewrite documentation There are a lot of considerations server operators need to know before deploying clone bundles. They should be documented. So I rewrote the extension docs to contain this information.
Sat, 17 Oct 2015 11:37:08 -0700 exchange: support streaming clone bundles in clone bundles
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 17 Oct 2015 11:37:08 -0700] rev 26761
exchange: support streaming clone bundles in clone bundles Now that we have support for detecting compatible stream clone bundles in bundle specifications, we can safely add support for applying stream clone bundles to the clone bundles feature.
Sat, 17 Oct 2015 10:26:34 -0700 exchange: parse requirements from stream clone specification string
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 17 Oct 2015 10:26:34 -0700] rev 26760
exchange: parse requirements from stream clone specification string Stream clone bundles can only be consumed if the consumer supports the exact format requirements that were present on the producer. This patch adds support for encoding and verifying the format requirements on the bundle specification string for a stream clone bundle are supported by the local repository. If they aren't, we raise an UnsupportedBundleSpecification, just like we do when an unknown compression or bundle type is encountered. The impetus for this patch is so the clone bundles manifest can advertise stream clone bundles and so clients can filter out stream clones with unsupported format requirements. e.g. a stream clone produced with the not-yet-invented "revlogv2" format will be ignored by clients that only support "revlogv1."
Wed, 14 Oct 2015 17:00:34 -0700 exchange: support parameters in bundle specification strings
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 14 Oct 2015 17:00:34 -0700] rev 26759
exchange: support parameters in bundle specification strings Sometimes a basic type string is not sufficient for representing the contents of a bundle. Take bundle2 for example: future bundle2 files may contain parts that today's bundle2 parser can't read. Another example is stream clone data. These require clients to support specific repository formats or they won't be able to read the written files. In both scenarios, we need to describe additional metadata beyond the outer container type. Furthermore, this metadata behaves more like an unordered set, so an order-based declaration format (such as static strings) is not sufficient. We introduce support for "parameters" into the bundle specification string. These are essentially key-value pairs that can be used to encode additional metadata about the bundle. Semicolons are used as the delimiter partially to increase similarity to MIME parameter values (see RFC 2231) and because they are relatively safe from the command line (although values will need quotes to avoid interpretation as multiple shell commands). Alternatives considered were spaces (a bit annoying to encode) and '&' (similar to URL query strings) (which will do bad things in a shell if unquoted). The parsing function now returns a dict of parsed parameters and consumers have been updated accordingly.
Thu, 15 Oct 2015 13:43:18 -0700 commands: support consuming stream clone bundles
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 15 Oct 2015 13:43:18 -0700] rev 26758
commands: support consuming stream clone bundles For the same reasons that we don't produce stream clone bundles with `hg bundle`, we don't support consuming stream clone bundles with `hg unbundle`. We introduce a complementary debug command for applying stream clone bundles. This command is mostly to facilitate testing. Although it may be used to manually apply stream clone bundles until a more formal mechanism is (possibly) adopted.
(0) -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip