Wed, 15 Nov 2017 01:07:42 -0800 dirstate: remove _droppath method
Mark Thomas <mbthomas@fb.com> [Wed, 15 Nov 2017 01:07:42 -0800] rev 35106
dirstate: remove _droppath method This method now doesn't do very much interesting and can be removed. The updated files set can be updated where _droppath was originally called. Differential Revision: https://phab.mercurial-scm.org/D1344
Wed, 15 Nov 2017 01:07:42 -0800 dirstate: move dropping of folded filenames into the dirstate map
Mark Thomas <mbthomas@fb.com> [Wed, 15 Nov 2017 01:07:42 -0800] rev 35105
dirstate: move dropping of folded filenames into the dirstate map When dropping files from the dirstate, the corresponding entry in the filefoldmap is also dropped. Move this into the dirstate map object. A future implementation of the dirstate will maintain the filefoldmap differently. Differential Revision: https://phab.mercurial-scm.org/D1343
Wed, 15 Nov 2017 01:07:42 -0800 dirstate: move management of the dirstate dirs into the dirstatemap
Mark Thomas <mbthomas@fb.com> [Wed, 15 Nov 2017 01:07:42 -0800] rev 35104
dirstate: move management of the dirstate dirs into the dirstatemap The dirstate dirs object is owned by the map, so move management of that object there. A future implementation of the dirstate will manage the dirs object differently. Differential Revision: https://phab.mercurial-scm.org/D1342
Wed, 15 Nov 2017 01:07:42 -0800 dirstate: move management of nonnormal sets into dirstate map
Mark Thomas <mbthomas@fb.com> [Wed, 15 Nov 2017 01:07:42 -0800] rev 35103
dirstate: move management of nonnormal sets into dirstate map The dirstate map owns the nonnormal sets, and so should be the class to update them. A future implementation of the dirstate will manage these maps differently. The action of clearing ambiguous times is now entirely controlled by the dirstate map, so it moves there too. Differential Revision: https://phab.mercurial-scm.org/D1341
Wed, 15 Nov 2017 01:07:42 -0800 dirstate: add explicit methods for modifying dirstate
Mark Thomas <mbthomas@fb.com> [Wed, 15 Nov 2017 01:07:42 -0800] rev 35102
dirstate: add explicit methods for modifying dirstate Instead of assigning dirstatetuple objects to entries in the dirstate, move responsibility for creating tuples into the dirstatemap. Differential Revision: https://phab.mercurial-scm.org/D1340
Wed, 15 Nov 2017 01:07:42 -0800 dirstate: document dirstatemap interface
Mark Thomas <mbthomas@fb.com> [Wed, 15 Nov 2017 01:07:42 -0800] rev 35101
dirstate: document dirstatemap interface Differential Revision: https://phab.mercurial-scm.org/D1380
Mon, 13 Nov 2017 19:12:56 -0800 bundlerepo: rename "bundlefilespos" variable and attribute
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 13 Nov 2017 19:12:56 -0800] rev 35100
bundlerepo: rename "bundlefilespos" variable and attribute Strictly speaking, this variable tracks offsets within the changegroup, not the bundle. While we're here, mark a class attribute as private because it is. .. api:: Rename bundlerepo.bundlerepository.bundlefilespos to _cgfilespos. Differential Revision: https://phab.mercurial-scm.org/D1384
Mon, 13 Nov 2017 19:12:17 -0800 bundlerepo: rename "bundle" arguments to "cgunpacker"
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 13 Nov 2017 19:12:17 -0800] rev 35099
bundlerepo: rename "bundle" arguments to "cgunpacker" "bundle" was appropriate for the bundle1 days where a bundle was a changegroup. In a bundle2 world, changegroup readers are referred to as "changegroup unpackers." Differential Revision: https://phab.mercurial-scm.org/D1383
Sat, 11 Nov 2017 18:55:04 -0800 bundlerepo: use early return
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 11 Nov 2017 18:55:04 -0800] rev 35098
bundlerepo: use early return I like avoiding patterns that lead to the pyramid of doom. Differential Revision: https://phab.mercurial-scm.org/D1382
Sun, 05 Nov 2017 08:23:12 +0100 test-pattern: actually update tests using the patterns
Boris Feld <boris.feld@octobus.net> [Sun, 05 Nov 2017 08:23:12 +0100] rev 35097
test-pattern: actually update tests using the patterns We mass update the tests now. This will help the next soul touching the http protocol.
Sun, 05 Nov 2017 08:23:53 +0100 test-pattern: substitute the HTTP log timestamp too
Boris Feld <boris.feld@octobus.net> [Sun, 05 Nov 2017 08:23:53 +0100] rev 35096
test-pattern: substitute the HTTP log timestamp too We add a pattern matching the infamous timestamp in http log. Now, we should be able to have change appears in https log without having to re-glob the whole thing over and over.
Mon, 13 Nov 2017 04:59:45 +0100 test-pattern: register the current the bundle2 capabilities string
Boris Feld <boris.feld@octobus.net> [Mon, 13 Nov 2017 04:59:45 +0100] rev 35095
test-pattern: register the current the bundle2 capabilities string The bundle capabilites are sent with every getbundle ssh connection. Every time the protocol is updated, that string is altered. We get the part about bundle2 string replaced by $USUAL_BUNDLE2_CAPS$ so that we only have to change the substitution whenever this happens.
Sun, 05 Nov 2017 06:43:40 +0100 test-pattern: register current the bundlecaps string
Boris Feld <boris.feld@octobus.net> [Sun, 05 Nov 2017 06:43:40 +0100] rev 35094
test-pattern: register current the bundlecaps string The bundle capabilites sent with every getbundle commands. Every time the protocol is updated, that string is altered. We get that string replace by $USUAL_BUNDLE_CAPS$ so that we only have to change the substitution whenever this happens.
Sun, 05 Nov 2017 06:41:38 +0100 test-pattern: substitute common compression list
Boris Feld <boris.feld@octobus.net> [Sun, 05 Nov 2017 06:41:38 +0100] rev 35093
test-pattern: substitute common compression list The compression list as to be matched with a glob because zstd might not be part of the option. By using a substitution for these, we won't have to re-glob them over and over.
Sun, 05 Nov 2017 06:34:27 +0100 run-tests: allow to register any arbitrary pattern for replacement
Boris Feld <boris.feld@octobus.net> [Sun, 05 Nov 2017 06:34:27 +0100] rev 35092
run-tests: allow to register any arbitrary pattern for replacement We add a 'common-pattern.py' file that allow to define extra pattern. This seems a cleaner approach than editing the 'run-test.py' file over and over. In addition allowing arbitrary pattern registration will also help extension. The format used is a python file is picked out of convenience defining a list of tuple in 'substitutions' variable. This is picked out of convenience since it is dead simple to implement. The end goal is to register more pattern for Mercurial test. There are multiple common patterns that change over time. That impact is annoying. Using pattern emplacement for them would be handy. The next patches will define all the needed patterns and the last patch will mass-update the tests outputs as it was easier to do in a single pass.
Mon, 13 Nov 2017 18:22:25 -0800 crecord: fix revert -ir '.^' crash caused by 3649c3f2cd
Jun Wu <quark@fb.com> [Mon, 13 Nov 2017 18:22:25 -0800] rev 35091
crecord: fix revert -ir '.^' crash caused by 3649c3f2cd 3649c3f2cd (revert: do not reverse hunks in interactive when REV is not parent (issue5096)) changed the record "operation" for the text version but missed the curses version. Without this patch, running `hg revert -ir '.^' --config ui.interface=curses` would crash with: ProgrammingError: unexpected operation: apply Differential Revision: https://phab.mercurial-scm.org/D1381
Thu, 16 Nov 2017 17:11:14 -0800 tweakdefaults: turn on ui.statuscopies
Martin von Zweigbergk <martinvonz@google.com> [Thu, 16 Nov 2017 17:11:14 -0800] rev 35090
tweakdefaults: turn on ui.statuscopies Seems obviously useful and probably off by default for historical reasons. Differential Revision: https://phab.mercurial-scm.org/D1444
Wed, 15 Nov 2017 17:54:27 -0800 run-tests: fix TESTDIR if testdescs are absolute paths
Kyle Lippincott <spectral@google.com> [Wed, 15 Nov 2017 17:54:27 -0800] rev 35089
run-tests: fix TESTDIR if testdescs are absolute paths Commit a18eef03d879 made TESTDIR be the location of the arguments that were passed to run-tests.py instead of just PWD. It assumed that these tests were specified using relative paths, so if pwd was /tmp/foo, and the first argument was /tmp/baz, it would set TESTDIR to /tmp/foo//tmp/baz. Differential Revision: https://phab.mercurial-scm.org/D1433
Thu, 16 Nov 2017 22:21:03 +0800 hgweb: show commit phase if it's not public
Anton Shestakov <av6@dwimlabs.net> [Thu, 16 Nov 2017 22:21:03 +0800] rev 35088
hgweb: show commit phase if it's not public In spartan theme phase is shown on its own table row, because there's no single line of "tags". Everywhere else phase is prepended to the list of "tags" of a changeset. Its element has a purple-ish color in gitweb and monoblue, and a dotted line under it and no color in paper and coal (as these themes are frugal with colors). This patch intentionally doesn't touch graph, because it needs a rewrite. I'll get to it pretty soon and in the process will add phase and everything that's still coming (e.g. obsolescence and instabilities). .. feature:: hgweb now displays phases of non-public changesets
Wed, 15 Nov 2017 23:55:09 +0800 hgweb: move changeset "tags" to a template in map file (paper and coal)
Anton Shestakov <av6@dwimlabs.net> [Wed, 15 Nov 2017 23:55:09 +0800] rev 35087
hgweb: move changeset "tags" to a template in map file (paper and coal) This patch puts all these changeset "tags" into one template shared everywhere in paper and coal themes. But it should be noted that some of the templates had different sets of tags, in some cases it was intended, in others - most likely not. First, what's up with all these different ways to get changeset's branch. There are actually 3 ways to do it in hgweb, they can all be seen in this patch; "branches", "inbranch" and "branch". They are all lists that consist of 1 or 0 items: - "branches" has ctx.branch() if current changeset is the tip of that branch - "inbranch" has ctx.branch() if current changeset is _not_ the tip of that branch and the branch is not "default" - "branch" aka "changesetbranch" has ctx.branch() if the branch is not "default" The majority of cases (7 vs 2 + /graph) in paper theme used only option 3, which meant that "default" was never displayed. But other parts of the theme disagreed with this and used option 1 and option 2 together. For example, the default view (log) displays "default" on the branch tip (can be seen right about now on m-s.o/repo/hg), but it disappears when you click on the commit. Also, using option 3 alone meant that there was no way to tell if a changeset is the tip of its branch or not (it was always assumed that it's not, see how some css classes change from "branchname" to the correct "branchhead" in tests) -- so the two different css styles that exist in paper just for this were underused. I think this patch improves the situation, even though it changes the old (even if inconsistent) behavior. The new behavior matches that of gitweb and monoblue.
Fri, 03 Nov 2017 21:01:20 +0100 logtoprocess: clean-up old comment
Boris Feld <boris.feld@octobus.net> [Fri, 03 Nov 2017 21:01:20 +0100] rev 35086
logtoprocess: clean-up old comment The comment was likely to be for runshellcommand code. Differential Revision: https://phab.mercurial-scm.org/D1425
Tue, 14 Nov 2017 10:26:36 -0800 patch: accept prefix argument to changedfiles() helper
Martin von Zweigbergk <martinvonz@google.com> [Tue, 14 Nov 2017 10:26:36 -0800] rev 35085
patch: accept prefix argument to changedfiles() helper I'd like to call the function from an extension, passing both "strip" and "prefix", but it currently only accepts "strip". The only in-tree caller seems to be mq.py, which doesn't even pass "strip". Differential Revision: https://phab.mercurial-scm.org/D1413
Wed, 15 Nov 2017 19:36:16 +0800 hgweb: move changeset "tags" to a template in map file (gitweb and monoblue)
Anton Shestakov <av6@dwimlabs.net> [Wed, 15 Nov 2017 19:36:16 +0800] rev 35084
hgweb: move changeset "tags" to a template in map file (gitweb and monoblue) Less duplication and it's also easier to add extra "tags" everywhere at once. These aren't tags as defined `hg help glossary` (hence the quotes), they are simply called that. They include branch name (in different styles if changeset is a head of that branch or not), (actual) tags and bookmarks. Good candidates to add to this list would be changeset phase and obsoletion status.
Wed, 15 Nov 2017 16:06:00 +0800 hgweb: split long lines in gitweb and monoblue (changeset summary and tags)
Anton Shestakov <av6@dwimlabs.net> [Wed, 15 Nov 2017 16:06:00 +0800] rev 35083
hgweb: split long lines in gitweb and monoblue (changeset summary and tags)
Thu, 26 Oct 2017 09:27:09 +0200 debugdeltachain: output information about sparse read if enabled
Paul Morelle <paul.morelle@octobus.net> [Thu, 26 Oct 2017 09:27:09 +0200] rev 35082
debugdeltachain: output information about sparse read if enabled
Tue, 14 Nov 2017 22:46:10 +0100 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org> [Tue, 14 Nov 2017 22:46:10 +0100] rev 35081
rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300) .. feature:: Let 'hg rebase' avoid content-divergence by skipping obsolete changesets (and their descendants) when they are present in the rebase set along with one of their successors but none of their successors is in destination. In the following example, when trying to rebase 3:: onto 2, the rebase will abort with "this rebase will cause divergence from: 4": o 7 f | | o 6 e | | | o 5 d' | | x | 4 d (rewritten as 5) |/ o 3 c | | o 2 x | | o | 1 b |/ o 0 a By excluding obsolete changesets without a successor in destination (4 in the example above) and their descendants, we make rebase work in this case, thus giving: o 11 e | o 10 d' | o 9 c | o 8 b | | o 7 f | | | | x 6 e (rewritten using rebase as 11) | | | | | x 5 d' (rewritten using rebase as 10) | | | | x | 4 d | |/ | x 3 c (rewritten using rebase as 9) | | o | 2 x | | | x 1 b (rewritten using rebase as 8) |/ o 0 a where branch 4:: is left behind while branch 5:: is rebased as expected. The rationale is that users may not be interested in rebasing orphan changesets when specifying a rebase set that include them but would still want "stable" ones to be rebased. Currently, the user is suggested to allow divergence (but probably does not want it) or they must specify a rebase set excluding problematic changesets (which might be a bit cumbersome). The approach proposed here corresponds to "Option 2" in https://www.mercurial-scm.org/wiki/CEDRebase. We extend _computeobsoletenotrebased() so that it also return a set of obsolete changesets in rebase set without a successor in destination but with at least one successor in rebase set. This 'obsoletewithoutsuccessorindestination' is then stored as an attribute of rebaseruntime and used in _performrebasesubset() to: * filter out descendants of these changesets from the revisions to rebase; * issue a message about these revisions being skipped. This only occurs if 'evolution.allowdivergence' option is off and 'rebaseskipobsolete' is on.
Sat, 11 Nov 2017 19:25:32 +0100 tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org> [Sat, 11 Nov 2017 19:25:32 +0100] rev 35080
tests: add a couple of 'hg log' calls in test-rebase-obsolete.t It helps understanding tests.
Mon, 06 Nov 2017 22:08:02 +0100 tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org> [Mon, 06 Nov 2017 22:08:02 +0100] rev 35079
tests: conditionally display obsfate in test-rebase-obsolete log output This helps understanding and debugging.
Sat, 11 Nov 2017 19:23:31 +0100 tests: clarify a comment in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org> [Sat, 11 Nov 2017 19:23:31 +0100] rev 35078
tests: clarify a comment in test-rebase-obsolete.t
Sat, 11 Nov 2017 18:41:14 -0800 bundlerepo: rename _bundle to _cgunpacker
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 11 Nov 2017 18:41:14 -0800] rev 35077
bundlerepo: rename _bundle to _cgunpacker _bundle is really a changegroup unpacker instance. Rename the variable accordingly. Differential Revision: https://phab.mercurial-scm.org/D1379
Sat, 11 Nov 2017 18:34:50 -0800 bundlerepo: assign bundle attributes in bundle type blocks
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 11 Nov 2017 18:34:50 -0800] rev 35076
bundlerepo: assign bundle attributes in bundle type blocks It is a bit wonky to assign the same object to multiple attributes and then possibly overwrite them later. Refactor the code to use a local variable and defer attribute assignment until the final values are ready. This required passing the bundle instance to _handlebundle2part(). The only use of this method I could find is Facebook's treemanifest extension. Since it is a private method, I don't think it warrants an API callout. Differential Revision: https://phab.mercurial-scm.org/D1378
Sat, 11 Nov 2017 18:22:36 -0800 bundlerepo: make bundle and bundlefile attributes private
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 11 Nov 2017 18:22:36 -0800] rev 35075
bundlerepo: make bundle and bundlefile attributes private These attributes are implementation details and shouldn't be exposed outside the class. .. api:: bundlerepo.bundlerepository.bundle and bundlerepo.bundlerepository.bundlefile are now prefixed with an underscore. Differential Revision: https://phab.mercurial-scm.org/D1377
Sat, 11 Nov 2017 18:14:41 -0800 bundlerepo: don't assume there are only two bundle classes
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 11 Nov 2017 18:14:41 -0800] rev 35074
bundlerepo: don't assume there are only two bundle classes exchange.readbundle() can return a type that represents a stream clone bundle. Explicitly handle the bundle1 type and raise a reasonable error message for unhandled bundle types. Differential Revision: https://phab.mercurial-scm.org/D1376
Sat, 11 Nov 2017 18:09:16 -0800 bundlerepo: add docstring for bundlerepository class
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 11 Nov 2017 18:09:16 -0800] rev 35073
bundlerepo: add docstring for bundlerepository class Differential Revision: https://phab.mercurial-scm.org/D1375
Sat, 11 Nov 2017 18:05:02 -0800 bundlerepo: rename arguments to bundlerepository.__init__
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 11 Nov 2017 18:05:02 -0800] rev 35072
bundlerepo: rename arguments to bundlerepository.__init__ To reflect what they actually are. Differential Revision: https://phab.mercurial-scm.org/D1374
Sat, 11 Nov 2017 17:07:33 -0800 bundlerepo: use suffix variable
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 11 Nov 2017 17:07:33 -0800] rev 35071
bundlerepo: use suffix variable It looks like the refactor in 702a26fec3e2 attempted to establish this method argument but failed to use it. My editor caught it. Differential Revision: https://phab.mercurial-scm.org/D1373
Sat, 11 Nov 2017 17:02:31 -0800 bundlerepo: make methods agree with base class
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 11 Nov 2017 17:02:31 -0800] rev 35070
bundlerepo: make methods agree with base class My editor was complaining about mismatches between method signatures. For methods that are implemented, we change arguments to match the base. For those that aren't, we use variable arguments because it shouldn't matter. Differential Revision: https://phab.mercurial-scm.org/D1372
Sat, 11 Nov 2017 16:48:40 -0800 bundle2: use os.SEEK_* constants
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 11 Nov 2017 16:48:40 -0800] rev 35069
bundle2: use os.SEEK_* constants Constants make code easier to read than magic numbers. I also threw in an explicit argument in a caller to further increase code comprehension. Differential Revision: https://phab.mercurial-scm.org/D1370
Mon, 30 Oct 2017 20:35:30 -0700 help: adding a topic on flags
Rodrigo Damazio Bovendorp <rdamazio@google.com> [Mon, 30 Oct 2017 20:35:30 -0700] rev 35068
help: adding a topic on flags This is a short topic to explain how command-line flags can be specified. Some users have been confused by hg offerring different flag syntax than some other libraries, so it'd be nice to point them to this rather than explaining it every time. Differential Revision: https://phab.mercurial-scm.org/D1270
Fri, 06 Oct 2017 05:47:56 +0530 py3: handle keyword arguments correctly in hgext/patchbomb.py
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 06 Oct 2017 05:47:56 +0530] rev 35067
py3: handle keyword arguments correctly in hgext/patchbomb.py The keys of keyword arguments must be str on Python 3 which is unicode. This patch make sure we pass keyword arguments with keys are str everywhere in this file and access the keys depending on whether they are bytes or str. This patch uses pycompat.{byteskwargs|strkwargs} and somewhere it also added r'' to prevent transformer from adding a b'' over there. Differential Revision: https://phab.mercurial-scm.org/D974
Sat, 11 Nov 2017 15:07:21 +0800 tests: use jshint when available to check .js files
Anton Shestakov <av6@dwimlabs.net> [Sat, 11 Nov 2017 15:07:21 +0800] rev 35066
tests: use jshint when available to check .js files
Sat, 11 Nov 2017 14:14:38 +0800 hgweb: fix jshint issues in mercurial.js
Anton Shestakov <av6@dwimlabs.net> [Sat, 11 Nov 2017 14:14:38 +0800] rev 35065
hgweb: fix jshint issues in mercurial.js Everything is pretty self-explanatory except the last hunk, where jshint complains: "Misleading line break before '||'; readers may interpret this as an expression boundary." There is a tweakable called "laxbreak" that allows line breaks before operators, but I think it's fine to simply join this one line and avoid extra config for now (we can cook up and add a sensible .jshintrc later).
Tue, 17 Oct 2017 15:55:40 +0200 exchange: drop unused '_getbookmarks' function
Boris Feld <boris.feld@octobus.net> [Tue, 17 Oct 2017 15:55:40 +0200] rev 35064
exchange: drop unused '_getbookmarks' function The function was introduced in 8491845a75b2 in mid-November 2016 but is never used anywhere in core.
Sun, 15 Oct 2017 15:21:47 +0200 bookmark: use bundle2 debug output in one push tests
Boris Feld <boris.feld@octobus.net> [Sun, 15 Oct 2017 15:21:47 +0200] rev 35063
bookmark: use bundle2 debug output in one push tests Having more details about the push process will help to track changes made to the actual exchange.
Tue, 17 Oct 2017 11:01:45 +0200 pull: store binary node in pullop.remotebookmarks
Boris Feld <boris.feld@octobus.net> [Tue, 17 Oct 2017 11:01:45 +0200] rev 35062
pull: store binary node in pullop.remotebookmarks The internal representation of bookmark value is binary. The fact we stored 'hex' was an implementation detail from using pushkey. We move the values in 'pullop.remotebookmarks' to binary before adding a way to exchange bookmarks not based on pushkey.
Thu, 19 Oct 2017 11:46:41 +0200 config: rename allow_push to allow-push
David Demelier <markand@malikania.fr> [Thu, 19 Oct 2017 11:46:41 +0200] rev 35061
config: rename allow_push to allow-push As part of ConfigConsolidationPlan [1], rename the option according to the new UI guidelines [2] and add an alias for backward compatibility. [1]: https://www.mercurial-scm.org/wiki/ConfigConsolidationPlan [2]: https://www.mercurial-scm.org/wiki/UIGuideline#adding_new_options
Thu, 19 Oct 2017 11:43:19 +0200 config: rename allowpull to allow-pull
David Demelier <markand@malikania.fr> [Thu, 19 Oct 2017 11:43:19 +0200] rev 35060
config: rename allowpull to allow-pull As part of ConfigConsolidationPlan [1], rename the option according to the new UI guidelines [2] and add an alias for backward compatibility. [1]: https://www.mercurial-scm.org/wiki/ConfigConsolidationPlan [2]: https://www.mercurial-scm.org/wiki/UIGuideline#adding_new_options
Fri, 10 Nov 2017 19:14:06 +0800 hgweb: add missing semicolons to followlines.js
Anton Shestakov <av6@dwimlabs.net> [Fri, 10 Nov 2017 19:14:06 +0800] rev 35059
hgweb: add missing semicolons to followlines.js Minor stylistic issues caught by jshint.
Fri, 10 Nov 2017 18:50:44 +0800 gitweb: apply styles from annotate tooltip to followlines popup
Anton Shestakov <av6@dwimlabs.net> [Fri, 10 Nov 2017 18:50:44 +0800] rev 35058
gitweb: apply styles from annotate tooltip to followlines popup These new colors and styles are already used in the tooltip that gets shown when user hovers over line numbers on annotate page. The old styles, replaced in this patch, look completely unrelated to gitweb or any other hgweb theme.
Fri, 10 Nov 2017 18:45:43 +0800 paper: apply styles from annotate tooltip to followlines popup
Anton Shestakov <av6@dwimlabs.net> [Fri, 10 Nov 2017 18:45:43 +0800] rev 35057
paper: apply styles from annotate tooltip to followlines popup These new colors and styles are already used in the tooltip that gets shown when user hovers over line numbers on annotate page. The old styles, replaced in this patch, look completely unrelated to paper or any other hgweb theme.
Fri, 10 Nov 2017 09:44:49 -0800 pull: clarify that -u only updates linearly
Martin von Zweigbergk <martinvonz@google.com> [Fri, 10 Nov 2017 09:44:49 -0800] rev 35056
pull: clarify that -u only updates linearly Differential Revision: https://phab.mercurial-scm.org/D1355
Wed, 08 Nov 2017 09:27:14 -0800 dirstate: don't remove normallookup files from nonnormalset
Mark Thomas <mbthomas@fb.com> [Wed, 08 Nov 2017 09:27:14 -0800] rev 35055
dirstate: don't remove normallookup files from nonnormalset The dirstate typically tries to keep the nonnormalset and otherparentset up-to-date when making changes to the dirstate. In the case of files marked normallookup, however, it erroneously removes the file from the nonnormalset, after _addpath had just added it. This doesn't seem to matter at the moment, as nothing relies on the nonnormalset being correct at this point, however a future re-implementations of the dirstate map will require this to be kept up-to-date correctly. Differential Revision: https://phab.mercurial-scm.org/D1339
Wed, 08 Nov 2017 09:23:53 -0800 dirstate: clear map cached properties when clearing the map
Mark Thomas <mbthomas@fb.com> [Wed, 08 Nov 2017 09:23:53 -0800] rev 35054
dirstate: clear map cached properties when clearing the map dirstatemap.clear should remove all record of the files in the map. This includes removing caches of values derived from these. Differential Revision: https://phab.mercurial-scm.org/D1338
Wed, 08 Nov 2017 09:18:18 -0800 util: add util.clearcachedproperty
Mark Thomas <mbthomas@fb.com> [Wed, 08 Nov 2017 09:18:18 -0800] rev 35053
util: add util.clearcachedproperty This utility function allows clearing of the cached value set up @propertycache, if there is one. Differential Revision: https://phab.mercurial-scm.org/D1337
Fri, 10 Nov 2017 17:12:04 -0500 merge with stable
Augie Fackler <augie@google.com> [Fri, 10 Nov 2017 17:12:04 -0500] rev 35052
merge with stable
Wed, 08 Nov 2017 18:24:43 -0800 changegroup: use any node, not min(), in treemanifest's generatemanifests
Kyle Lippincott <spectral@google.com> [Wed, 08 Nov 2017 18:24:43 -0800] rev 35051
changegroup: use any node, not min(), in treemanifest's generatemanifests This is fixing quadratic behavior, which is probably not noticeable in the common case, but if a very large directory gets added here, it can get pretty bad. This was noticed because we had some pushes that spent >25s in changegroup generation calling min() here, according to profiling. The original reasoning for min() being used in 829d369fc5a8 was that, at that point in the series, we were adding almost everything to tmfnodes during the first iteration through the loop , so we needed to avoid sending child directories before parents. Later changes made it so that the child directories were added only when we visited the parent directory (not all of them on the first iteration), so this is no longer necessary - there won't be any child directories in tmfnodes before the parents have been sent. This does mean that the manifests are now exchanged unordered, whereas previously we would essentially do [a, b, b/c, b/c/d, e], we now can send a, b, and e in any order; b/c must still follow b, and b/c/d must still follow b/c. Differential Revision: https://phab.mercurial-scm.org/D1351
Tue, 07 Nov 2017 10:16:53 -0800 bundle: allow bundlerepo to support alternative manifest implementations
Durham Goode <durham@fb.com> [Tue, 07 Nov 2017 10:16:53 -0800] rev 35050
bundle: allow bundlerepo to support alternative manifest implementations With our treemanifest logic, the manifests are no longer transported as part of the changegroup and are no longer stored in a revlog. This means the self.manifestlog line in bundlerepo.filestart no longer calls _constructmanifest, and therefore does not consume the manifest portion of the changegroup, which means filestart is not populated and we result in an infinite loop. The fix is to make filestart aware that self.manifestlog might not consume the changegroup part, and consume it manually if necessary. There's currently no way to test this in core, but our treemanifest extension has tests to cover this. Differential Revision: https://phab.mercurial-scm.org/D1329
Thu, 19 Oct 2017 12:35:47 +0200 obsfate: makes successorsetverb takes the markers as argument
Boris Feld <boris.feld@octobus.net> [Thu, 19 Oct 2017 12:35:47 +0200] rev 35049
obsfate: makes successorsetverb takes the markers as argument Right now, successorsetverb only needs successors to compute the verb. But we will want use additional information (effect-flags and operation) in the near future to compute a better verb. Add the markers parameter now so extensions (like Evolve) could wrap the function and start experimenting around better obsfate verbs. As successorsetverb now takes both successorset and markers parameters, rename it to obsfateverb, successorsetandmarkersverb was too long. Differential Revision: https://phab.mercurial-scm.org/D1191
Tue, 07 Nov 2017 13:48:33 -0800 cmdutil: create dirs for templated cat file output
Ryan McElroy <rmcelroy@fb.com> [Tue, 07 Nov 2017 13:48:33 -0800] rev 35048
cmdutil: create dirs for templated cat file output Previously, the caller was responsible for creating the directory structure of files written out using a path template. This is onerous, especially if the exact filenames are not known upfront, but are being accessed via a matcher. This patch changes things so that hg will attempt to create the appropriate directories before writing the output file. Differential Revision: https://phab.mercurial-scm.org/D1332
Tue, 07 Nov 2017 13:46:15 -0800 cat: test output path behvaior when target path does not exist
Ryan McElroy <rmcelroy@fb.com> [Tue, 07 Nov 2017 13:46:15 -0800] rev 35047
cat: test output path behvaior when target path does not exist In the next patch, we will change the behavior of the cat command to create output file parent directories before attempting to write the output file. This patch documents the current unfortunate behavior. Differential Revision: https://phab.mercurial-scm.org/D1331
Mon, 23 Oct 2017 00:06:49 +0530 py3: handle keyword arguments in hgext/shelve.py
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:06:49 +0530] rev 35046
py3: handle keyword arguments in hgext/shelve.py Differential Revision: https://phab.mercurial-scm.org/D1324
Mon, 23 Oct 2017 00:06:23 +0530 py3: handle keyword arguments in hgext/uncommit.py
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:06:23 +0530] rev 35045
py3: handle keyword arguments in hgext/uncommit.py Differential Revision: https://phab.mercurial-scm.org/D1323
Mon, 23 Oct 2017 00:05:04 +0530 py3: handle keyword arguments in hgext/releasenotes.py
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:05:04 +0530] rev 35044
py3: handle keyword arguments in hgext/releasenotes.py Differential Revision: https://phab.mercurial-scm.org/D1322
Mon, 23 Oct 2017 00:04:47 +0530 py3: handle keyword arguments in hgext/rebase.py
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:04:47 +0530] rev 35043
py3: handle keyword arguments in hgext/rebase.py Differential Revision: https://phab.mercurial-scm.org/D1321
Mon, 23 Oct 2017 00:04:30 +0530 py3: handle keyword arguments in hgext/keyword.py
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:04:30 +0530] rev 35042
py3: handle keyword arguments in hgext/keyword.py Differential Revision: https://phab.mercurial-scm.org/D1320
Mon, 23 Oct 2017 00:04:12 +0530 py3: handle keyword arguments in hgext/journal.py
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:04:12 +0530] rev 35041
py3: handle keyword arguments in hgext/journal.py Differential Revision: https://phab.mercurial-scm.org/D1319
Mon, 23 Oct 2017 00:03:54 +0530 py3: handle keyword arguments in hgext/histedit.py
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:03:54 +0530] rev 35040
py3: handle keyword arguments in hgext/histedit.py Differential Revision: https://phab.mercurial-scm.org/D1318
Mon, 23 Oct 2017 00:03:27 +0530 py3: handle keyword arguments in hgext/hgk.py
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:03:27 +0530] rev 35039
py3: handle keyword arguments in hgext/hgk.py Differential Revision: https://phab.mercurial-scm.org/D1317
Mon, 23 Oct 2017 00:03:08 +0530 py3: handle keyword arguments in hgext/graphlog.py
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:03:08 +0530] rev 35038
py3: handle keyword arguments in hgext/graphlog.py Differential Revision: https://phab.mercurial-scm.org/D1316
Tue, 07 Nov 2017 13:18:49 -0500 merge with stable
Augie Fackler <augie@google.com> [Tue, 07 Nov 2017 13:18:49 -0500] rev 35037
merge with stable
Sat, 21 Oct 2017 17:46:41 +0900 templatekw: add verbosity keyword to select template by -q/-v/--debug flag
Yuya Nishihara <yuya@tcha.org> [Sat, 21 Oct 2017 17:46:41 +0900] rev 35036
templatekw: add verbosity keyword to select template by -q/-v/--debug flag This can be used in conjunction with the ifeq() function.
Sat, 21 Oct 2017 17:31:13 +0900 templatekw: move loadkeyword() to bottom
Yuya Nishihara <yuya@tcha.org> [Sat, 21 Oct 2017 17:31:13 +0900] rev 35035
templatekw: move loadkeyword() to bottom loadkeyword() isn't a template keyword function.
Sat, 21 Oct 2017 17:05:04 +0900 help: hide phaseidx template keyword
Yuya Nishihara <yuya@tcha.org> [Sat, 21 Oct 2017 17:05:04 +0900] rev 35034
help: hide phaseidx template keyword I don't think it's great idea to expose the internal representation of phases. Let's discourage use of the phaseidx keyword.
Mon, 23 Oct 2017 00:02:46 +0530 py3: handle keyword arguments in hgext/gpg.py
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:02:46 +0530] rev 35033
py3: handle keyword arguments in hgext/gpg.py Differential Revision: https://phab.mercurial-scm.org/D1303
Mon, 23 Oct 2017 00:02:28 +0530 py3: handle keyword arguments in hgext/fetch.py
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:02:28 +0530] rev 35032
py3: handle keyword arguments in hgext/fetch.py Differential Revision: https://phab.mercurial-scm.org/D1302
Mon, 23 Oct 2017 00:02:07 +0530 py3: handle keyword arguments in hgext/extdiff.py
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:02:07 +0530] rev 35031
py3: handle keyword arguments in hgext/extdiff.py Differential Revision: https://phab.mercurial-scm.org/D1301
Mon, 23 Oct 2017 00:01:45 +0530 py3: handle keyword arguments in hgext/commitextras.py
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:01:45 +0530] rev 35030
py3: handle keyword arguments in hgext/commitextras.py Differential Revision: https://phab.mercurial-scm.org/D1300
Mon, 23 Oct 2017 00:01:16 +0530 py3: handle keyword arguments in hgext/churn.py
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Oct 2017 00:01:16 +0530] rev 35029
py3: handle keyword arguments in hgext/churn.py Differential Revision: https://phab.mercurial-scm.org/D1299
Sun, 22 Oct 2017 23:53:10 +0530 py3: handle keyword arguments in hgext/children.py
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 22 Oct 2017 23:53:10 +0530] rev 35028
py3: handle keyword arguments in hgext/children.py Differential Revision: https://phab.mercurial-scm.org/D1298
Sun, 22 Oct 2017 23:52:47 +0530 py3: handle keyword arguments in hgext/blackbox.py
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 22 Oct 2017 23:52:47 +0530] rev 35027
py3: handle keyword arguments in hgext/blackbox.py Differential Revision: https://phab.mercurial-scm.org/D1297
Sun, 22 Oct 2017 23:52:22 +0530 py3: handle keyword arguments in hgext/automv.py
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 22 Oct 2017 23:52:22 +0530] rev 35026
py3: handle keyword arguments in hgext/automv.py Differential Revision: https://phab.mercurial-scm.org/D1296
Sun, 22 Oct 2017 23:51:57 +0530 py3: handle keyword arguments in hgext/amend.py
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 22 Oct 2017 23:51:57 +0530] rev 35025
py3: handle keyword arguments in hgext/amend.py Differential Revision: https://phab.mercurial-scm.org/D1295
Thu, 19 Oct 2017 23:13:57 +0900 run-tests: allow automatic test discovery when providing folder as argument
Matthieu Laneuville <matthieu.laneuville@octobus.net> [Thu, 19 Oct 2017 23:13:57 +0900] rev 35024
run-tests: allow automatic test discovery when providing folder as argument Currently `run-tests.py` automatically discovers test only in the current directory if no argument is provided. This patch makes it possible to pass a number of tests and folders as arguments.
Fri, 03 Nov 2017 14:47:37 +0100 revert: do not reverse hunks in interactive when REV is not parent (issue5096)
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 03 Nov 2017 14:47:37 +0100] rev 35023
revert: do not reverse hunks in interactive when REV is not parent (issue5096) And introduce a new "apply" operation verb for this case as suggested in issue5096. This replaces the no longer used "revert" operation. In interactive revert, when reverting to something else that the parent revision, display an "apply this change" message with a diff that is not reversed. The rationale is that `hg revert -i -r REV` will show hunks of the diff from the working directory to REV and prompt the user to select them for applying (to working directory). This contradicts dcc56e10c23b in which it was decided to have the "direction" of prompted hunks reversed. Later on [1], there was a broad consensus (but no decision) towards the "as to be applied direction". Now that --interactive is no longer experimental (5910db5d1913), it's time to switch and thus we drop no longer used "experimental.revertalternateinteractivemode" configuration option. [1]: https://www.mercurial-scm.org/pipermail/mercurial-devel/2016-November/090142.html .. feature:: When interactive revert is run against a revision other than the working directory parent, the diff shown is the diff to *apply* to the working directory, rather than the diff to *discard* from the working copy. This is in line with related user experiences with `git` and appears to be less confusing with `ui.interface=curses`.
Fri, 03 Nov 2017 10:32:38 -0500 merge with stable
Kevin Bullock <kbullock+mercurial@ringworld.org> [Fri, 03 Nov 2017 10:32:38 -0500] rev 35022
merge with stable
Fri, 03 Nov 2017 21:14:57 +0900 run-tests: endswith takes bytes as argument in python3, not str
Matthieu Laneuville <matthieu.laneuville@octobus.net> [Fri, 03 Nov 2017 21:14:57 +0900] rev 35021
run-tests: endswith takes bytes as argument in python3, not str
Sat, 21 Oct 2017 16:50:57 +0900 patch: improve heuristics to not take the word "diff" as header (issue1879)
Yuya Nishihara <yuya@tcha.org> [Sat, 21 Oct 2017 16:50:57 +0900] rev 35020
patch: improve heuristics to not take the word "diff" as header (issue1879) The word "diff" is likely to appear in a commit message. Let's make it less likely by requiring "diff -" for "diff -r" or "diff --git".
Sat, 21 Oct 2017 17:01:20 +0900 rebase: drop --style option
Yuya Nishihara <yuya@tcha.org> [Sat, 21 Oct 2017 17:01:20 +0900] rev 35019
rebase: drop --style option It existed from the very start, but I don't think the rebase command does support log-like templates.
Wed, 02 Aug 2017 13:27:45 +0900 run-tests: $TESTDIR can be something else than $PWD
Matthieu Laneuville <matthieu.laneuville@octobus.net> [Wed, 02 Aug 2017 13:27:45 +0900] rev 35018
run-tests: $TESTDIR can be something else than $PWD $TESTDIR is expected to be the directory were the test lives, and is often used to reference helper functions. However, it is now set to $PWD at test invocation time, so if `run-tests.py` is called from another folder, the test will fail. The solution is to force $TESTDIR to be the base directory of the test itself, irrespective of where the runner is called from.
Wed, 01 Nov 2017 17:08:33 +0100 obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net> [Wed, 01 Nov 2017 17:08:33 +0100] rev 35017
obsolete: activate effect-flag by default Let's activate effect-flag by default as Evolve is experimental and in order to gather feedback from users.
Mon, 30 Oct 2017 17:09:29 +0100 debug: print parsed bundle2 capabilities with debugcapabilities
Boris Feld <boris.feld@octobus.net> [Mon, 30 Oct 2017 17:09:29 +0100] rev 35016
debug: print parsed bundle2 capabilities with debugcapabilities The bundle2 capabilities are hard to read in their encoded form. We parse and print them in a human friendly way.
Mon, 30 Oct 2017 17:08:16 +0100 debug: add a debugcapabilities commands
Boris Feld <boris.feld@octobus.net> [Mon, 30 Oct 2017 17:08:16 +0100] rev 35015
debug: add a debugcapabilities commands This new debugcommand prints the capabilities of any remote in a human friendly way. Improved bundle2 capabilities support will be introduced in the next changesets.
Mon, 30 Oct 2017 17:46:07 -0400 revert: no longer mark --interactive as experimental
Augie Fackler <augie@google.com> [Mon, 30 Oct 2017 17:46:07 -0400] rev 35014
revert: no longer mark --interactive as experimental We seem to have settled down on behavior changes here (nothing matching revset `keyword(revert) and keyword(interactive)` since 4.2 was released), so let's go ahead and advertise this excellent feature. .. feature:: revert --interactive The revert command now accepts the flag --interactive to allow reverting only some of the changes to the specified files.
Wed, 25 Oct 2017 23:01:54 -0400 ui: add configlist doctest to document a bit more of the whitespace behavior
Augie Fackler <augie@google.com> [Wed, 25 Oct 2017 23:01:54 -0400] rev 35013
ui: add configlist doctest to document a bit more of the whitespace behavior I'm surprised this wasn't explicitly tested, so I added a test.
Wed, 01 Nov 2017 17:19:45 -0500 merge stable into default
Kevin Bullock <kbullock+mercurial@ringworld.org> [Wed, 01 Nov 2017 17:19:45 -0500] rev 35012
merge stable into default
Mon, 08 Jan 2018 16:07:51 -0800 test-run-tests: stabilize the test (issue5735) stable
Jun Wu <quark@fb.com> [Mon, 08 Jan 2018 16:07:51 -0800] rev 35011
test-run-tests: stabilize the test (issue5735) Previously there is a race condition because things happen in this order: 1. Check shouldStop 2. If shouldStop is false, print the diff 3. Call fail() -> set shouldStop The check and set should really happen in a same critical section. This patch adds a lock to address the issue. Test Plan: Run `run-tests.py -l test-run-tests.t` 20 times on gcc112 and the race condition does not reproduce. Differential Revision: https://phab.mercurial-scm.org/D1830
(0) -30000 -10000 -3000 -1000 -300 -100 -96 +96 +100 +300 +1000 +3000 +10000 tip