Thu, 20 Feb 2014 02:38:36 +0100 util: debugstacktrace, flush before and after writing
Mads Kiilerich <madski@unity3d.com> [Thu, 20 Feb 2014 02:38:36 +0100] rev 20542
util: debugstacktrace, flush before and after writing Close another stream (default stdout, which often is buffered) before writing to the primary stream (default stderr, which often is unbuffered). The primary stream is also flushed after writing (in case it is buffered). This fixes non-deterministic output order, especially on windows.
Wed, 19 Feb 2014 21:32:14 -0800 run-tests.py: work when --with-hg is set to system hg
Siddharth Agarwal <sid0@fb.com> [Wed, 19 Feb 2014 21:32:14 -0800] rev 20541
run-tests.py: work when --with-hg is set to system hg Previously we'd always assume that --with-hg is a script in a user directory, and would write out a 'python' symlink to the same location. That didn't work if --with-hg was set to a system installation of hg, e.g. /usr/bin/hg. Introduce a TMPBINDIR directory which is used to write out the python symlink.
Wed, 12 Feb 2014 18:45:49 -0800 revset: added cached generated list on generatorset
Lucas Moscovicz <lmoscovicz@fb.com> [Wed, 12 Feb 2014 18:45:49 -0800] rev 20540
revset: added cached generated list on generatorset This allows to iterate the generatorset more than once.
Thu, 20 Feb 2014 00:46:13 -0600 templater: shorten pure integers
Sean Farley <sean.michael.farley@gmail.com> [Thu, 20 Feb 2014 00:46:13 -0600] rev 20539
templater: shorten pure integers Originally, the addition of the 'shorten' template function in 9c6b86dd2ed2 would not consider pure integers for shortening. This patch considers two simple cases: when the integer starts with zero (which is parsed by Mercurial as a hash first) and when the integer is larger than the tip (obviously not a rev).
Fri, 21 Feb 2014 13:16:17 -0800 revset: fixed bug where log -f was taking too long to return
Lucas Moscovicz <lmoscovicz@fb.com> [Fri, 21 Feb 2014 13:16:17 -0800] rev 20538
revset: fixed bug where log -f was taking too long to return
Thu, 20 Feb 2014 16:12:27 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 20 Feb 2014 16:12:27 -0600] rev 20537
merge with stable
Wed, 05 Feb 2014 15:23:11 -0800 revset: added generatorset class with cached __contains__ method
Lucas Moscovicz <lmoscovicz@fb.com> [Wed, 05 Feb 2014 15:23:11 -0800] rev 20536
revset: added generatorset class with cached __contains__ method
Wed, 19 Feb 2014 13:11:24 -0800 pathencode: eliminate signed integer warnings stable
Danek Duvall <danek.duvall@oracle.com> [Wed, 19 Feb 2014 13:11:24 -0800] rev 20535
pathencode: eliminate signed integer warnings Compiling mercurial with the Sun Studio compiler gives seven copies of the following warning on pathencode.c: line 533: warning: initializer will be sign-extended: -1 Using explicit unsigned literals silences it.
Wed, 19 Feb 2014 12:56:41 -0800 revset: changed last implementation to use lazy classes
Lucas Moscovicz <lmoscovicz@fb.com> [Wed, 19 Feb 2014 12:56:41 -0800] rev 20534
revset: changed last implementation to use lazy classes Instead of using getitem just reverse the revision list and get the first 'lim' elements. With classes like spanset which are easily reversible this will work faster. Performance Benchmarking: $ time hg log -qr "last(all())" ... real 0m0.569s user 0m0.447s sys 0m0.122s $ time ./hg log -qr "last(all())" ... real 0m0.215s user 0m0.150s sys 0m0.063s
Wed, 19 Feb 2014 16:46:47 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 19 Feb 2014 16:46:47 -0600] rev 20533
merge with stable
Wed, 19 Feb 2014 13:25:28 +0100 help: remove last occurrences of ".. note::" without two newlines
Simon Heimberg <simohe@besonet.ch> [Wed, 19 Feb 2014 13:25:28 +0100] rev 20532
help: remove last occurrences of ".. note::" without two newlines When we add two newlines after ".. note::" translators will not see this entry. And all versions of docutils interpret this paragraph correctly (details in de16c673455b).
Tue, 18 Feb 2014 14:48:56 -0800 help: add ifcontains, revset, and shortest to template help
Durham Goode <durham@fb.com> [Tue, 18 Feb 2014 14:48:56 -0800] rev 20531
help: add ifcontains, revset, and shortest to template help Adds help information to the template help doc. Mentions ifcontains, revset, shortest, and current in bookmarks.
Wed, 19 Feb 2014 22:19:45 +0900 verify: do not prevent verify repository containing hidden changesets stable
Yuya Nishihara <yuya@tcha.org> [Wed, 19 Feb 2014 22:19:45 +0900] rev 20530
verify: do not prevent verify repository containing hidden changesets Since a959f7167077, repo.cancopy() cannot be used to check if the repo is a bundlerepository. repo.url() should always have "scheme:", so it isn't necessary to parse by util.url().
Wed, 19 Feb 2014 21:16:43 +0900 hgweb: make sure sys module is loaded prior to reload hack stable
Yuya Nishihara <yuya@tcha.org> [Wed, 19 Feb 2014 21:16:43 +0900] rev 20529
hgweb: make sure sys module is loaded prior to reload hack If sys is still a demandmod, reload(sys) fails with "TypeError: reload() argument must be module".
Thu, 17 Oct 2013 13:27:17 +0900 win32: improve the performance of win32.unlink() over CIFS
Kaz Nishimura <kazssym@vx68k.org> [Thu, 17 Oct 2013 13:27:17 +0900] rev 20528
win32: improve the performance of win32.unlink() over CIFS Emulating POSIX unlink() behavior with os.rename() and os.unlink() is often slow especially over CIFS from Windows clients due to its protocol overhead. This patch changes win32.unlink() to try first an exclusive open with the Win32 delete-on-close flag, and if a sharing violation is detected, to fall back to the original emulation. This patch also removes a test with os.path.isdir() since we expect opening a directory shall fail as os.unlink() would. Example measurements (repeated 3-times after 1-time calibration): (Without this patch: hg update from null to default) 127 files updated, 0 files merged, 0 files removed, 0 files unresolved time: real 19.871 secs (user 0.328+0.000 sys 1.794+0.000) time: real 19.622 secs (user 0.312+0.000 sys 2.044+0.000) time: real 19.138 secs (user 0.250+0.000 sys 1.872+0.000) (Without this patch: hg update from default to null) 0 files updated, 0 files merged, 127 files removed, 0 files unresolved time: real 35.158 secs (user 0.156+0.000 sys 2.512+0.000) time: real 35.272 secs (user 0.250+0.000 sys 2.512+0.000) time: real 36.569 secs (user 0.203+0.000 sys 2.387+0.000) (With this patch: hg update from null to default) 127 files updated, 0 files merged, 0 files removed, 0 files unresolved time: real 17.893 secs (user 0.328+0.000 sys 1.700+0.000) time: real 18.512 secs (user 0.265+0.000 sys 1.529+0.000) time: real 20.238 secs (user 0.312+0.000 sys 1.685+0.000) (With this patch: hg update from default to null) 0 files updated, 0 files merged, 127 files removed, 0 files unresolved time: real 12.312 secs (user 0.250+0.000 sys 0.811+0.000) time: real 12.471 secs (user 0.156+0.000 sys 0.889+0.000) time: real 9.727 secs (user 0.125+0.000 sys 0.858+0.000)
Tue, 18 Feb 2014 15:54:46 -0800 revset: changed mfunc and getset to work with old style revset methods
Lucas Moscovicz <lmoscovicz@fb.com> [Tue, 18 Feb 2014 15:54:46 -0800] rev 20527
revset: changed mfunc and getset to work with old style revset methods Now extensions shouldn't break when adding new revsets.
Mon, 03 Feb 2014 10:15:15 -0800 revset: changed revsets to use spanset
Lucas Moscovicz <lmoscovicz@fb.com> [Mon, 03 Feb 2014 10:15:15 -0800] rev 20526
revset: changed revsets to use spanset Performance Benchmarking: $ hg perfrevset "first(all())" ! wall 0.304936 comb 0.300000 user 0.280000 sys 0.020000 (best of 33) $ ./hg perfrevset "first(all())" ! wall 0.175640 comb 0.180000 user 0.160000 sys 0.020000 (best of 56)
Tue, 18 Feb 2014 11:38:03 -0800 revset: changed spanset to take a repo argument
Lucas Moscovicz <lmoscovicz@fb.com> [Tue, 18 Feb 2014 11:38:03 -0800] rev 20525
revset: changed spanset to take a repo argument This way, we can have by default the length of the repo as the end argument and less code has to be aware of hidden revisions.
Mon, 17 Feb 2014 14:49:56 -0600 journal: report parsing errors on recover/rollback (issue4172)
Matt Mackall <mpm@selenic.com> [Mon, 17 Feb 2014 14:49:56 -0600] rev 20524
journal: report parsing errors on recover/rollback (issue4172)
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
(0) -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 +30000 tip