Sat, 15 Feb 2014 16:19:19 +0900 rebase: do not try to reactivate deleted divergent bookmark stable
Yuya Nishihara <yuya@tcha.org> [Sat, 15 Feb 2014 16:19:19 +0900] rev 20523
rebase: do not try to reactivate deleted divergent bookmark If the currently active bookmark is divergent one, it may be resolved during rebase. Trying to activate it will raise "KeyError: 'W@diverge'".
Sat, 15 Feb 2014 22:09:32 -0600 tests: backout 00f2d29308db pid check
Matt Mackall <mpm@selenic.com> [Sat, 15 Feb 2014 22:09:32 -0600] rev 20522
tests: backout 00f2d29308db pid check
Mon, 10 Feb 2014 17:38:43 -0800 revset: changed spanset implementation to take hidden revisions into account
Lucas Moscovicz <lmoscovicz@fb.com> [Mon, 10 Feb 2014 17:38:43 -0800] rev 20521
revset: changed spanset implementation to take hidden revisions into account Hidden revisions are now excluded from the spanset. Now this doesn't break for people using changeset evolution.
Tue, 11 Feb 2014 21:40:33 -0800 template: add 'current' to scope during {bookmarks % ...}
Durham Goode <durham@fb.com> [Tue, 11 Feb 2014 21:40:33 -0800] rev 20520
template: add 'current' to scope during {bookmarks % ...} This adds the keyword 'current' to the template scope when processing a bookmark list. The 'current' keyword resolves to the name of the currently active bookmark in the repo. This allows us to apply special labels to the current bookmark to distinguish it (especially in the case where there are multiple bookmarks on the same commit). Example: "{bookmarks % '{bookmark}{ifeq(bookmark, current, \"*\")} '}" Results in a space separated list of bookmarks where the current bookmark has an asterix.
Tue, 11 Feb 2014 21:04:12 -0800 template: add revset() template function
Durham Goode <durham@fb.com> [Tue, 11 Feb 2014 21:04:12 -0800] rev 20519
template: add revset() template function Adds a template function that executes a revset and returns the list of revisions as the result. It has the signature 'revset(query [, args...])'. The args are optional and are applied to the query string using the standard python string.format(args) pattern. This allows things like: '{revset("parents({0})", rev)}' to produce the parents of each individual commit in the log output. If no args are specified, the revset result is cached for the duration of the templater; so it's better to not use args if performance is a concern. By itself, revset() can be used to print commit parents, print the common ancestor of a commit with the main branch, etc. It can be used with the ifcontains() function to do things like '{ifcontains(rev, revset('.'), label(...), ...)}' to color the working copy parent, to color certain branches, to color draft commits, etc.
Tue, 11 Feb 2014 21:10:00 -0800 template: add ifcontains template function
Durham Goode <durham@fb.com> [Tue, 11 Feb 2014 21:10:00 -0800] rev 20518
template: add ifcontains template function Adds a template function with the signature 'ifcontains(item, set, then[, else])'. It can be used to do things like '{ifcontains('.hgignore', file_mods, label(...), ...)}' to color commits that edit the .hgignore file. A future patch will add the revset() function which will combine with ifcontains to allow us to color commits if they are in the revset.
Thu, 13 Feb 2014 17:34:09 -0800 createmarkers: allow to pass metadata for a marker only
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 13 Feb 2014 17:34:09 -0800] rev 20517
createmarkers: allow to pass metadata for a marker only The `metadata` argument only allow to specify metadata for all new markers. We extension the format of the `relations` argument to support optional metadata argument. The first user of this should be the evolve extension who want to store parent information of pruned changeset in extra (until we make a second version of the format)
Thu, 13 Feb 2014 17:33:45 -0800 obsstore: update create docstring to point to the coder friendly function
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 13 Feb 2014 17:33:45 -0800] rev 20516
obsstore: update create docstring to point to the coder friendly function The `obsstore` class have a `create` method that create new obsolescence marker from node. There is another function in the same module `createmarkers`. This other function is higher level and automatically missing meta data (ultimately calling the first one) We add a new comment in the docstring of `obsstore.create` highlighting that people writing new code probably want to use the top level one.
Sat, 15 Feb 2014 18:40:39 +0900 i18n: check equality of initial indentation between msgid and msgstr
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 15 Feb 2014 18:40:39 +0900] rev 20515
i18n: check equality of initial indentation between msgid and msgstr Document generation by runrst in "doc" directory may succeed silently, even though initial indentation is different between msgid and msgstr: for example, it may be unexpected or missing indentation. This patch adds the checker to check equality of initial indentation between msgid and msgstr. This checker is categorized as "warning" level, because problem detected by this is not so serious for usual Mercurial usage.
Sat, 15 Feb 2014 18:40:39 +0900 i18n: check equality of tail '::'-ness between msgid and msgstr
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 15 Feb 2014 18:40:39 +0900] rev 20514
i18n: check equality of tail '::'-ness between msgid and msgstr Document generation by runrst in "doc" directory may succeed silently, even though there is the translated message missing tail '::'. In this case, it uses "<blockquote>" instead of "<pre>" to surround succeeding text block unexpectedly in generated HTML file. This patch adds the checker to check equality of tail '::'-ness between msgid and msgstr. To detect also msgstr unexpectedly ending with '::', this checker doesn't have matching regexp against msgid, and is applied on all msgid/msgstr pairs. This checker is categorized as "warning" level, because problem detected by this is not so serious for usual Mercurial usage.
Sat, 15 Feb 2014 15:28:32 +0100 run-tests: fix heredoctest for out-of-tree extensions
Patrick Mezard <patrick@mezard.eu> [Sat, 15 Feb 2014 15:28:32 +0100] rev 20513
run-tests: fix heredoctest for out-of-tree extensions heredoctest.py directory must be in python path to use heredoctest (>>>) in out-of-tree extension tests like: $ cd ext/tests $ python /some/hg/install/tests/run-tests.py test-ext.t
Tue, 04 Feb 2014 15:31:57 -0800 revset: added cache to lazysets
Lucas Moscovicz <lmoscovicz@fb.com> [Tue, 04 Feb 2014 15:31:57 -0800] rev 20512
revset: added cache to lazysets This allows __contains__ to return faster when asked for same value twice.
Sat, 15 Feb 2014 19:12:53 -0600 histedit: shorten new fold message
Matt Mackall <mpm@selenic.com> [Sat, 15 Feb 2014 19:12:53 -0600] rev 20511
histedit: shorten new fold message Lots of people, like Mr. Check-Code, insist on using 80-column terminals.
Thu, 13 Feb 2014 08:29:44 +0100 run-tests: unnecessary globs also count as warnings
Simon Heimberg <simohe@besonet.ch> [Thu, 13 Feb 2014 08:29:44 +0100] rev 20510
run-tests: unnecessary globs also count as warnings When a glob is unnecessary, now there's a diff output and 'run-tests.py -i' works for accepting the output. On windows, some tests which have "passed" currently (with some info lines printed) will now be reported as "warned". (I recommend to recognize "warned" by buildbot before applying this patch.)
Thu, 13 Feb 2014 08:27:53 +0100 run-tests: report a test as warned when only missing globs
Simon Heimberg <simohe@besonet.ch> [Thu, 13 Feb 2014 08:27:53 +0100] rev 20509
run-tests: report a test as warned when only missing globs On windows, some test reported as failed will now be reported as "warned".
Thu, 13 Feb 2014 08:26:13 +0100 run-tests: add possibility for test-runners to report a "warned" test result
Simon Heimberg <simohe@besonet.ch> [Thu, 13 Feb 2014 08:26:13 +0100] rev 20508
run-tests: add possibility for test-runners to report a "warned" test result A test result is recognized as "warned" when the test runner returns the exit code False. (False is similar to 0, which is reporting a command has run sucessfully.) The only difference in display is that the failure message while running writes "Warning:" instead of "ERROR:". The diff output is the same as when the test fails. Runing "run-tests.py -i" asks to accept the changed result also for tests reported as "warned". When running tests, a "warned" test would look like this: .. --- xxxx\tests\test-something.t +++ xxxx\tests\test-something.t.err @@ -1279,7 +1279,7 @@ $ echo anything $ hg commit -S -m whatever committing subrepository s - committing subrepository s/sbs + committing subrepository s/sbs (glob) warning: something happened committing subrepository t $ echo something Warning: xxxx\tests\test-sOMETHING.t output changed ~.s...s...s.. Reporting a test result as "warned" will be used in following patches.
Thu, 13 Feb 2014 08:17:39 +0100 run-tests: separate exit code when no failed tests but warned ones
Simon Heimberg <simohe@besonet.ch> [Thu, 13 Feb 2014 08:17:39 +0100] rev 20507
run-tests: separate exit code when no failed tests but warned ones This can be used by buildbot to set the result "warnings" instead of "failed".
Thu, 13 Feb 2014 08:14:54 +0100 run-tests: introduce 'warned' as test result
Simon Heimberg <simohe@besonet.ch> [Thu, 13 Feb 2014 08:14:54 +0100] rev 20506
run-tests: introduce 'warned' as test result While running, a test resulting in 'warned' is shown as '~'. Test results with state warned are listed between the skipped and the failed tests. Example: Skipped test-revert-flags.t: missing feature: executable bit Skipped test-inotify-lookup.t: missing feature: inotify extension support Warned test-something.t: output changed Failed test-largefiles.t: output changed Failed test-subrepo.t: output changed # Ran 11 tests, 2 skipped, 1 warned, 2 failed. The test result "warned" will be used in later patches.
Thu, 13 Feb 2014 08:02:06 +0100 run-tests: handle sys.exit in main function
Simon Heimberg <simohe@besonet.ch> [Thu, 13 Feb 2014 08:02:06 +0100] rev 20505
run-tests: handle sys.exit in main function
Thu, 13 Feb 2014 07:29:28 +0100 run-tests: remove unnecessary variable initialisation
Simon Heimberg <simohe@besonet.ch> [Thu, 13 Feb 2014 07:29:28 +0100] rev 20504
run-tests: remove unnecessary variable initialisation ret is always set before it is used, so remove ret = 0
Thu, 13 Feb 2014 18:05:35 -0800 histedit: clarify description of fold command
Adrian Zgorzałek <adek@fb.com> [Thu, 13 Feb 2014 18:05:35 -0800] rev 20503
histedit: clarify description of fold command N and (N-1) didn't add any information to description of fold. More useful is refering to the commit list as it is displayed in editor.
Fri, 07 Feb 2014 17:24:12 +0100 discovery: make "note: unsynced remote changes!" less serious than a warning
Mads Kiilerich <madski@unity3d.com> [Fri, 07 Feb 2014 17:24:12 +0100] rev 20502
discovery: make "note: unsynced remote changes!" less serious than a warning This situation is not necessarily a problem and do not deserve a warning. It is just some information that can guide the user in understanding what is going on. Making it 'debug' would usually not give the hint when it is relevant so we make it a 'status' message.
Thu, 06 Feb 2014 02:19:38 +0100 discovery: improve "note: unsynced remote changes!" warning
Mads Kiilerich <madski@unity3d.com> [Thu, 06 Feb 2014 02:19:38 +0100] rev 20501
discovery: improve "note: unsynced remote changes!" warning This message frequently caused confusion. "unsynced" is not a well established user-facing concept in Mercurial and the message was not very specific or helpful. Instead, show a message like: remote has heads on branch 'default' that are not known locally: 6c0482d977a3 This message will also (when relevant) be shown before aborting on "push creates new remote head". A similar (but actually very different) message was addressed in 6b618aa08b6e.
Tue, 11 Feb 2014 16:52:36 -0800 import: move tryone closure in cmdutil
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 11 Feb 2014 16:52:36 -0800] rev 20500
import: move tryone closure in cmdutil We extract the `tryone` function into the `cmdutil` module. A lot of the command context have to be passed to the utility function, but having and explicit declaration will allow extension to wrap it. This will allows use to make changeset evolution related experiment in dedicated extension. Improving the API of this function is noble goal but outside of the scope of this patches.
Thu, 13 Feb 2014 14:04:47 -0800 revset: optimize missing ancestor expressions
Siddharth Agarwal <sid0@fb.com> [Thu, 13 Feb 2014 14:04:47 -0800] rev 20499
revset: optimize missing ancestor expressions A missing ancestor expression is any expression of the form (::x - ::y) or equivalent. Such expressions are remarkably common, and so far have involved multiple walks down the DAG, followed by a set difference operation. With this patch, such expressions will be transformed into uses of the fast algorithm at ancestor.missingancestor. For a repository with over 600,000 revisions, perfrevset for '::tip - ::-10000' returns: Before: ! wall 3.999575 comb 4.000000 user 3.910000 sys 0.090000 (best of 3) After: ! wall 0.132423 comb 0.130000 user 0.130000 sys 0.000000 (best of 75)
Thu, 13 Feb 2014 13:54:45 -0800 revset: add an undocumented _missingancestors function
Siddharth Agarwal <sid0@fb.com> [Thu, 13 Feb 2014 13:54:45 -0800] rev 20498
revset: add an undocumented _missingancestors function This will be used in an upcoming patch to optimize expressions of the form (::x - ::y).
Thu, 13 Feb 2014 13:52:45 -0800 commands.debugrevspec: add an option to print the optimized expression tree
Siddharth Agarwal <sid0@fb.com> [Thu, 13 Feb 2014 13:52:45 -0800] rev 20497
commands.debugrevspec: add an option to print the optimized expression tree This will be used in an upcoming patch to test that the optimizer works.
Wed, 12 Feb 2014 16:09:18 +0100 tests: killdaemons.py for windows distinguishes access violation and terminated
Simon Heimberg <simohe@besonet.ch> [Wed, 12 Feb 2014 16:09:18 +0100] rev 20496
tests: killdaemons.py for windows distinguishes access violation and terminated To distinguish between access violaition (process belonging to another user) and a terminated process, PROCESS_QUERY_INFORMATION must be enabled. But TerminateProcess still raises error 5 in both cases. Therefore check before if the process has already terminated.
Wed, 12 Feb 2014 15:38:59 +0100 tests: killdaemons.py for checks reason when getting no process handle
Simon Heimberg <simohe@besonet.ch> [Wed, 12 Feb 2014 15:38:59 +0100] rev 20495
tests: killdaemons.py for checks reason when getting no process handle
Fri, 17 Jan 2014 21:13:20 +0100 tests: killdaemons.py for windows waits for killed process to terminate
Simon Heimberg <simohe@besonet.ch> [Fri, 17 Jan 2014 21:13:20 +0100] rev 20494
tests: killdaemons.py for windows waits for killed process to terminate After kill, wait for the process to terminate. When it does not in time, write a debug message similar as in other os. But no 2nd forceful attempt is done.
Fri, 17 Jan 2014 21:13:08 +0100 tests: kill for windows in killdaemons.py checks return values
Simon Heimberg <simohe@besonet.ch> [Fri, 17 Jan 2014 21:13:08 +0100] rev 20493
tests: kill for windows in killdaemons.py checks return values The return values of the windll calls are checked and when an error is indicated, it is raised. The handle is still closed properly.
Thu, 13 Feb 2014 15:33:24 -0600 merge with crew
Matt Mackall <mpm@selenic.com> [Thu, 13 Feb 2014 15:33:24 -0600] rev 20492
merge with crew
(0) -10000 -3000 -1000 -300 -100 -50 -32 +32 +50 +100 +300 +1000 +3000 +10000 +30000 tip