Sat, 19 Apr 2014 14:51:43 -0700 run-tests: remove threadtmp in Test.cleanup()
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 19 Apr 2014 14:51:43 -0700] rev 21310
run-tests: remove threadtmp in Test.cleanup() threadtmp is an implementation detail. We move the cleanup of this directory to Test.cleanup() and make the variable internal. The cleanup function will eventually disappear into unittest machinery.
Sat, 19 Apr 2014 14:47:34 -0700 run-tests: allow Test.run() to run multiple times
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 19 Apr 2014 14:47:34 -0700] rev 21309
run-tests: allow Test.run() to run multiple times Test.run() can now be executed multiple times on the same Test instance. This feature is currently unused and there are no plans to implement it. The main reason for this work was to refactor testtmp, replacements, and env to be run-time specific as opposed to Test instance specific.
Sat, 19 Apr 2014 14:09:46 -0700 run-tests: capture reference output in TestResult class
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 19 Apr 2014 14:09:46 -0700] rev 21308
run-tests: capture reference output in TestResult class
Sat, 19 Apr 2014 14:01:18 -0700 run-tests: give TestResult a skipped attribute
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 19 Apr 2014 14:01:18 -0700] rev 21307
run-tests: give TestResult a skipped attribute
Sat, 19 Apr 2014 18:31:22 -0700 run-tests: pass TestResult into run()
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 19 Apr 2014 18:31:22 -0700] rev 21306
run-tests: pass TestResult into run()
Sat, 19 Apr 2014 13:50:25 -0700 run-tests: capture execution results in a TestResult class
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 19 Apr 2014 13:50:25 -0700] rev 21305
run-tests: capture execution results in a TestResult class Some implementation details of test execution still live outside of Test. These include determining what a result means and cleaning up after the test. To move to the world where more of this logic can live inside Test or a derived object, the logic for test execution needs to be refactored. Specifically, exception trapping and opportunities for result processing need to be moved into Test. This patch starts the process by establishing a TestResult class for holding the results of a test execution. In order to actually use this class, exception trapping and execution time recording needed to be moved into Test.run().
Sat, 19 Apr 2014 13:29:26 -0700 run-tests: clean up temp directory variables
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 19 Apr 2014 13:29:26 -0700] rev 21304
run-tests: clean up temp directory variables testtmp is an implementation detail. It didn't need to be exposed to the world. threadtmp is derived from count. It is now created as part of the constructor and mostly hidden from the outside world.
Sat, 19 Apr 2014 13:26:12 -0700 run-tests: move env into Test
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 19 Apr 2014 13:26:12 -0700] rev 21303
run-tests: move env into Test Environment variables are an implementation detail of how tests are executed. This patch moves environment variable logic into Test and completely hides it from the outside. With this patch, a Test can be executed with two lines: init + run(). Tests are still single-use and take a more arguments to the constructor than likely necessary. These will get addressed in subsequent patches.
Sat, 19 Apr 2014 13:22:52 -0700 run-tests: move killdaemons into Test.run()
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 19 Apr 2014 13:22:52 -0700] rev 21302
run-tests: move killdaemons into Test.run() killdaemons() was the only part of runone() looking at env variables. We move killdaemons() into Test.run() to enable us to fully move env into Test.
Sat, 19 Apr 2014 13:18:55 -0700 run-tests: move replacements and port management into Test
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 19 Apr 2014 13:18:55 -0700] rev 21301
run-tests: move replacements and port management into Test replacements and ports are really implementation details of a Test. They have been moved to instance variables.
Sat, 19 Apr 2014 13:11:49 -0700 run-tests: move createhgrc() call into Test.run()
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 19 Apr 2014 13:11:49 -0700] rev 21300
run-tests: move createhgrc() call into Test.run() createhgrc() is an implementation detail of how tests are run. It makes sense to move it into Test.run(). Note that this will cause the test execution time to include the creation of hgrc. The author does not believe this is a significant change worth worrying about.
Sat, 19 Apr 2014 13:07:05 -0700 run-tests: move createenv() into Test
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 19 Apr 2014 13:07:05 -0700] rev 21299
run-tests: move createenv() into Test createenv() is consulting lots of test-specific variables. It makes sense to attach it to the Test class.
Sat, 19 Apr 2014 13:03:24 -0700 run-tests: move replacements generation into Test
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 19 Apr 2014 13:03:24 -0700] rev 21298
run-tests: move replacements generation into Test The API is a bit funky. Things will look better once all state is captured in Test.
Sat, 19 Apr 2014 12:54:09 -0700 run-tests: move testtmp into Test class
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 19 Apr 2014 12:54:09 -0700] rev 21297
run-tests: move testtmp into Test class This patch starts the process of moving test-specific variables into the Test class. The ultimate goal is to be able to instantiate a Test with minimal arguments and to call run() on it without too much thinking. This will make it much easier to run tests from other contexts. It will also enable things like running a test multiple times.
Sat, 19 Apr 2014 12:26:34 -0700 run-tests: create classes for representing tests
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 19 Apr 2014 12:26:34 -0700] rev 21296
run-tests: create classes for representing tests Currently, the state for an individual test is scattered across a number of functions and variables. This patch begins a process of isolating a single test's state into instances of a class. It does this by establishing a new Test base class and child classes for Python tests and T tests. The class currently has a run() API that proxies into the existing "runner" functions. Upcoming patches will move the logic for each test type into the class.
Wed, 30 Apr 2014 18:40:20 -0700 revsetbenchmark: add `author(mpm) or author(lmoscovicz)` to the canonical list
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Apr 2014 18:40:20 -0700] rev 21295
revsetbenchmark: add `author(mpm) or author(lmoscovicz)` to the canonical list This matters as `author(mpm)` have a lot of matches evenly split in the repo, while `author(lmoscoviz)` have less match (and later). This changes the execution path of the "or" operator a lot.
Tue, 13 May 2014 19:29:45 -0500 filterpyflakes: filter WindowsError unconditionally
Matt Mackall <mpm@selenic.com> [Tue, 13 May 2014 19:29:45 -0500] rev 21294
filterpyflakes: filter WindowsError unconditionally
Tue, 13 May 2014 19:22:40 -0500 filterpyflakes: make memoryview filtering unconditional
Matt Mackall <mpm@selenic.com> [Tue, 13 May 2014 19:22:40 -0500] rev 21293
filterpyflakes: make memoryview filtering unconditional
Tue, 13 May 2014 15:22:36 -0500 py3kcompat: drop unused export
Matt Mackall <mpm@selenic.com> [Tue, 13 May 2014 15:22:36 -0500] rev 21292
py3kcompat: drop unused export
Sat, 10 May 2014 15:22:04 -0700 py3kcompat: don't convert os.environ to bytes
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 10 May 2014 15:22:04 -0700] rev 21291
py3kcompat: don't convert os.environ to bytes os.environ accepts str not bytes. Assigning bytes will result in a run-time error.
Sat, 10 May 2014 14:57:25 -0700 demandimport: pass proper level to __import__ in Python 3
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 10 May 2014 14:57:25 -0700] rev 21290
demandimport: pass proper level to __import__ in Python 3 demandimport was failing in Python 3 with a ValueError because __import__'s level=-1 has gone away (-1 means to try both relative and absolute imports and relative imports don't exist in Python 3). With this patch, demandimport still doesn't work in Python 3 (it fails when importing a non-package module).
Wed, 16 Apr 2014 19:55:40 -0400 help: suggest keyword search when no topic is found
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 16 Apr 2014 19:55:40 -0400] rev 21289
help: suggest keyword search when no topic is found When `hg help foobar` fails, it now suggests using `hg help --keyword foobar` instead of printing a full page of basic commands. This should greatly increases discoverability of the `hg help --keyword` argument.
Wed, 16 Apr 2014 20:01:03 -0400 help: provide a more helpful message when no keyword are matched
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 16 Apr 2014 20:01:03 -0400] rev 21288
help: provide a more helpful message when no keyword are matched Before this changeset, when no topic were matching the provided keyword ( in command such as `hg help --keyword babar`) the output was empty. This is confusing and unhelpful for new users seeking assistance in the help. We now display: $ hg help --keyword babar abort: no matches (try "hg help" for a list of topics) This send users in a new direction where they may find what they are looking for.
Tue, 29 Apr 2014 11:40:42 -0700 revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 29 Apr 2014 11:40:42 -0700] rev 21287
revsetbenchmark: use optparse to retrieve argument We need more flexibility. For example we'll want to run the benchmark on other repository.
Fri, 25 Apr 2014 13:35:31 -0700 revsetbenchmark: add a usage message when no arguments are passed
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 25 Apr 2014 13:35:31 -0700] rev 21286
revsetbenchmark: add a usage message when no arguments are passed This increase the odd someone who didn't wrote will it find out how to use this script.
Tue, 29 Apr 2014 19:15:36 -0700 revsetbenchmark: add `::tip and draft()` to the canonical list
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 29 Apr 2014 19:15:36 -0700] rev 21285
revsetbenchmark: add `::tip and draft()` to the canonical list The want to test element on different side of the iterators.
Mon, 28 Apr 2014 15:14:11 -0700 revset: cosmetic changes in spanset range comparison
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 28 Apr 2014 15:14:11 -0700] rev 21284
revset: cosmetic changes in spanset range comparison We use the python syntax for range comparison: `a < x < c`. This is shorter, more readable and less error prone. This comparison escaped the cleanup make in e2031c8ca4f8
Fri, 25 Apr 2014 23:38:24 -0700 revset: drop spanset._contained
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 25 Apr 2014 23:38:24 -0700] rev 21283
revset: drop spanset._contained All its users inlined it for performance reasons. (See 1d7a2771aa36 and e2031c8ca4f8)
Mon, 05 May 2014 22:47:14 -0700 patchbomb: includes series information in the header
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 05 May 2014 22:47:14 -0700] rev 21282
patchbomb: includes series information in the header We includes information about the series being patch bombed in all email. Two new headers are added: * X-Mercurial-Series-Index: index of the patches in the series (starts at 1) * X-Mercurial-Series-Total: The total number of patches in the series This information is available in the email subject line, but having them formalized in the header will helps automated tools to process patches send with modern mercurial.
Fri, 09 May 2014 13:32:56 -0500 pager: add attend-<command> option
Matt Mackall <mpm@selenic.com> [Fri, 09 May 2014 13:32:56 -0500] rev 21281
pager: add attend-<command> option This lets users override attend settings locally on a command granularity.
Fri, 09 May 2014 13:10:23 -0500 pager: variable reorder
Matt Mackall <mpm@selenic.com> [Fri, 09 May 2014 13:10:23 -0500] rev 21280
pager: variable reorder
Fri, 09 May 2014 13:07:50 -0500 pager: break auto out of command check loop
Matt Mackall <mpm@selenic.com> [Fri, 09 May 2014 13:07:50 -0500] rev 21279
pager: break auto out of command check loop
Fri, 09 May 2014 13:05:52 -0500 pager: break always out of command check loop
Matt Mackall <mpm@selenic.com> [Fri, 09 May 2014 13:05:52 -0500] rev 21278
pager: break always out of command check loop
Fri, 09 May 2014 12:58:53 -0500 pager: break pager invocation out of command check loop
Matt Mackall <mpm@selenic.com> [Fri, 09 May 2014 12:58:53 -0500] rev 21277
pager: break pager invocation out of command check loop
Thu, 08 May 2014 11:11:27 -0500 tests: fix test failure on vfat
Matt Mackall <mpm@selenic.com> [Thu, 08 May 2014 11:11:27 -0500] rev 21276
tests: fix test failure on vfat It can't handle filenames with spaces. We don't have a good hghave test for this, so we wrap it with unix-permissions.
Thu, 08 May 2014 19:45:22 +0200 largefiles: include largefiles when doing log on a directory (issue4241)
Mads Kiilerich <madski@unity3d.com> [Thu, 08 May 2014 19:45:22 +0200] rev 21275
largefiles: include largefiles when doing log on a directory (issue4241) The matchers _files had to include both the real root and the standin version of the root.
Thu, 08 May 2014 14:58:25 +0000 journal: set Abort hint when failing due to an abandoned transaction
Johan Bjork <jbjoerk@gmail.com> [Thu, 08 May 2014 14:58:25 +0000] rev 21274
journal: set Abort hint when failing due to an abandoned transaction
Thu, 08 May 2014 16:37:33 -0700 merge: define conflict marker labels in filemerge()
Durham Goode <durham@fb.com> [Thu, 08 May 2014 16:37:33 -0700] rev 21273
merge: define conflict marker labels in filemerge() Moves the conflict marker definition up to filemerge, so it gets applied to all merge strategies, and so in a future patch we can manipulate the markers.
Thu, 08 May 2014 16:33:06 -0700 merge: prevent simplemerge from mutating label list
Durham Goode <durham@fb.com> [Thu, 08 May 2014 16:33:06 -0700] rev 21272
merge: prevent simplemerge from mutating label list simplemerge was using list.pop() to remove items from the labels list. This mutated the list and made it unusable by other calls (for instance, it might be used in both the premerge and actual merge stages).
Fri, 09 May 2014 08:44:53 +0900 tests: ignore "undefined name 'memoryview'" pyflakes error on earlier Python
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 09 May 2014 08:44:53 +0900] rev 21271
tests: ignore "undefined name 'memoryview'" pyflakes error on earlier Python Before this patch, "test-check-pyflakes.t" shows unexpected "undefined name 'memoryview'" error for "mercurial/util.py" on Python 2.6.x or earlier, because they don't define symbol 'memoryview'. This patch introduces excluding patterns into "filterpyflakes.py" to ignore "undefined name 'memoryview'" pyflakes error on Python 2.6.x or earlier
Fri, 09 May 2014 08:44:53 +0900 mq: eliminate unused variable for test-check-pyflakes.t
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 09 May 2014 08:44:53 +0900] rev 21270
mq: eliminate unused variable for test-check-pyflakes.t "user" in "fold()" has become useless since 49148d7868df.
Tue, 22 Apr 2014 02:09:24 +0200 merge: make debug output slightly more helpful by including message for action
Mads Kiilerich <madski@unity3d.com> [Tue, 22 Apr 2014 02:09:24 +0200] rev 21269
merge: make debug output slightly more helpful by including message for action Make recently introduced messages more useful. Instead of: f1: g f2: m say: f1: remote is newer -> g f2: versions differ -> m
Sun, 13 May 2012 17:45:08 +0200 merge: simplify mergestate iter
Mads Kiilerich <mads@kiilerich.com> [Sun, 13 May 2012 17:45:08 +0200] rev 21268
merge: simplify mergestate iter
Fri, 09 May 2014 14:46:50 -0500 resolve: simplify "finished" message
Matt Mackall <mpm@selenic.com> [Fri, 09 May 2014 14:46:50 -0500] rev 21267
resolve: simplify "finished" message The recently introduced message was: no unresolved files; you may continue your unfinished operation This had three problems: - looks a bit like an error message because it's not saying "we've just resolved the last file" - refers to "unfinished operation", which won't be the case with "update" or "merge" - introduces semicolons to error messages, which is stylistically questionable I've simplified this to: no more unresolved files In the future, if we want to prompt someone to continue a particular operation, we should use a hint style: no more unresolved files (use 'hg graft --continue' to finish grafting)
Fri, 18 Apr 2014 22:19:25 -0700 resolve: print message when no unresolved files remain (issue4214)
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 18 Apr 2014 22:19:25 -0700] rev 21266
resolve: print message when no unresolved files remain (issue4214) When using resolve, users often have to consult with the output of |hg resolve -l| to see if any unresolved files remain. This step is tedious and adds overhead to resolving. This patch will notify a user if there are no unresolved files remaining after executing |hg resolve|:: no unresolved files; you may continue your unfinished operation The patch stops short of telling the user exactly what command should be executed to continue the unfinished operation. That is because this information is not currently captured anywhere. This would make a compelling follow-up feature.
Fri, 18 Apr 2014 18:56:26 -0700 resolve: print warning when no work performed (issue4208)
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 18 Apr 2014 18:56:26 -0700] rev 21265
resolve: print warning when no work performed (issue4208) Previously, if the paths specified as arguments to |hg resolve| were invalid, they were silently ignored and a no-op would ensue. This patch fixes that in some scenarios. If none of the paths specified to |hg resolve| match a path that is in mergestate, a warning will be emitted. Ideally, a warning would be emitted for every path/pattern specified that doesn't match anything. To achieve this would require significant refactoring of the matching subsystem. That work is beyond the scope of this patch series. Something is better than nothing and this patch gets us something.
Fri, 18 Apr 2014 19:08:32 -0700 resolve: abort when not applicable (BC)
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 18 Apr 2014 19:08:32 -0700] rev 21264
resolve: abort when not applicable (BC) The resolve command is only relevant when mergestate is present. This patch will make resolve abort when no mergestate is present. This change will let people know when they are using resolve when they shouldn't be. This change will let people know when their use of resolve doesn't do anything. Previously, |hg resolve -m| would allow mergestate to be created. This patch now forbids that. Strictly speaking, this is backwards incompatible. The author of this patch believes creating mergestate via resolve doesn't make much sense and this side-effect was unintended.
Fri, 18 Apr 2014 18:26:42 -0700 resolve: split test
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 18 Apr 2014 18:26:42 -0700] rev 21263
resolve: split test Part of test-resolve.t is split into multiple tests to create an injection point for new tests that will be added in subsequent patches.
Fri, 18 Apr 2014 18:19:46 -0700 resolve: use early continue and deindent
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 18 Apr 2014 18:19:46 -0700] rev 21262
resolve: use early continue and deindent
Thu, 08 May 2014 16:48:28 -0700 mergestate: consistently set variables to None
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 08 May 2014 16:48:28 -0700] rev 21261
mergestate: consistently set variables to None Some code branches and exceptional circumstances such as empty mergestate files could result in mergestate._local and mergestate._other not being defined or reset to None. These variables are now correctly set to None when they should be.
Wed, 07 May 2014 17:22:34 -0700 changegroup: refactor outgoing logic into a function
Durham Goode <durham@fb.com> [Wed, 07 May 2014 17:22:34 -0700] rev 21260
changegroup: refactor outgoing logic into a function Extensions that add to bundle2 will want to know which commits are outgoing so they can bundle data that is appropriate to those commits. This moves the logic for figuring that out to a separate function so extensions can do the same computation.
Wed, 07 May 2014 17:24:19 -0700 bundle2: fix bundle2 pulling all revs on empty pulls
Durham Goode <durham@fb.com> [Wed, 07 May 2014 17:24:19 -0700] rev 21259
bundle2: fix bundle2 pulling all revs on empty pulls When bundle2 was enabled, if hg pull had no commits to pull, it would print 'no changes found' and then download the entire repository from the server. This was caused by heads and common being set to None, which gets treated as heads=cl.heads() and common=[nullid], which means download the entire repo. Pulling bundles without a changegroup is a valid use case (like if we're just updating bookmarks), so this modifes the bundle code to allow not adding changegroups.
Wed, 07 May 2014 19:26:15 -0700 exchange: fix bad indentation
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 07 May 2014 19:26:15 -0700] rev 21258
exchange: fix bad indentation Those two lines where double indented for no good reasons.
Wed, 07 May 2014 19:28:17 -0700 exchange: propagate arguments to the _getbundleextrapart function
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 07 May 2014 19:28:17 -0700] rev 21257
exchange: propagate arguments to the _getbundleextrapart function The arguments was wrongly propagated (again).
Wed, 07 May 2014 17:20:38 -0700 bundle2: fix configuration name mismatch
Durham Goode <durham@fb.com> [Wed, 07 May 2014 17:20:38 -0700] rev 21256
bundle2: fix configuration name mismatch During pulls bundle2 was checking server.bundle2, but during pushes it was checking experimental.bundle2. This makes them both experimental.bundle2.
Wed, 07 May 2014 17:58:13 -0500 build: initial support for in-tree autobuilding recipes
Matt Mackall <mpm@selenic.com> [Wed, 07 May 2014 17:58:13 -0500] rev 21255
build: initial support for in-tree autobuilding recipes
Sun, 04 May 2014 22:48:07 -0700 tests: declare commands using decorator
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 04 May 2014 22:48:07 -0700] rev 21254
tests: declare commands using decorator
Sun, 04 May 2014 21:33:14 -0700 share: declare commands using decorator
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 04 May 2014 21:33:14 -0700] rev 21253
share: declare commands using decorator
Sun, 04 May 2014 21:52:25 -0700 relink: declare command using decorator
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 04 May 2014 21:52:25 -0700] rev 21252
relink: declare command using decorator
Sun, 04 May 2014 22:35:37 -0700 record: declare commands using decorator
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 04 May 2014 22:35:37 -0700] rev 21251
record: declare commands using decorator
Sun, 04 May 2014 21:31:51 -0700 hgk: declare commands using decorator
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 04 May 2014 21:31:51 -0700] rev 21250
hgk: declare commands using decorator
Sun, 04 May 2014 21:48:10 -0700 color: declare command using decorator
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 04 May 2014 21:48:10 -0700] rev 21249
color: declare command using decorator
Sun, 04 May 2014 21:46:49 -0700 children: declare command using decorator
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 04 May 2014 21:46:49 -0700] rev 21248
children: declare command using decorator
Sun, 04 May 2014 21:48:41 -0700 fetch: declare command using decorator
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 04 May 2014 21:48:41 -0700] rev 21247
fetch: declare command using decorator
(0) -10000 -3000 -1000 -300 -100 -64 +64 +100 +300 +1000 +3000 +10000 +30000 tip