Wed, 06 Apr 2016 20:31:31 +0000 pycompat: add util.stringio to handle py3 divergence
timeless <timeless@mozdev.org> [Wed, 06 Apr 2016 20:31:31 +0000] rev 28835
pycompat: add util.stringio to handle py3 divergence util.stringio = cStringIO.StringIO / io.StringIO
Wed, 06 Apr 2016 22:35:52 +0000 pycompat: alias xrange to range in py3
timeless <timeless@mozdev.org> [Wed, 06 Apr 2016 22:35:52 +0000] rev 28834
pycompat: alias xrange to range in py3
Fri, 08 Apr 2016 14:03:05 +0000 pycompat: fix demand import handling of Queue
timeless <timeless@mozdev.org> [Fri, 08 Apr 2016 14:03:05 +0000] rev 28833
pycompat: fix demand import handling of Queue When demandimport is enabled, simply importing a non existent module does not trigger ImportError, a property access is necessary.
Tue, 29 Mar 2016 17:43:23 +0000 util: use __code__ (available since py2.6)
timeless <timeless@mozdev.org> [Tue, 29 Mar 2016 17:43:23 +0000] rev 28832
util: use __code__ (available since py2.6)
Sun, 03 Apr 2016 11:20:50 +0900 templater: give better error message for invalid engine type
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 11:20:50 +0900] rev 28831
templater: give better error message for invalid engine type Before, KeyError was caught at changeset_templater._show(), which said "no key named '%s'" as it was intended to catch the KeyError of unknown map key. Instead, we should catch KeyError explicitly for better error indication. For those who don't know what the template engine is (read "everyone"), it is hidden extension feature that allows switching template syntax in map file. See d8c5a7f25a40 for details.
Thu, 07 Apr 2016 14:10:49 -0700 transaction: allow running file generators after finalizers
Durham Goode <durham@fb.com> [Thu, 07 Apr 2016 14:10:49 -0700] rev 28830
transaction: allow running file generators after finalizers Previously, transaction.close would run the file generators before running the finalizers (see the list below for what is in each). Since file generators contain the bookmarks and the dirstate, this meant we made the dirstate and bookmarks visible to external readers before we actually wrote the commits into the changelog, which could result in missing bookmarks and missing working copy parents (especially on servers with high commit throughput, since pulls might fail to see certain bookmarks in this situation). By moving the changelog writing to be before the bookmark/dirstate writing, we ensure the commits are present before they are referenced. This implementation allows certain file generators to be after the finalizers. We didn't want to move all of the generators, since it's important that things like phases actually run before the finalizers (otherwise you could expose commits as public when they really shouldn't be). For reference, file generators currently consist of: bookmarks, dirstate, and phases. Finalizers currently consist of: changelog, revbranchcache, and fncache.
Thu, 07 Apr 2016 11:11:55 +0000 run-tests: move install.err into test area
timeless <timeless@mozdev.org> [Thu, 07 Apr 2016 11:11:55 +0000] rev 28829
run-tests: move install.err into test area Without this, sometimes installerrs generated errors about no such file. It also did not work well when you had multiple tests runners running around. It also did not make sense to pollute the repository test directory with the log file.
Fri, 08 Apr 2016 18:35:49 +0000 help: report source of aliases
timeless <timeless@mozdev.org> [Fri, 08 Apr 2016 18:35:49 +0000] rev 28828
help: report source of aliases
Fri, 08 Apr 2016 16:05:52 +0000 compact: add color labels to -Tcompact
timeless <timeless@mozdev.org> [Fri, 08 Apr 2016 16:05:52 +0000] rev 28827
compact: add color labels to -Tcompact
Fri, 08 Apr 2016 22:15:06 +0200 util: fix doc for datestr()
Adrian Buehlmann <adrian@cadifra.com> [Fri, 08 Apr 2016 22:15:06 +0200] rev 28826
util: fix doc for datestr() timezone parameter was removed with c3182eeb70ea
Fri, 08 Apr 2016 14:11:03 +0200 date: reallow negative timestamp, fix for Windows buggy gmtime() (issue2513)
Florent Gallaire <fgallaire@gmail.com> [Fri, 08 Apr 2016 14:11:03 +0200] rev 28825
date: reallow negative timestamp, fix for Windows buggy gmtime() (issue2513) DVCS are very useful to store various texts (as legislation) written before Unix epoch. Fri, 13 Dec 1901 is a nice gain over Thu, 01 Jan 1970. Revert dd24f3e7ca9e and e1002cf9fe54, fix c208dcd0f709. Add tests.
Wed, 06 Apr 2016 19:08:04 +0000 tests: use /usr/bin/env python for test-status-inprocess.py
timeless <timeless@mozdev.org> [Wed, 06 Apr 2016 19:08:04 +0000] rev 28824
tests: use /usr/bin/env python for test-status-inprocess.py everyone else uses it, and the next commit will add a rule for it
Wed, 06 Apr 2016 22:26:47 -0400 run-tests: fix broken regular expression
Augie Fackler <augie@google.com> [Wed, 06 Apr 2016 22:26:47 -0400] rev 28823
run-tests: fix broken regular expression The regular expression in use passed tests because the test repo only has single-digit changesets present. When I tried to use this for real today, it broke, because the regular expression would only match a single digit. https://xkcd.com/1171/, or something like that.
Tue, 05 Apr 2016 12:19:45 -0700 test: don't rely on __del__ in test-devel-warnings.t
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 05 Apr 2016 12:19:45 -0700] rev 28822
test: don't rely on __del__ in test-devel-warnings.t Whatever the future of __del__ in Mercurial is, that devel-warning test is not about testing the automatic transaction rollback and we should explicitly call release. This change make this tests pass with pypy, as pypy try less hard to call __del__ at program exit.
Tue, 05 Apr 2016 20:01:23 +0100 dispatch: split out warning message generation to separate function
Martijn Pieters <mjpieters@fb.com> [Tue, 05 Apr 2016 20:01:23 +0100] rev 28821
dispatch: split out warning message generation to separate function Allow for patching warning message generation, or for patching out the ui.log / ui.warn behaviour (but still generate the warning message).
Wed, 06 Apr 2016 20:08:18 +0000 check-code: reject import Queue, suggest util.queue class for py3 compat
timeless <timeless@mozdev.org> [Wed, 06 Apr 2016 20:08:18 +0000] rev 28820
check-code: reject import Queue, suggest util.queue class for py3 compat
Wed, 06 Apr 2016 20:07:51 +0000 scmutil: use util.queue/util.empty for py3 compat
timeless <timeless@mozdev.org> [Wed, 06 Apr 2016 20:07:51 +0000] rev 28819
scmutil: use util.queue/util.empty for py3 compat
Wed, 06 Apr 2016 20:00:49 +0000 pycompat: add empty and queue to handle py3 divergence
timeless <timeless@mozdev.org> [Wed, 06 Apr 2016 20:00:49 +0000] rev 28818
pycompat: add empty and queue to handle py3 divergence While the pycompat module will actually handle divergence, please access these properties from the util module: util.queue = Queue.Queue / queue.Queue util.empty = Queue.Empty / queue.Empty
Mon, 04 Apr 2016 15:39:13 +0200 convert: kill dead code
Julien Cristau <julien.cristau@logilab.fr> [Mon, 04 Apr 2016 15:39:13 +0200] rev 28817
convert: kill dead code gitread is unused with the new commandline-based code.
Mon, 04 Apr 2016 15:38:48 +0200 convert: don't ignore errors from git diff-tree
Julien Cristau <julien.cristau@logilab.fr> [Mon, 04 Apr 2016 15:38:48 +0200] rev 28816
convert: don't ignore errors from git diff-tree
Wed, 06 Apr 2016 18:19:36 +0000 crecord: check for untracked arguments
timeless <timeless@mozdev.org> [Wed, 06 Apr 2016 18:19:36 +0000] rev 28815
crecord: check for untracked arguments hg commit tracked untracked -- fails complaining about untracked prior to this commit, hg commit -i tracked untracked -- did not fail This is corrected by calling the refactored localrepo.checkcommitpatterns
Wed, 06 Apr 2016 18:08:38 +0000 localrepo: drop force check from checkcommitpatterns
timeless <timeless@mozdev.org> [Wed, 06 Apr 2016 18:08:38 +0000] rev 28814
localrepo: drop force check from checkcommitpatterns It was retained to make the code movement clearer
Wed, 06 Apr 2016 17:52:17 +0000 localrepo: refactor commit argument check as checkcommitpatterns
timeless <timeless@mozdev.org> [Wed, 06 Apr 2016 17:52:17 +0000] rev 28813
localrepo: refactor commit argument check as checkcommitpatterns
Tue, 05 Apr 2016 04:26:20 +0000 run-tests: handle empty tests
timeless <timeless@mozdev.org> [Tue, 05 Apr 2016 04:26:20 +0000] rev 28812
run-tests: handle empty tests
Tue, 12 Jan 2016 09:30:57 +0000 docchecker: try to reject single quotes
timeless <timeless@mozdev.org> [Tue, 12 Jan 2016 09:30:57 +0000] rev 28811
docchecker: try to reject single quotes
Thu, 03 Mar 2016 03:32:44 +0000 docchecker: report context line at most once
timeless <timeless@mozdev.org> [Thu, 03 Mar 2016 03:32:44 +0000] rev 28810
docchecker: report context line at most once
Wed, 06 Jan 2016 20:45:50 +0000 tests: splitting test-gendoc.t into per file tests
timeless <timeless@mozdev.org> [Wed, 06 Jan 2016 20:45:50 +0000] rev 28809
tests: splitting test-gendoc.t into per file tests Localizers can now run test-gendoc-$LOCALE.t instead of test-gendoc.t. After this change, test-gendoc.t only checks whether there is *some* localization for the expected set of languages and no others. Whenever a locale i18n/$LOCALE.po is added, someone needs to add test-gendoc-$LOCALE.t
Tue, 05 Apr 2016 23:21:17 +0900 test-hgweb-auth: stop direct symbol import of mercurial.error.Abort
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:21:17 +0900] rev 28808
test-hgweb-auth: stop direct symbol import of mercurial.error.Abort
Tue, 05 Apr 2016 23:20:04 +0900 test-hgweb-auth: alias ui as uimod
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:20:04 +0900] rev 28807
test-hgweb-auth: alias ui as uimod
Tue, 05 Apr 2016 23:18:52 +0900 test-hg-parseurl: stop direct symbol import of mercurial.hg.parseurl
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:18:52 +0900] rev 28806
test-hg-parseurl: stop direct symbol import of mercurial.hg.parseurl
Tue, 05 Apr 2016 23:17:43 +0900 test-filelog: alias ui as uimod
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:17:43 +0900] rev 28805
test-filelog: alias ui as uimod
Tue, 05 Apr 2016 23:17:05 +0900 test-duplicateoptions: alias ui as uimod
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:17:05 +0900] rev 28804
test-duplicateoptions: alias ui as uimod
Tue, 05 Apr 2016 23:16:16 +0900 test-filecache: alias ui as uimod
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:16:16 +0900] rev 28803
test-filecache: alias ui as uimod
Tue, 05 Apr 2016 23:15:49 +0900 test-filecache: sort import lines
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:15:49 +0900] rev 28802
test-filecache: sort import lines
Tue, 05 Apr 2016 23:13:52 +0900 test-ctxmanager: stop direct symbol import of mercurial.util
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:13:52 +0900] rev 28801
test-ctxmanager: stop direct symbol import of mercurial.util
Tue, 05 Apr 2016 23:10:13 +0900 test-batching: stop direct symbol import of mercurial modules
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:10:13 +0900] rev 28800
test-batching: stop direct symbol import of mercurial modules Silences future errors reported by import-checker.py.
Wed, 06 Jan 2016 17:18:18 +0000 children: use double quotes for arguments
timeless <timeless@mozdev.org> [Wed, 06 Jan 2016 17:18:18 +0000] rev 28799
children: use double quotes for arguments You can't use single quotes in cmd.exe. See be7ef03d7fb6.
Tue, 12 Jan 2016 09:30:39 +0000 largefiles: use double quotes for arguments
timeless <timeless@mozdev.org> [Tue, 12 Jan 2016 09:30:39 +0000] rev 28798
largefiles: use double quotes for arguments You can't use single quotes in cmd.exe. See be7ef03d7fb6.
Tue, 12 Jan 2016 09:30:24 +0000 graft: use double quotes for arguments
timeless <timeless@mozdev.org> [Tue, 12 Jan 2016 09:30:24 +0000] rev 28797
graft: use double quotes for arguments You can't use single quotes in cmd.exe. See be7ef03d7fb6.
Mon, 04 Apr 2016 06:27:12 +0000 hghave: add cvsnt
timeless <timeless@mozdev.org> [Mon, 04 Apr 2016 06:27:12 +0000] rev 28796
hghave: add cvsnt cvsnt is a maintained commercial fork of cvs https://en.wikipedia.org/wiki/CVSNT It is possible to build a version of it from sources (github), it requires libpcre and libltdl (libtool). We already have a test that relates to cvsnt: test-convert-cvsnt-mergepoints.t cvsnt installs: cvs, cvslockd, cvsnt, cvsscript I think we should definitely have a check for cvsnt because it makes the version checks for cvs make a lot more sense. When I use the version I built, cvs --version says: """ Concurrent Versions System (CVSNT) 2.5.05 (Gan) Build 3744 (Suite) (client/server) CVSNT 2.5.05 (Apr 4 2016) Copyright (c) 2008 March Hare Software Ltd. see http://www.march-hare.com/cvspro CVS Copyright (c) 1989-2001 Brian Berliner, david d `zoo' zuhn, Jeff Polk, and other authors CVSNT Copyright (c) 1999-2008 Tony Hoyle and others see http://www.cvsnt.org Commercial support and training provided by March Hare Software Ltd. see http://www.march-hare.com/cvspro CVSNT may be copied only under the terms of the GNU General Public License v2, a copy of which can be found with the CVS distribution. The CVSNT Application API is licensed under the terms of the GNU Library (or Lesser) General Public License. Specify the --help option for further information about CVS """
Fri, 01 Apr 2016 15:12:50 -0700 commands: allow debugobsolete to delete arbitrary obsmarkers
Kostia Balytskyi <ikostia@fb.com> [Fri, 01 Apr 2016 15:12:50 -0700] rev 28795
commands: allow debugobsolete to delete arbitrary obsmarkers Sample usage is: '$ hg debugobsolete --delete 0 5' This is a debug feature that will help people working on evolution and obsolescense.
Fri, 01 Apr 2016 15:20:31 -0700 commands: disallow 'hg debugobsolete --index --rev <smth>'
Kostia Balytskyi <ikostia@fb.com> [Fri, 01 Apr 2016 15:20:31 -0700] rev 28794
commands: disallow 'hg debugobsolete --index --rev <smth>' A bug in the original --index implementation. The goal of --index is to allow unique obsmarker identification that would be consistent between invocations of this command in the unchanged repo. Further goal is to use this index to delete arbitrary obsmarkers. So calling --index together with --rev would cause obsmarker indices to be different than just calling --index. This is not desired and current pattern for getting the index of an interesting obsmarker is: `$ hg debugobsolete --index | grep <interesting hash>`. It would clearly be better if we could somehow compute a hash of an obsmarker and use it to identify the one we want to delete, but it seems a bit too heavy for our current goals, so we can do this later if we want.
Tue, 05 Apr 2016 18:10:33 +0100 mercurial: add editorconfig
Jun Wu <quark@fb.com> [Tue, 05 Apr 2016 18:10:33 +0100] rev 28793
mercurial: add editorconfig Editorconfig (http://editorconfig.org/) is a file format helping define coding styles like spaces, tabs etc. It supports a wide range of editors. Some well- known projects like ruby and zsh are using it already. This patch adds a simple .editorconfig, making it clear we use 8-char tabs in C code, 4-char spaces in Python code, and we don't keep trailing spaces.
Tue, 05 Apr 2016 10:43:43 -0400 parsers: fix istat macro to work with single line if statement
Matt Fowles <matt.fowles@gmail.com> [Tue, 05 Apr 2016 10:43:43 -0400] rev 28792
parsers: fix istat macro to work with single line if statement
Tue, 05 Apr 2016 14:44:18 +0300 pypy: fix setdiscovery test
Maciej Fijalkowski <fijall@gmail.com> [Tue, 05 Apr 2016 14:44:18 +0300] rev 28791
pypy: fix setdiscovery test This test relies on the exact details of random.sample given the seed. Things work a bit differently under pypy, make the test less specific.
Tue, 05 Apr 2016 17:43:02 +0100 chg: wrap line at 80 chars
Jun Wu <quark@fb.com> [Tue, 05 Apr 2016 17:43:02 +0100] rev 28790
chg: wrap line at 80 chars This is a style fix. I was using tabstop=4 for some early patches, although I realized we use tabstop=8 later but these early style issues remains. Let's fix them.
Tue, 05 Apr 2016 15:16:01 +0100 chg: replace abortmsg showing errno with abortmsgerrno
Jun Wu <quark@fb.com> [Tue, 05 Apr 2016 15:16:01 +0100] rev 28789
chg: replace abortmsg showing errno with abortmsgerrno Since we have abortmsgerrno now, use it to show human friendly error messages across platforms.
Tue, 05 Apr 2016 17:25:39 +0100 chg: add util function abortmsgerrno to print error with errno
Jun Wu <quark@fb.com> [Tue, 05 Apr 2016 17:25:39 +0100] rev 28788
chg: add util function abortmsgerrno to print error with errno It's common to abortmsg with the errno information. Let's make a utility function for it.
Tue, 05 Apr 2016 14:48:09 +0100 chg: use color in debug/error messages conditionally
Jun Wu <quark@fb.com> [Tue, 05 Apr 2016 14:48:09 +0100] rev 28787
chg: use color in debug/error messages conditionally Before this patch, chg always uses color in its debugmsg and abortmsg and there is no way to turn it off. This patch adds a global flag to control whether chg should use color or not and only enables it when stderr is a tty and HGPLAIN is not set.
Mon, 04 Apr 2016 17:45:54 -0700 revset: force ascending order for baseset initialized from a set
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 04 Apr 2016 17:45:54 -0700] rev 28786
revset: force ascending order for baseset initialized from a set It is possible to initialize a baseset directly from a set object. However, in this case the iteration order was inherited from the set. Set have undefined iteration order (especially cpython and pypy will have different one) so we should not rely on it anywhere. Therefor we declare the baseset "ascending" to enforce a consistent iteration order. The sorting is done lazily by the baseset class and should have no performance impact when it does not matter. This makes test-revset.t pass with pypy.
Mon, 04 Apr 2016 17:45:15 -0700 revset: stabilize repr of baseset initialized with a set
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 04 Apr 2016 17:45:15 -0700] rev 28785
revset: stabilize repr of baseset initialized with a set Cpython and pypy have different way to build and order set, so the result of list(myset) is different. We work around this by using the sorted version of the data when displaying a list. This get pypy closer to pass test-revset.t.
Mon, 04 Apr 2016 17:27:37 +0100 dispatch: factor out command failure handling into a function
Martijn Pieters <mjpieters@fb.com> [Mon, 04 Apr 2016 17:27:37 +0100] rev 28784
dispatch: factor out command failure handling into a function Moving the warning generation to a function allows for wrapping and alternative error handling.
Tue, 05 Apr 2016 10:59:46 +0300 pypy: fix overeager pattern matching on mpatchError
Maciej Fijalkowski <fijall@gmail.com> [Tue, 05 Apr 2016 10:59:46 +0300] rev 28783
pypy: fix overeager pattern matching on mpatchError Pypy have difference in error reporting.
Thu, 31 Mar 2016 02:05:28 +0000 mpatch: unify mpatchError (issue5182)
timeless <timeless@mozdev.org> [Thu, 31 Mar 2016 02:05:28 +0000] rev 28782
mpatch: unify mpatchError (issue5182) The pure version was mpatch was throwing struct.error or ValueError for errors, whereas the C version was throwing an "mpatch.mpatchError". Introducing an mpatch.mpatchError into pure and using it consistently is fairly easy, but the actual form for it is mercurial.mpatch.mpatchError, so with this commit, we change the C implementation to match the naming convention too.
Wed, 30 Mar 2016 22:01:47 +0000 check-code: reject sed ... \\n
timeless <timeless@mozdev.org> [Wed, 30 Mar 2016 22:01:47 +0000] rev 28781
check-code: reject sed ... \\n This would have caught 142891ab6e89 (fixed by a5a13eeffc59) if repcomment didn't make the content of the perl code opaque to the check.
Sat, 02 Apr 2016 15:56:47 -0700 hideablerevs: expand docstring to warn about possible traps
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 02 Apr 2016 15:56:47 -0700] rev 28780
hideablerevs: expand docstring to warn about possible traps Sean Farley just wasted multiple hours trying to figure out why his code was crashing. We update the docstring to make the constraint clearer.
Sun, 03 Apr 2016 19:47:29 +0900 hghave: replace relative import of docutils.core
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 19:47:29 +0900] rev 28779
hghave: replace relative import of docutils.core
Sun, 03 Apr 2016 20:12:59 +0900 tests: make tinyproxy.py not import sys.argv by name
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 20:12:59 +0900] rev 28778
tests: make tinyproxy.py not import sys.argv by name
Sun, 03 Apr 2016 20:13:42 +0900 tests: alias ui as uimod in test-walkrepo
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 20:13:42 +0900] rev 28777
tests: alias ui as uimod in test-walkrepo
Sun, 03 Apr 2016 19:56:59 +0900 tests: alias ui as uimod in test-ui-config
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 19:56:59 +0900] rev 28776
tests: alias ui as uimod in test-ui-config
Sun, 03 Apr 2016 19:52:13 +0900 tests: alias ui as uimod in test-context
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 19:52:13 +0900] rev 28775
tests: alias ui as uimod in test-context
Sun, 03 Apr 2016 19:48:47 +0900 tests: alias ui as uimod in test-ancestor
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 19:48:47 +0900] rev 28774
tests: alias ui as uimod in test-ancestor
Sun, 03 Apr 2016 20:11:41 +0900 tests: sort import lines in tinyproxy.py
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 20:11:41 +0900] rev 28773
tests: sort import lines in tinyproxy.py
Sun, 03 Apr 2016 19:41:00 +0900 tests: sort import lines in failfilemerge.py
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 19:41:00 +0900] rev 28772
tests: sort import lines in failfilemerge.py
Sun, 03 Apr 2016 19:40:05 +0900 tests: sort import lines in dumbhttp.py
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 19:40:05 +0900] rev 28771
tests: sort import lines in dumbhttp.py This series is an attempt to enable import-checker.py for tests/**.py, but it turned out not easy. Since many tests have been ported to absolute_import without the coverage, import-checker.py reports a lot of errors right now. Should we enable import-checker.py without fixing all of them so that we won't get more errors?
Mon, 04 Apr 2016 01:59:57 +0100 chgserver: change random state after fork
Jun Wu <quark@fb.com> [Mon, 04 Apr 2016 01:59:57 +0100] rev 28770
chgserver: change random state after fork Before this patch, extensions expecting a different random state per command will break since the chg request handler will inherit a same random state from the parent daemon process. This patch addresses the issue by calling random.seed() after fork.
Mon, 04 Apr 2016 02:36:05 +0100 chg: make connect debug message less repetitive
Jun Wu <quark@fb.com> [Mon, 04 Apr 2016 02:36:05 +0100] rev 28769
chg: make connect debug message less repetitive Before this patch, "connect to" debug message is printed repeatedly because a previous patch changed how the chg client decides the server is ready to be connected. This patch revises the places we print connect debug messages so they are less repetitive without losing useful information.
Mon, 04 Apr 2016 03:17:59 +0100 chgserver: use relative path at socket.bind
Jun Wu <quark@fb.com> [Mon, 04 Apr 2016 03:17:59 +0100] rev 28768
chgserver: use relative path at socket.bind Before this patch, if the server address is long, the server will fail to listen and throw the error: socket.error: AF_UNIX path too long It is because AF_UNIX path usually has a very short length limit (107 chars on common platforms, see sys/un.h). This patch addresses the issue by using relative path instead. Therefore the directory length does not matter. It helps run tests with chg using a long $TMPDIR.
Mon, 04 Apr 2016 01:10:51 +0100 chgserver: move args copying logic to the correct place
Jun Wu <quark@fb.com> [Mon, 04 Apr 2016 01:10:51 +0100] rev 28767
chgserver: move args copying logic to the correct place A previous patch moved it to an incorrect place. Since dispatch._earlygetopt has side effects on args, we need to move it to the place before _earlygetopt.
Mon, 04 Apr 2016 05:20:40 +0300 py3: use print_function in test-status-inprocess.py
Robert Stanca <robert.stanca7@gmail.com> [Mon, 04 Apr 2016 05:20:40 +0300] rev 28766
py3: use print_function in test-status-inprocess.py
Mon, 04 Apr 2016 05:19:35 +0300 py3: use absolute_import in test-status-inprocess.py
Robert Stanca <robert.stanca7@gmail.com> [Mon, 04 Apr 2016 05:19:35 +0300] rev 28765
py3: use absolute_import in test-status-inprocess.py
Mon, 04 Apr 2016 05:10:11 +0300 py3: use print_function in test-revlog-ancestry.py
Robert Stanca <robert.stanca7@gmail.com> [Mon, 04 Apr 2016 05:10:11 +0300] rev 28764
py3: use print_function in test-revlog-ancestry.py
Mon, 04 Apr 2016 05:09:24 +0300 py3: use absolute_import in test-revlog-ancestry.py
Robert Stanca <robert.stanca7@gmail.com> [Mon, 04 Apr 2016 05:09:24 +0300] rev 28763
py3: use absolute_import in test-revlog-ancestry.py
Mon, 04 Apr 2016 04:56:05 +0300 py3: use print_function in test-propertycache.py
Robert Stanca <robert.stanca7@gmail.com> [Mon, 04 Apr 2016 04:56:05 +0300] rev 28762
py3: use print_function in test-propertycache.py
Fri, 01 Apr 2016 13:20:47 +0000 hghave: add hg06..hg39
timeless <timeless@mozdev.org> [Fri, 01 Apr 2016 13:20:47 +0000] rev 28761
hghave: add hg06..hg39 hg output varies by version, this helps the hgbook hg 0.6 did not have a version command, so special case it... hg 0.7-0.8 had a version command which returned unknown... hg 0.8 added a --date flag to annotate hg 0.9 had a working version command!
Fri, 01 Apr 2016 13:19:29 +0000 hghave: use checkvers for bzr114
timeless <timeless@mozdev.org> [Fri, 01 Apr 2016 13:19:29 +0000] rev 28760
hghave: use checkvers for bzr114
Fri, 01 Apr 2016 13:04:41 +0000 hghave: replace has_svn13/has_svn15 with checkvers
timeless <timeless@mozdev.org> [Fri, 01 Apr 2016 13:04:41 +0000] rev 28759
hghave: replace has_svn13/has_svn15 with checkvers This would make it possible to easily add a svn14 or svn16 or...
Fri, 01 Apr 2016 13:04:16 +0000 hghave: add checkvers function
timeless <timeless@mozdev.org> [Fri, 01 Apr 2016 13:04:16 +0000] rev 28758
hghave: add checkvers function
Mon, 04 Apr 2016 02:17:36 +0000 hghave: add docstring for check
timeless <timeless@mozdev.org> [Mon, 04 Apr 2016 02:17:36 +0000] rev 28757
hghave: add docstring for check
Fri, 01 Apr 2016 13:19:58 +0000 hghave: update cvs112 description
timeless <timeless@mozdev.org> [Fri, 01 Apr 2016 13:19:58 +0000] rev 28756
hghave: update cvs112 description Classic cvs stopped at 1.11. There was a beta version 1.12 that never had a final release. CVS NT is a fork which starts with versions numbered 2.0+. We should have an hg have cvsnt, but to test that requires getting cvsnt, and it's commercial / its older source versions are hard to find.
Mon, 04 Apr 2016 03:16:18 +0300 py3: use absolute_import in test-propertycache.py
Robert Stanca <robert.stanca7@gmail.com> [Mon, 04 Apr 2016 03:16:18 +0300] rev 28755
py3: use absolute_import in test-propertycache.py
Mon, 04 Apr 2016 03:14:16 +0300 py3: use print_function in test-parseindex2.py
Robert Stanca <robert.stanca7@gmail.com> [Mon, 04 Apr 2016 03:14:16 +0300] rev 28754
py3: use print_function in test-parseindex2.py
Mon, 04 Apr 2016 03:06:33 +0300 py3: use absolute_import in test-parseindex2.py
Robert Stanca <robert.stanca7@gmail.com> [Mon, 04 Apr 2016 03:06:33 +0300] rev 28753
py3: use absolute_import in test-parseindex2.py
Mon, 04 Apr 2016 03:04:08 +0300 py3: use print_function in test-minirst.py
Robert Stanca <robert.stanca7@gmail.com> [Mon, 04 Apr 2016 03:04:08 +0300] rev 28752
py3: use print_function in test-minirst.py
Mon, 04 Apr 2016 03:00:43 +0300 py3: use absolute_import in test-minirst.py
Robert Stanca <robert.stanca7@gmail.com> [Mon, 04 Apr 2016 03:00:43 +0300] rev 28751
py3: use absolute_import in test-minirst.py
Mon, 04 Apr 2016 02:58:53 +0300 py3: use print_function in test-hybridencode.py
Robert Stanca <robert.stanca7@gmail.com> [Mon, 04 Apr 2016 02:58:53 +0300] rev 28750
py3: use print_function in test-hybridencode.py
Mon, 04 Apr 2016 01:33:08 +0300 py3: use absolute_import in test-hybridencode.py
Robert Stanca <robert.stanca7@gmail.com> [Mon, 04 Apr 2016 01:33:08 +0300] rev 28749
py3: use absolute_import in test-hybridencode.py
Mon, 04 Apr 2016 01:31:21 +0300 py3: use print_function in test-hgweb-auth.py
Robert Stanca <robert.stanca7@gmail.com> [Mon, 04 Apr 2016 01:31:21 +0300] rev 28748
py3: use print_function in test-hgweb-auth.py
Mon, 04 Apr 2016 00:55:36 +0300 py3: use absolute_import in test-hgweb-auth.py
Robert Stanca <robert.stanca7@gmail.com> [Mon, 04 Apr 2016 00:55:36 +0300] rev 28747
py3: use absolute_import in test-hgweb-auth.py
Mon, 04 Apr 2016 00:29:03 +0300 py3: use print_function in test-hg-parseurl.py
Robert Stanca <robert.stanca7@gmail.com> [Mon, 04 Apr 2016 00:29:03 +0300] rev 28746
py3: use print_function in test-hg-parseurl.py
Mon, 04 Apr 2016 00:27:04 +0300 py3: use absolute_import in test-hg-parseurl.py
Robert Stanca <robert.stanca7@gmail.com> [Mon, 04 Apr 2016 00:27:04 +0300] rev 28745
py3: use absolute_import in test-hg-parseurl.py
Mon, 04 Apr 2016 00:17:11 +0300 py3: use print_function in test-filelog.py
Robert Stanca <robert.stanca7@gmail.com> [Mon, 04 Apr 2016 00:17:11 +0300] rev 28744
py3: use print_function in test-filelog.py
Sun, 03 Apr 2016 17:10:12 +0300 py3: use absolute_import in test-filelog.py
Robert Stanca <robert.stanca7@gmail.com> [Sun, 03 Apr 2016 17:10:12 +0300] rev 28743
py3: use absolute_import in test-filelog.py
Sun, 03 Apr 2016 17:06:40 +0300 py3: use print_function in test-filecache.py
Robert Stanca <robert.stanca7@gmail.com> [Sun, 03 Apr 2016 17:06:40 +0300] rev 28742
py3: use print_function in test-filecache.py
Sun, 03 Apr 2016 17:01:07 +0300 py3: use absolute_import in test-filecache.py
Robert Stanca <robert.stanca7@gmail.com> [Sun, 03 Apr 2016 17:01:07 +0300] rev 28741
py3: use absolute_import in test-filecache.py
Sun, 03 Apr 2016 16:58:43 +0300 py3: use print_function in test-duplicateoptions.py
Robert Stanca <robert.stanca7@gmail.com> [Sun, 03 Apr 2016 16:58:43 +0300] rev 28740
py3: use print_function in test-duplicateoptions.py
Sun, 03 Apr 2016 16:56:15 +0300 py3: use absolute_import in test-duplicateoptions.py
Robert Stanca <robert.stanca7@gmail.com> [Sun, 03 Apr 2016 16:56:15 +0300] rev 28739
py3: use absolute_import in test-duplicateoptions.py
Sun, 03 Apr 2016 16:34:55 +0300 py3: lexicographical order imports and print_function in test-context.py
Robert Stanca <robert.stanca7@gmail.com> [Sun, 03 Apr 2016 16:34:55 +0300] rev 28738
py3: lexicographical order imports and print_function in test-context.py
Sun, 03 Apr 2016 08:26:57 +0100 pypy: fix overspecific test checks
Maciej Fijalkowski <fijall@gmail.com> [Sun, 03 Apr 2016 08:26:57 +0100] rev 28737
pypy: fix overspecific test checks Those tests check a bit too specific message in ImportError/SyntaxError. Make test-hook and test-bad-extension pass on pypy
Sun, 03 Apr 2016 10:02:58 +0300 tests: lexicographical imports in silenttestrunner.py
Robert Stanca <robert.stanca7@gmail.com> [Sun, 03 Apr 2016 10:02:58 +0300] rev 28736
tests: lexicographical imports in silenttestrunner.py
Sun, 03 Apr 2016 06:20:17 +0300 py3: use absolute_import in test-context.py
Robert Stanca <robert.stanca7@gmail.com> [Sun, 03 Apr 2016 06:20:17 +0300] rev 28735
py3: use absolute_import in test-context.py
Sun, 03 Apr 2016 06:16:17 +0300 py3: use print_function in test-bdiff.py
Robert Stanca <robert.stanca7@gmail.com> [Sun, 03 Apr 2016 06:16:17 +0300] rev 28734
py3: use print_function in test-bdiff.py
Sun, 03 Apr 2016 06:12:18 +0300 py3: use absolute_import in test-bdiff.py
Robert Stanca <robert.stanca7@gmail.com> [Sun, 03 Apr 2016 06:12:18 +0300] rev 28733
py3: use absolute_import in test-bdiff.py
Sun, 03 Apr 2016 06:10:52 +0300 py3: use print_function in test-batching.py
Robert Stanca <robert.stanca7@gmail.com> [Sun, 03 Apr 2016 06:10:52 +0300] rev 28732
py3: use print_function in test-batching.py
Sun, 03 Apr 2016 06:05:43 +0300 py3: use absolute_import in test-batching.py
Robert Stanca <robert.stanca7@gmail.com> [Sun, 03 Apr 2016 06:05:43 +0300] rev 28731
py3: use absolute_import in test-batching.py
Sat, 02 Apr 2016 18:17:23 +0300 py3: use print_function in silenttestrunner.py
Robert Stanca <robert.stanca7@gmail.com> [Sat, 02 Apr 2016 18:17:23 +0300] rev 28730
py3: use print_function in silenttestrunner.py
Sat, 02 Apr 2016 18:16:12 +0300 py3: use absolute_import in silenttestrunner.py
Robert Stanca <robert.stanca7@gmail.com> [Sat, 02 Apr 2016 18:16:12 +0300] rev 28729
py3: use absolute_import in silenttestrunner.py
Sat, 02 Apr 2016 18:15:04 +0300 py3: use print_function in hypothesishelpers.py
Robert Stanca <robert.stanca7@gmail.com> [Sat, 02 Apr 2016 18:15:04 +0300] rev 28728
py3: use print_function in hypothesishelpers.py
Sat, 02 Apr 2016 18:14:10 +0300 tests: use absolute_import in hypothesishelpers.py
Robert Stanca <robert.stanca7@gmail.com> [Sat, 02 Apr 2016 18:14:10 +0300] rev 28727
tests: use absolute_import in hypothesishelpers.py
Sat, 02 Apr 2016 18:12:33 +0300 py3: use print_function in get-with-headers.py
Robert Stanca <robert.stanca7@gmail.com> [Sat, 02 Apr 2016 18:12:33 +0300] rev 28726
py3: use print_function in get-with-headers.py
Sat, 02 Apr 2016 17:36:59 +0300 py3: use print_function in generate-working-copy-states.py
Robert Stanca <robert.stanca7@gmail.com> [Sat, 02 Apr 2016 17:36:59 +0300] rev 28725
py3: use print_function in generate-working-copy-states.py
Sat, 02 Apr 2016 17:35:02 +0300 py3: use print_function in filterpyflakes.py
Robert Stanca <robert.stanca7@gmail.com> [Sat, 02 Apr 2016 17:35:02 +0300] rev 28724
py3: use print_function in filterpyflakes.py
Sat, 02 Apr 2016 17:33:11 +0300 py3: use print_function in test-ancestor.py
Robert Stanca <robert.stanca7@gmail.com> [Sat, 02 Apr 2016 17:33:11 +0300] rev 28723
py3: use print_function in test-ancestor.py
Sat, 02 Apr 2016 17:29:38 +0300 py3: use print_function in seq.py
Robert Stanca <robert.stanca7@gmail.com> [Sat, 02 Apr 2016 17:29:38 +0300] rev 28722
py3: use print_function in seq.py
Sat, 02 Apr 2016 17:28:35 +0300 py3: use absolute_import in seq.py
Robert Stanca <robert.stanca7@gmail.com> [Sat, 02 Apr 2016 17:28:35 +0300] rev 28721
py3: use absolute_import in seq.py
Mon, 29 Feb 2016 17:02:56 +0900 parser: move parsererrordetail() function from revset module
Yuya Nishihara <yuya@tcha.org> [Mon, 29 Feb 2016 17:02:56 +0900] rev 28720
parser: move parsererrordetail() function from revset module This will be used by common alias functions introduced by future patches.
Fri, 01 Apr 2016 21:18:24 +0800 hgweb: fix links in atom-branches
Anton Shestakov <av6@dwimlabs.net> [Fri, 01 Apr 2016 21:18:24 +0800] rev 28719
hgweb: fix links in atom-branches
Fri, 01 Apr 2016 10:09:34 +0200 revset: prevent infinite recursion on pypy
Maciej Fijalkowski <fijall@gmail.com> [Fri, 01 Apr 2016 10:09:34 +0200] rev 28718
revset: prevent infinite recursion on pypy as explained in the commit, __len__ cannot do [x for x in self] because that can potentially call __len__ again, causing infinite recursion
Thu, 31 Mar 2016 18:38:08 +0200 pypy: fix doctests for pypy optimizations
Maciej Fijalkowski <fijall@gmail.com> [Thu, 31 Mar 2016 18:38:08 +0200] rev 28717
pypy: fix doctests for pypy optimizations PyPy would sometime call __len__ at points where it things preallocating the container makes sense. Change the doctests so they're using generator expressions and not list comprehensions
Sat, 19 Mar 2016 15:31:13 +0100 largefiles: replace invocation of os.path module by vfs in reposetup.py
liscju <piotr.listkiewicz@gmail.com> [Sat, 19 Mar 2016 15:31:13 +0100] rev 28716
largefiles: replace invocation of os.path module by vfs in reposetup.py This commit is part of bigger effort described in 'Windows UTF-8' plan.
Sat, 19 Mar 2016 14:50:40 +0100 largefiles: replace invocation of os.path module by vfs in overrides.py
liscju <piotr.listkiewicz@gmail.com> [Sat, 19 Mar 2016 14:50:40 +0100] rev 28715
largefiles: replace invocation of os.path module by vfs in overrides.py This commit is part of bigger effort described in 'Windows UTF-8' plan. It is not changing all invocations but the ones where change is obviously correct and doesn't require complicated changes.
Wed, 23 Mar 2016 08:55:22 +0100 bundle: warn when update to revision existing only in a bundle (issue5004)
liscju <piotr.listkiewicz@gmail.com> [Wed, 23 Mar 2016 08:55:22 +0100] rev 28714
bundle: warn when update to revision existing only in a bundle (issue5004) Now its done silently, so unless user really knows what he is doing will be suprised to find that after update 'hg status' doesn't work. This commit makes also merge operation warns about missing parent when revision to merge exists only in the bundle.
Wed, 30 Mar 2016 21:54:26 +0200 tests: fix builtin module test on pypy
Maciej Fijalkowski <fijall@gmail.com> [Wed, 30 Mar 2016 21:54:26 +0200] rev 28713
tests: fix builtin module test on pypy On pypy datetime and cProfile are modules written in Python, not in C. For the purpose of this test, just list them explicitely as builtins, which silences warnings about them being imported before stdlib modules.
Thu, 31 Mar 2016 15:37:21 +0800 hgweb: generate last change date for an empty atom-bookmarks feed (issue5022)
Anton Shestakov <av6@dwimlabs.net> [Thu, 31 Mar 2016 15:37:21 +0800] rev 28712
hgweb: generate last change date for an empty atom-bookmarks feed (issue5022) RFC 4287 states that atom feeds must have an <updated> element, so let's add one even when repo doesn't have a single bookmark.
Thu, 31 Mar 2016 15:22:06 +0800 hgweb: sort bookmarks in revlog order of their nodes
Anton Shestakov <av6@dwimlabs.net> [Thu, 31 Mar 2016 15:22:06 +0800] rev 28711
hgweb: sort bookmarks in revlog order of their nodes Changes, branches and tags are already in revlog order on /summary, /branches and /tags, let's now make bookmarks be sorted by the same principle. It's more helpful to show more "recent" bookmarks on top. This will affect /bookmarks page in all styles, including atom, rss and raw, and also /summary page. Bookmarks are sorted using a (revision number, bookmark name) tuple.
Thu, 31 Mar 2016 14:23:27 +0800 hgweb: sort bookmarks early
Anton Shestakov <av6@dwimlabs.net> [Thu, 31 Mar 2016 14:23:27 +0800] rev 28710
hgweb: sort bookmarks early Let's do the same thing that /tags page does. It gets sorted tags and then if it needs the latest only, it just slices the first item from the list. Since it's a slice and not a min(), it doesn't throw an exception if the list is empty. This fixes HTTP 500 error from issue5022.
Thu, 31 Mar 2016 18:09:09 +0800 hgweb: add parents to json-log (issue5074)
Anton Shestakov <av6@dwimlabs.net> [Thu, 31 Mar 2016 18:09:09 +0800] rev 28709
hgweb: add parents to json-log (issue5074) Entries prepared in webutil.changelistentry() skip showing parents in the trivial case when there's only one parent and it's the previous revision. This doesn't work well for the json-log template, which is supposed to just dump raw data in an easy-to-parse format, so let's provide all parents as another keyword: allparents. Using a lambda function here means that the performance of templates that don't use allparents won't be affected (see 41957e50e109).
Mon, 29 Feb 2016 17:46:06 +0900 revset: make _parsealiasdecl() simply return the original parsed tree
Yuya Nishihara <yuya@tcha.org> [Mon, 29 Feb 2016 17:46:06 +0900] rev 28708
revset: make _parsealiasdecl() simply return the original parsed tree It wasn't necessary to reconstruct the same tuple.
Mon, 29 Feb 2016 16:35:58 +0900 revset: inline isvalidfunc(), getfuncname() and getfuncargs()
Yuya Nishihara <yuya@tcha.org> [Mon, 29 Feb 2016 16:35:58 +0900] rev 28707
revset: inline isvalidfunc(), getfuncname() and getfuncargs() See the previous commit for why. These functions are also trivial.
Mon, 29 Feb 2016 16:32:18 +0900 revset: inline isvalidsymbol() and getsymbol() into _parsealiasdecl()
Yuya Nishihara <yuya@tcha.org> [Mon, 29 Feb 2016 16:32:18 +0900] rev 28706
revset: inline isvalidsymbol() and getsymbol() into _parsealiasdecl() Since I'm going to extract a common alias parser, I want to eliminate dependencies to the revset parsing rules. These functions are trivial, so we can go without them.
Mon, 29 Feb 2016 16:23:09 +0900 revset: remove redundant checks for parsed tree of alias
Yuya Nishihara <yuya@tcha.org> [Mon, 29 Feb 2016 16:23:09 +0900] rev 28705
revset: remove redundant checks for parsed tree of alias If tree is a tuple, it must have at least one element. Also the length of node tuple is guaranteed by the syntax elements. (e.g. 'func' must have 3 items.) This change will help inlining these trivial functions in future patches.
Wed, 30 Mar 2016 08:15:37 +0000 py3: handle iter/iterkeys+iteritems python3 divergence in import-checker
timeless <timeless@mozdev.org> [Wed, 30 Mar 2016 08:15:37 +0000] rev 28704
py3: handle iter/iterkeys+iteritems python3 divergence in import-checker
Wed, 30 Mar 2016 04:55:16 +0000 py3: use print_function in import-checker
timeless <timeless@mozdev.org> [Wed, 30 Mar 2016 04:55:16 +0000] rev 28703
py3: use print_function in import-checker
Wed, 30 Mar 2016 04:50:19 +0000 py3: use absolute_import in import-checker
timeless <timeless@mozdev.org> [Wed, 30 Mar 2016 04:50:19 +0000] rev 28702
py3: use absolute_import in import-checker
Wed, 30 Mar 2016 09:13:47 +0000 run-tests: make _processoutput picky about optional globs
timeless <timeless@mozdev.org> [Wed, 30 Mar 2016 09:13:47 +0000] rev 28701
run-tests: make _processoutput picky about optional globs 1ad0ddf8cccc enabled lines that were not matched to be found later in cases of jitter. Unfortunately, in this model an optional line would always jitter to the end when it is not present. That is not ideal. It would be possible to do better, by queuing all writes until the end in case an optional line jitters, but for now, it is simpler to assume optional lines have a fixed place in the stream.
Wed, 30 Mar 2016 07:24:51 +0000 py24: remove check-code py24 notation
timeless <timeless@mozdev.org> [Wed, 30 Mar 2016 07:24:51 +0000] rev 28700
py24: remove check-code py24 notation We require python2.6+
Wed, 30 Mar 2016 08:02:34 +0000 py3: convert hghave output to text
timeless <timeless@mozdev.org> [Wed, 30 Mar 2016 08:02:34 +0000] rev 28699
py3: convert hghave output to text Before this, Python3 generated: b'skipped: unknown feature: not-py3k\n'
Wed, 30 Mar 2016 05:26:51 +0000 py3: convert prereq bytes to string in run-tests
timeless <timeless@mozdev.org> [Wed, 30 Mar 2016 05:26:51 +0000] rev 28698
py3: convert prereq bytes to string in run-tests Without this, run-tests would generate: WARNING: Did not find prerequisite tool: b'python3.5'
Mon, 28 Mar 2016 12:50:56 -0700 record: deprecate the extension
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 28 Mar 2016 12:50:56 -0700] rev 28697
record: deprecate the extension The feature has been moved into core behind the -i flag. We can safely deprecated the extension and point people at the --interactive flag in core.
Wed, 30 Mar 2016 02:10:44 +0900 templater: use templatefunc to mark a function as template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 30 Mar 2016 02:10:44 +0900] rev 28696
templater: use templatefunc to mark a function as template function Using decorator can localize changes for adding (or removing) a template function in source code. This patch also removes leading ":FUNC(ARG...):" part in help document of each function, because using templatefunc makes it useless. This patch uses not 'func' but 'templatefunc' as a decorator name, because the former is too generic one, even though the latter is a little redundant in 'templater.py'.
Wed, 30 Mar 2016 02:10:44 +0900 registrar: add templatefunc to mark a function as template function (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 30 Mar 2016 02:10:44 +0900] rev 28695
registrar: add templatefunc to mark a function as template function (API) This patch also adds loadfunction() to templater, because this combination helps to figure out how they cooperate with each other. Listing up loadfunction() in dispatch.extraloaders causes implicit loading template function at loading (3rd party) extension. This patch explicitly tests whether templatefunc decorator works as expected, because there is no bundled extension, which defines template function. This change requires that "templatefunc" attribute of (3rd party) extension is registrar.templatefunc or so.
Wed, 30 Mar 2016 02:10:44 +0900 keyword: use templatefilter to mark a function as template filter
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 30 Mar 2016 02:10:44 +0900] rev 28694
keyword: use templatefilter to mark a function as template filter This patch also adds test for filter 'svnisodate' and 'svnutcdate' for safety, because there is no test using them, yet.
Wed, 30 Mar 2016 02:10:44 +0900 templatefilters: use templatefilter to mark a function as template filter
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 30 Mar 2016 02:10:44 +0900] rev 28693
templatefilters: use templatefilter to mark a function as template filter Using decorator can localize changes for adding (or removing) a template filter function in source code. This patch also removes leading ":FILTER:" part in help document of each filters, because using templatefilter makes it useless. This patch uses not 'filter' but 'templatefilter' as a decorator name, because the former name hides Python built-in one, even though the latter is a little redundant in 'templatefilters.py'.
Wed, 30 Mar 2016 02:10:44 +0900 registrar: add templatefilter to mark a function as template filter (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 30 Mar 2016 02:10:44 +0900] rev 28692
registrar: add templatefilter to mark a function as template filter (API) This patch also adds loadfilter() to templatefilters, because this combination helps to figure out how they cooperate with each other. Listing up loadfilter() in dispatch.extraloaders causes implicit loading template filter functions at loading (3rd party) extension. This change requires that "templatefilter" attribute of (3rd party) extension is registrar.templatefilter or so.
Sun, 14 Feb 2016 20:43:30 +0900 revset: inline _getaliasarg() function
Yuya Nishihara <yuya@tcha.org> [Sun, 14 Feb 2016 20:43:30 +0900] rev 28691
revset: inline _getaliasarg() function This function is now much simpler than before. Inlining small functions helps to extract a reusable alias processor.
Sun, 14 Feb 2016 20:27:08 +0900 revset: drop redundant check for unknown alias arguments
Yuya Nishihara <yuya@tcha.org> [Sun, 14 Feb 2016 20:27:08 +0900] rev 28690
revset: drop redundant check for unknown alias arguments Since _parsealiasdefn() rejects unknown alias arguments, _checkaliasarg() is unnecessary. New test is added to make sure unknown '$n' symbols are rejected.
Sun, 14 Feb 2016 19:48:33 +0900 revset: move tagging of alias arguments from tokenization to parsing phase
Yuya Nishihara <yuya@tcha.org> [Sun, 14 Feb 2016 19:48:33 +0900] rev 28689
revset: move tagging of alias arguments from tokenization to parsing phase In short, this patch moves the hack from tokenizedefn() to _relabelaliasargs(), which is called after parsing. This change aims to eliminate tight dependency on the revset tokenizer. Before this patch, we had to rewrite an alias argument to a pseudo function: "$1" -> "_aliasarg('$1')" ('symbol', '$1') -> ('function', ('symbol', '_aliasarg'), ('string', '$1')) This was because the tokenizer must generate tokens that are syntactically valid. By moving the process to the parsing phase, we can assign a unique tag to an alias argument. ('symbol', '$1') -> ('_aliasarg', '$1') Since new _aliasarg node never be generated from a user input, we no longer have to verify a user input at findaliases(). The test for _aliasarg("$1") is removed as it is syntactically valid and should pass the parsing phase.
Sun, 14 Feb 2016 21:46:50 +0900 revset: add test that should fail if '_aliasarg' tag is removed
Yuya Nishihara <yuya@tcha.org> [Sun, 14 Feb 2016 21:46:50 +0900] rev 28688
revset: add test that should fail if '_aliasarg' tag is removed I'm going to refactor the alias processing functions. We need '_aliasarg' tag to limit the scope of the alias expansion, but it wasn't covered by the test. This patch adds the test that should fail if '_aliasarg' were 'symbol'. This is the first half of the second part of the "template alias" series. The whole series will consist of the following parts: 1. make parsed template tree to be compatible with parser functions (1d461ee26e1b and 73d01cba5810) 2. refactor alias processing to be less dependent on revset module (1/2 in this series) 3. extract reusable component to parser module 4. clean up it 5. extend it to support template syntax 6. add debugging/testing functions of template aliases 7. add alias expansion routine to templater
Sun, 27 Mar 2016 17:42:19 +0900 templater: do not strip non-quote characters from template config
Yuya Nishihara <yuya@tcha.org> [Sun, 27 Mar 2016 17:42:19 +0900] rev 28687
templater: do not strip non-quote characters from template config Before this patch, the first and last characters were stripped from ui.logtemplate and template.* if they were the same. It could lead to a strange result as quotes are optional. See the test for example.
Tue, 29 Mar 2016 11:50:41 -0700 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com> [Tue, 29 Mar 2016 11:50:41 -0700] rev 28686
rebase: fix crash when rebase aborts while rebasing obsolete revisions Before this patch, rebase --continue would crash when trying to resume a rebase of obsolete revisions whose successors were in the destination. This patch adds logic to recompute the mapping when rebase is resumed. This patch also adds a test that showcased the crash before the code change.
Tue, 29 Mar 2016 11:49:45 -0700 rebase: refactor of error handling code path for rebaseskipobsolete
Laurent Charignon <lcharignon@fb.com> [Tue, 29 Mar 2016 11:49:45 -0700] rev 28685
rebase: refactor of error handling code path for rebaseskipobsolete This patch extracts the error handling code path to go in a separate function. In the next patch we will able to reuse this logic and avoid duplicated code.
Tue, 29 Mar 2016 23:59:32 +0900 destutil: show message and hint at updating to the closed head as warning
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 29 Mar 2016 23:59:32 +0900] rev 28684
destutil: show message and hint at updating to the closed head as warning
Tue, 29 Mar 2016 23:59:32 +0900 destutil: make messages at updating to the closed head usual form
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 29 Mar 2016 23:59:32 +0900] rev 28683
destutil: make messages at updating to the closed head usual form This patch makes messages at updating to the closed head usual form for Mercurial as below: one line description of the problem with no period (a suggestion about how to move forward or get more info)
Tue, 29 Mar 2016 16:41:32 +0530 py3: make test-ui-color use print_function
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 29 Mar 2016 16:41:32 +0530] rev 28682
py3: make test-ui-color use print_function
Tue, 29 Mar 2016 16:38:27 +0530 py3: make test-ui-config use print_function
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 29 Mar 2016 16:38:27 +0530] rev 28681
py3: make test-ui-config use print_function
Tue, 29 Mar 2016 16:33:09 +0530 py3: make test-ui-config use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 29 Mar 2016 16:33:09 +0530] rev 28680
py3: make test-ui-config use absolute_import
Tue, 29 Mar 2016 16:29:21 +0530 py3: make test-ui-verbosity use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 29 Mar 2016 16:29:21 +0530] rev 28679
py3: make test-ui-verbosity use absolute_import
Tue, 29 Mar 2016 16:27:01 +0530 py3: make test-ui-verbosity use print_function
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 29 Mar 2016 16:27:01 +0530] rev 28678
py3: make test-ui-verbosity use print_function
Tue, 29 Mar 2016 16:23:40 +0530 py3: make test-url use print_function
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 29 Mar 2016 16:23:40 +0530] rev 28677
py3: make test-url use print_function
Tue, 29 Mar 2016 16:21:31 +0530 py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 29 Mar 2016 16:21:31 +0530] rev 28676
py3: make test-walkrepo use print_function
Tue, 29 Mar 2016 16:14:58 +0530 py3: make test-wireproto use print_function
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 29 Mar 2016 16:14:58 +0530] rev 28675
py3: make test-wireproto use print_function
Tue, 29 Mar 2016 17:22:08 +0000 py3: handle ugettext + unicode in i18n
timeless <timeless@mozdev.org> [Tue, 29 Mar 2016 17:22:08 +0000] rev 28674
py3: handle ugettext + unicode in i18n
Mon, 28 Mar 2016 22:30:23 +0000 py3: glob line numbers in test-check-py3-compat
timeless <timeless@mozdev.org> [Mon, 28 Mar 2016 22:30:23 +0000] rev 28673
py3: glob line numbers in test-check-py3-compat
Tue, 29 Mar 2016 10:21:05 -0700 bundle: remove obsolete (and duplicate) comment
Martin von Zweigbergk <martinvonz@google.com> [Tue, 29 Mar 2016 10:21:05 -0700] rev 28672
bundle: remove obsolete (and duplicate) comment Change 1e28ec9744bf (changegroup: move chunk extraction into a getchunks method of unbundle10, 2014-04-10) extracted some code to a getchunks() method and copied a comment about the changegroup format to the new method. The copy that remains in the old place, doesn't make much sense there, so let's remove it.
Tue, 29 Mar 2016 10:49:33 -0700 convert: delete unused imports in git.py
Martin von Zweigbergk <martinvonz@google.com> [Tue, 29 Mar 2016 10:49:33 -0700] rev 28671
convert: delete unused imports in git.py As reported by pyflakes
Tue, 29 Mar 2016 12:29:00 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 29 Mar 2016 12:29:00 -0500] rev 28670
merge with stable
Fri, 25 Mar 2016 23:05:32 -0700 bundle: avoid crash when no good changegroup version found
Martin von Zweigbergk <martinvonz@google.com> [Fri, 25 Mar 2016 23:05:32 -0700] rev 28669
bundle: avoid crash when no good changegroup version found When using treemanifests, only changegroup3 bundles can be created. However, there is currently no way of requesting a changegroup3 bundle, so we run into an assertion in changegroup.getbundler() when trying to get a changroup2 bundler. Let's avoid the traceback and print a short error message instead.
Fri, 25 Mar 2016 16:13:28 -0700 exchange: make _pushb2ctx() look more like _getbundlechangegrouppart()
Martin von Zweigbergk <martinvonz@google.com> [Fri, 25 Mar 2016 16:13:28 -0700] rev 28668
exchange: make _pushb2ctx() look more like _getbundlechangegrouppart() The functions already have a lot in common, but were structured a little differently.
Fri, 25 Mar 2016 16:01:40 -0700 exchange: get rid of "getcgkwargs" variable
Martin von Zweigbergk <martinvonz@google.com> [Fri, 25 Mar 2016 16:01:40 -0700] rev 28667
exchange: get rid of "getcgkwargs" variable This also makes the "version" argument explicit (never relies on getlocalchangegroupraw()'s default), which I think is a good thing.
Mon, 28 Mar 2016 14:41:29 -0700 bundle: move writebundle() from changegroup.py to bundle2.py (API)
Martin von Zweigbergk <martinvonz@google.com> [Mon, 28 Mar 2016 14:41:29 -0700] rev 28666
bundle: move writebundle() from changegroup.py to bundle2.py (API) writebundle() writes a bundle2 bundle or a plain changegroup1. Imagine away the "2" in "bundle2.py" for a moment and this change should makes sense. The bundle wraps the changegroup, so it makes sense that it knows about it. Another sign that this is correct is that the delayed import of bundle2 in changegroup goes away. I'll leave it for another time to remove the "2" in "bundle2.py" (alternatively, extract a new bundle.py from it).
Tue, 29 Mar 2016 11:54:46 -0500 Added signature for changeset ae279d4a19e9 stable
Matt Mackall <mpm@selenic.com> [Tue, 29 Mar 2016 11:54:46 -0500] rev 28665
Added signature for changeset ae279d4a19e9
Tue, 29 Mar 2016 11:54:45 -0500 Added tag 3.7.3 for changeset ae279d4a19e9 stable
Matt Mackall <mpm@selenic.com> [Tue, 29 Mar 2016 11:54:45 -0500] rev 28664
Added tag 3.7.3 for changeset ae279d4a19e9
Tue, 22 Mar 2016 17:27:27 -0700 convert: test for shell injection in git calls (SEC) stable 3.7.3
Mateusz Kwapich <mitrandir@fb.com> [Tue, 22 Mar 2016 17:27:27 -0700] rev 28663
convert: test for shell injection in git calls (SEC) CVE-2016-3069 (5/5) Before recent refactoring we were not escaping calls to git at all which made such injections possible. Let's have a test for that to avoid this problem in the future. Reported by Blake Burkhart.
Tue, 22 Mar 2016 17:05:11 -0700 convert: rewrite gitpipe to use common.commandline (SEC) stable
Mateusz Kwapich <mitrandir@fb.com> [Tue, 22 Mar 2016 17:05:11 -0700] rev 28662
convert: rewrite gitpipe to use common.commandline (SEC) CVE-2016-3069 (4/5)
Tue, 22 Mar 2016 17:05:11 -0700 convert: dead code removal - old git calling functions (SEC) stable
Mateusz Kwapich <mitrandir@fb.com> [Tue, 22 Mar 2016 17:05:11 -0700] rev 28661
convert: dead code removal - old git calling functions (SEC) CVE-2016-3069 (3/5)
Tue, 22 Mar 2016 17:05:11 -0700 convert: rewrite calls to Git to use the new shelling mechanism (SEC) stable
Mateusz Kwapich <mitrandir@fb.com> [Tue, 22 Mar 2016 17:05:11 -0700] rev 28660
convert: rewrite calls to Git to use the new shelling mechanism (SEC) CVE-2016-3069 (2/5) One test output changed because we were ignoring git return code in numcommits before.
Tue, 22 Mar 2016 17:05:11 -0700 convert: add new, non-clowny interface for shelling out to git (SEC) stable
Mateusz Kwapich <mitrandir@fb.com> [Tue, 22 Mar 2016 17:05:11 -0700] rev 28659
convert: add new, non-clowny interface for shelling out to git (SEC) CVE-2016-3069 (1/5) To avoid shell injection and for the sake of simplicity let's use the common.commandline for calling git.
Sun, 20 Mar 2016 21:52:21 -0700 subrepo: set GIT_ALLOW_PROTOCOL to limit git clone protocols (SEC) stable
Mateusz Kwapich <mitrandir@fb.com> [Sun, 20 Mar 2016 21:52:21 -0700] rev 28658
subrepo: set GIT_ALLOW_PROTOCOL to limit git clone protocols (SEC) CVE-2016-3068 (1/1) Git's git-remote-ext remote helper provides an ext:: URL scheme that allows running arbitrary shell commands. This feature allows implementing simple git smart transports with a single shell shell command. However, git submodules could clone arbitrary URLs specified in the .gitmodules file. This was reported as CVE-2015-7545 and fixed in git v2.6.1. However, if a user directly clones a malicious ext URL, the git client will still run arbitrary shell commands. Mercurial is similarly effected. Mercurial allows specifying git repositories as subrepositories. Git ext:: URLs can be specified as Mercurial subrepositories allowing arbitrary shell commands to be run on `hg clone ...`. The Mercurial community would like to thank Blake Burkhart for reporting this issue. The description of the issue is copied from Blake's report. This commit changes submodules to pass the GIT_ALLOW_PROTOCOL env variable to git commands with the same list of allowed protocols that git submodule is using. When the GIT_ALLOW_PROTOCOL env variable is already set, we just pass it to git without modifications.
Wed, 16 Mar 2016 17:30:26 -0700 parsers: detect short records (SEC) stable
Matt Mackall <mpm@selenic.com> [Wed, 16 Mar 2016 17:30:26 -0700] rev 28657
parsers: detect short records (SEC) CVE-2016-3630 (2/2) This addresses part of a vulnerability in binary delta application.
Wed, 16 Mar 2016 17:29:29 -0700 parsers: fix list sizing rounding error (SEC) stable
Matt Mackall <mpm@selenic.com> [Wed, 16 Mar 2016 17:29:29 -0700] rev 28656
parsers: fix list sizing rounding error (SEC) CVE-2016-3630 (1/2) This addresses part of a vulnerability in application of binary deltas.
Mon, 28 Mar 2016 17:16:00 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 28 Mar 2016 17:16:00 -0500] rev 28655
merge with stable
Mon, 28 Mar 2016 09:12:03 +0200 debugsetparents: remove redundant invocations of begin/endparentchange
liscju <piotr.listkiewicz@gmail.com> [Mon, 28 Mar 2016 09:12:03 +0200] rev 28654
debugsetparents: remove redundant invocations of begin/endparentchange Method localrepo.setparents invokes begin/endparentchange internally, so there is no need to invoke it explicitly in debugsetparents.
Sun, 27 Mar 2016 13:13:19 -0700 sslutil: add docstring to wrapsocket()
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 27 Mar 2016 13:13:19 -0700] rev 28653
sslutil: add docstring to wrapsocket() Security should not be opaque.
Sun, 27 Mar 2016 11:39:39 -0700 sslutil: remove indentation in wrapsocket declaration
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 27 Mar 2016 11:39:39 -0700] rev 28652
sslutil: remove indentation in wrapsocket declaration It is no longer needed because we have a single code path.
Sun, 27 Mar 2016 14:18:32 -0700 sslutil: always use SSLContext
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 27 Mar 2016 14:18:32 -0700] rev 28651
sslutil: always use SSLContext Now that we have a fake SSLContext instance, we can unify the code paths for wrapping sockets to always use the SSLContext APIs. Because this is security code, I've retained the try..except to make the diff easier to read. It will be removed in the next patch. I took the liberty of updating the inline docs about supported protocols and how the constants work because this stuff is important and needs to be explicitly documented.
Sun, 27 Mar 2016 14:08:52 -0700 sslutil: move _canloaddefaultcerts logic
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 27 Mar 2016 14:08:52 -0700] rev 28650
sslutil: move _canloaddefaultcerts logic We now have a newer block accessing SSLContext. Let's move this code to make subsequent refactorings of the former block easier.
Sun, 27 Mar 2016 13:50:34 -0700 sslutil: implement SSLContext class
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 27 Mar 2016 13:50:34 -0700] rev 28649
sslutil: implement SSLContext class Python <2.7.9 doesn't have a ssl.SSLContext class. In this patch, we implement the interface to the class so we can have a unified code path for all supported versions of Python. This is similar to the approach that urllib3 takes.
Sun, 27 Mar 2016 10:47:24 -0700 sslutil: store OP_NO_SSL* constants in module scope
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 27 Mar 2016 10:47:24 -0700] rev 28648
sslutil: store OP_NO_SSL* constants in module scope An upcoming patch will introduce a global SSLContext type so we have a single function used to wrap sockets. Prepare for that by introducing module level constants for disabling SSLv2 and SSLv3.
Sun, 27 Mar 2016 14:07:06 -0700 sslutil: better document state of security/ssl module
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 27 Mar 2016 14:07:06 -0700] rev 28647
sslutil: better document state of security/ssl module Pythons older than 2.7.9 are lacking the modern ssl module and have horrible security. Let's document this explicitly.
Mon, 28 Mar 2016 01:57:44 +0530 tests: make tinyproxy.py use print_function
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 28 Mar 2016 01:57:44 +0530] rev 28646
tests: make tinyproxy.py use print_function
Mon, 28 Mar 2016 04:02:07 +0000 run-tests: use canonpath for with-python3
timeless <timeless@mozdev.org> [Mon, 28 Mar 2016 04:02:07 +0000] rev 28645
run-tests: use canonpath for with-python3
Mon, 28 Mar 2016 04:01:21 +0000 run-tests: add canonpath function
timeless <timeless@mozdev.org> [Mon, 28 Mar 2016 04:01:21 +0000] rev 28644
run-tests: add canonpath function consistently use realpath+expanduser
Mon, 28 Mar 2016 03:40:30 +0000 tests: glob py3 line numbers
timeless <timeless@mozdev.org> [Mon, 28 Mar 2016 03:40:30 +0000] rev 28643
tests: glob py3 line numbers Since not everyone is running py3.5 and code changes periodically, avoid pinning line numbers for invalid syntax errors.
Mon, 28 Mar 2016 03:35:08 +0000 tests: update py3.5 output
timeless <timeless@mozdev.org> [Mon, 28 Mar 2016 03:35:08 +0000] rev 28642
tests: update py3.5 output 6d7da0901a28 removed one item...
Thu, 17 Mar 2016 14:50:29 +0000 summary: move mergemod before parents to give access to ms
timeless <timeless@mozdev.org> [Thu, 17 Mar 2016 14:50:29 +0000] rev 28641
summary: move mergemod before parents to give access to ms
Thu, 17 Mar 2016 00:36:01 +0000 filemerge: use revset notation for p1/p2 of local/other descriptions
timeless <timeless@mozdev.org> [Thu, 17 Mar 2016 00:36:01 +0000] rev 28640
filemerge: use revset notation for p1/p2 of local/other descriptions
Sat, 26 Mar 2016 12:55:52 +0900 tests: fix for failure of test-convert-p4-filetypes.t
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 26 Mar 2016 12:55:52 +0900] rev 28639
tests: fix for failure of test-convert-p4-filetypes.t Before this patch, test-convert-p4-filetypes.t fails (at least with 2015.2/1366233 version of p4/p4d), because some files below are omitted in expected output for revision 1. - file_tempobj - file_xtempobj These files are: - add-ed at revision 0, and - edit-ed at revision 1 According to perforce command reference below, file type 'tempobj' and 'xtempobj' imply '+S' modifier, which indicates that "Only the head revision is stored". This means that these files should appear only in the most recent revision (= revision 1). https://www.perforce.com/perforce/doc.current/manuals/cmdref/file.types.html BTW, test-convert-p4-filetypes.t with 2015.2/1366233 version of p4/p4d fails similarly also at recent revisions for hgext/convert/p4.py in 2015. Therefore, this patch should be reviewed by perforce guru, to examine whether this failure depends on version (and/or configuration) of p4/p4d or not.
Sun, 20 Mar 2016 21:08:17 -0400 crecord: re-enable reviewing a patch before comitting it
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Sun, 20 Mar 2016 21:08:17 -0400] rev 28638
crecord: re-enable reviewing a patch before comitting it The "r" option for this feature was copied into Mercurial from crecord, but the actual implementation never made it into hg until now. It's a moderately useful feature that allows the user to edit the patch in a text editor before comitting it for good. This requires a test, so we must also enable a corresponding testing 'R' option that skips the confirmation dialogue. In addition, we also need a help text for the editor when reviewing the final patch. As for why this is a useful feature if we can already edit hunks in an editor, I would like to offer the following points: * editing hunks does not show the entire patch all at once ** furthermore, the hunk "tree" in the TUI has no root that could be selected for edition * it is helpful to be able to see the entire final patch for confirmation ** within this view, the unselected hunks are hidden, which is visusally cleaner ** this works as a final review of the complete result, which is a bit more difficult to do conceptually via hunk editing * this feature was already in crecord, so it was an oversight to not bring it to core * it works and is consistent with editing hunks
Sun, 20 Mar 2016 18:24:59 -0400 crecord: break out the help message for editing hunks
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Sun, 20 Mar 2016 18:24:59 -0400] rev 28637
crecord: break out the help message for editing hunks This help message can be useful for other situations, such as for the review extension. It's also easier to write it at the top-level indentation with triple-quoted strings instead of inserting comment characters and newlines programmatically.
Sun, 20 Mar 2016 20:59:05 -0400 crecord: refactor hunk edit action to use ui.edit
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Sun, 20 Mar 2016 20:59:05 -0400] rev 28636
crecord: refactor hunk edit action to use ui.edit The previous version of this code did a lot of dancing around a temporary edit file that ui.edit already handles.
Sun, 20 Mar 2016 13:55:41 -0400 edit: allow to configure the suffix of the temporary filename
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Sun, 20 Mar 2016 13:55:41 -0400] rev 28635
edit: allow to configure the suffix of the temporary filename Sometimes, we can pick a more appropriate default suffix than ".txt", for example, diffs could have a ".diff" suffix.
Sat, 19 Mar 2016 18:37:10 -0700 merge: save merge part labels for later reuse
Simon Farnsworth <simonfar@fb.com> [Sat, 19 Mar 2016 18:37:10 -0700] rev 28634
merge: save merge part labels for later reuse We permit the caller of merge operations to supply labels for the merge parts ("local", "other", and optionally "base"). These labels are used in conflict markers to reduce confusion; however, the labels were not persistent, so 'hg resolve' would lose the labels. Store the labels in the mergestate.
Fri, 25 Mar 2016 21:51:00 +0000 ui: add prompt argument to write (issue5154) (API)
timeless <timeless@mozdev.org> [Fri, 25 Mar 2016 21:51:00 +0000] rev 28633
ui: add prompt argument to write (issue5154) (API) When code like filemerge._iprompt calls ui.prompt, it expects the user to see the output in addition to getting the prompt. Other code such as histedit may call ui.pushbuffer, but its goal is not to interfere with prompts, so this commit adds an optional prompt flag to ui.write and has _readline include that argument. ui.promptchoice calls ui.prompt which calls ui._readline. This commit also updates hgext.color.write.
Fri, 25 Mar 2016 10:47:49 -0700 hg: perform update after pulling during clone with share (issue5103) stable
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 25 Mar 2016 10:47:49 -0700] rev 28632
hg: perform update after pulling during clone with share (issue5103) This is a graft of 60adda1a0188 and a4692267bc2d from the default branch. Combined, they address a bug with pooled shared storage where an update may not update to the most recent revision when performing a `hg clone`. The patches should have been written against the stable branch in the beginning. I screwed up.
Sat, 26 Mar 2016 10:53:31 +0900 tests: fix failure of test-convert-mtn.t
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 26 Mar 2016 10:53:31 +0900] rev 28631
tests: fix failure of test-convert-mtn.t This is follow up for 3f9e25a42e69, which overlooked this test.
Sat, 26 Mar 2016 18:12:12 +0900 templater: relax unquotestring() to fall back to bare string
Yuya Nishihara <yuya@tcha.org> [Sat, 26 Mar 2016 18:12:12 +0900] rev 28630
templater: relax unquotestring() to fall back to bare string This is convenient for our use case where quotes are optional except in a map file.
Sat, 26 Mar 2016 19:01:12 +0900 debugrevspec: show expanded/concatenated states before printing trees
Yuya Nishihara <yuya@tcha.org> [Sat, 26 Mar 2016 19:01:12 +0900] rev 28629
debugrevspec: show expanded/concatenated states before printing trees The debugrevspec command prints at most 4 parsed trees. It wasn't easy to tell which tree belongs to which state.
Sat, 26 Mar 2016 18:01:04 +0900 templater: do not abuse SyntaxError to report errors in template map file
Yuya Nishihara <yuya@tcha.org> [Sat, 26 Mar 2016 18:01:04 +0900] rev 28628
templater: do not abuse SyntaxError to report errors in template map file SyntaxError is the class representing syntax errors in Python code. We should use a dedicated exception class for our needs. With this change, unnecessary re-wrapping of SyntaxError can be eliminated.
Wed, 23 Mar 2016 13:34:47 -0700 graphmod: set default edge styles for ascii graphs (BC)
Martijn Pieters <mjpieters@fb.com> [Wed, 23 Mar 2016 13:34:47 -0700] rev 28627
graphmod: set default edge styles for ascii graphs (BC) Leaving regular parent edges set to |, grandparent edges set to : and missing parent edges set to end early. A sample graph: o changeset: 32:d06dffa21a31 |\ parent: 27:886ed638191b | : parent: 31:621d83e11f67 | : o : changeset: 31:621d83e11f67 |\: parent: 21:d42a756af44d | : parent: 30:6e11cd4b648f | : o : changeset: 30:6e11cd4b648f |\ \ parent: 28:44ecd0b9ae99 | ~ : parent: 29:cd9bb2be7593 | / o : changeset: 28:44ecd0b9ae99 |\ \ parent: 1:6db2ef61d156 | ~ : parent: 26:7f25b6c2f0b9 | / o : changeset: 26:7f25b6c2f0b9 |\ \ parent: 18:1aa84d96232a | | : parent: 25:91da8ed57247 | | : | o : changeset: 25:91da8ed57247 | |\: parent: 21:d42a756af44d | | : parent: 24:a9c19a3d96b7 | | : | o : changeset: 24:a9c19a3d96b7 | |\ \ parent: 0:e6eb3150255d | | ~ : parent: 23:a01cddf0766d | | / | o : changeset: 23:a01cddf0766d | |\ \ parent: 1:6db2ef61d156 | | ~ : parent: 22:e0d9cccacb5d | | / | o : changeset: 22:e0d9cccacb5d |/:/ parent: 18:1aa84d96232a | : parent: 21:d42a756af44d | : | o changeset: 21:d42a756af44d | |\ parent: 19:31ddc2c1573b | | | parent: 20:d30ed6450e32 | | | +---o changeset: 20:d30ed6450e32 | | | parent: 0:e6eb3150255d | | ~ parent: 18:1aa84d96232a | | | o changeset: 19:31ddc2c1573b | |\ parent: 15:1dda3f72782d | ~ ~ parent: 17:44765d7c06e0 | o changeset: 18:1aa84d96232a parent: 1:6db2ef61d156 parent: 15:1dda3f72782d
Thu, 24 Mar 2016 16:35:24 -0700 tests: python executable should always be globbed
Sean Farley <sean@farley.io> [Thu, 24 Mar 2016 16:35:24 -0700] rev 28626
tests: python executable should always be globbed Similar to 4d93d73b8aec, the python executable could be python2.X, Python, pypy, or maybe something futuristic like pyston or nuitka.
Tue, 22 Mar 2016 16:08:02 -0700 setup: add missing hgext.fsmonitor
Sean Farley <sean@farley.io> [Tue, 22 Mar 2016 16:08:02 -0700] rev 28625
setup: add missing hgext.fsmonitor Before this patch, fsmonitor was not installed along with other extensions. It did correctly build the C files needed but forgot to copy over the python files. This patch fixes it by adding fsmonitor and fsmonitor.pywatchman to the correct install variable.
Fri, 25 Mar 2016 16:23:23 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 25 Mar 2016 16:23:23 -0500] rev 28624
merge with stable
Sat, 09 Jan 2016 22:46:26 +0900 dispatch: show deprecation warning if command has no attributes (issue5137)
Yuya Nishihara <yuya@tcha.org> [Sat, 09 Jan 2016 22:46:26 +0900] rev 28623
dispatch: show deprecation warning if command has no attributes (issue5137) norepo/optionalrepo/inferrepo were removed by aa73d6a5d9ea, which would be significant API change. This patch tries to avoid crash even if ancient third-party extensions are enabled.
Mon, 14 Mar 2016 00:14:43 +0900 dispatch: extract function that tests command attributes
Yuya Nishihara <yuya@tcha.org> [Mon, 14 Mar 2016 00:14:43 +0900] rev 28622
dispatch: extract function that tests command attributes This function will host the compatibility layer for old third-party commands. See the next patch for details.
Mon, 14 Mar 2016 00:06:52 +0900 dispatch: make cmdalias forward command attributes to function
Yuya Nishihara <yuya@tcha.org> [Mon, 14 Mar 2016 00:06:52 +0900] rev 28621
dispatch: make cmdalias forward command attributes to function This delays resolution of command attributes so that missing attributes can be warned only when necessary.
Sun, 20 Mar 2016 17:18:06 -0700 run-tests: use different chg socket directories for different tests
Jun Wu <quark@fb.com> [Sun, 20 Mar 2016 17:18:06 -0700] rev 28620
run-tests: use different chg socket directories for different tests Before this patch, if --chg or --with-chg is specified, all tests are using the same chgserver socket. Since the chg client holds a lock when it starts a new server, and every test needs at least a new chg server due to different HGRCPATH affecting the confighash, the result is a lot of tests will be timed out if -j is large (for example, 50 or 100). This patch solves the issue by using different chg socket directories for different tests.
Mon, 21 Mar 2016 20:56:46 +0000 tests: ensure run-tests handles multiple lines of churn
timeless <timeless@mozdev.org> [Mon, 21 Mar 2016 20:56:46 +0000] rev 28619
tests: ensure run-tests handles multiple lines of churn 1ad0ddf8cccc added the ability to remember lines (including their flags, like glob) and tolerate them even if the output order varies. This test ensures that the code will continue to work in the future.
Thu, 24 Mar 2016 09:38:11 -0700 subrepo: adapt to git's recent renames-by-default stable
Martin von Zweigbergk <martinvonz@google.com> [Thu, 24 Mar 2016 09:38:11 -0700] rev 28618
subrepo: adapt to git's recent renames-by-default Git turned on renames by default in commit 5404c11 (diff: activate diff.renames by default, 2016-02-25). The change is destined for release in git 2.8.0. The change breaks test-subrepo-git, which test specifically that a moved file is reported as a removal and an addition. Fix by passing --no-renames (available in git since mid 2006) to the diff commands that don't use --quiet (should make no difference for those).
Thu, 24 Mar 2016 00:09:58 -0700 graphmod: move the graphstyle options to experimental
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 24 Mar 2016 00:09:58 -0700] rev 28617
graphmod: move the graphstyle options to experimental I let this slip in the [ui] section during the review, as far as I understand we don't plan to actually support customisation of the output on we are happy with our choice. The option are just here to help people tests various options so we can decide which one we'll actually use. I'm moving the config option in the experimental section to make this clearer and avoid making them part of the public API by mistake.
Mon, 21 Mar 2016 21:06:49 +0000 tests: remove obsolete uses of HGTEST_RUN_TESTS_PURE
timeless <timeless@mozdev.org> [Mon, 21 Mar 2016 21:06:49 +0000] rev 28616
tests: remove obsolete uses of HGTEST_RUN_TESTS_PURE 342ab95a1f4b added arguments to run-tests.py calls to propagate --pure when --with-hg is not used. 0622d6e134fb unified places to use --with-hg via rt(), which obviated the need for passing HGTEST_RUN_TESTS_PURE.
Sun, 20 Mar 2016 17:30:56 -0700 test-debugextensions: passes with byte-compilation disabled (issue5147)
Kevin Bullock <kbullock@ringworld.org> [Sun, 20 Mar 2016 17:30:56 -0700] rev 28615
test-debugextensions: passes with byte-compilation disabled (issue5147)
Wed, 23 Mar 2016 11:53:11 +0800 rpms: add hgext3rd to mercurial.spec
Anton Shestakov <av6@dwimlabs.net> [Wed, 23 Mar 2016 11:53:11 +0800] rev 28614
rpms: add hgext3rd to mercurial.spec Otherwise build process fails with somethings like this: RPM build errors: Installed (but unpackaged) file(s) found: /usr/lib64/python2.7/site-packages/hgext3rd/__init__.py /usr/lib64/python2.7/site-packages/hgext3rd/__init__.pyc /usr/lib64/python2.7/site-packages/hgext3rd/__init__.pyo make: *** [docker-fedora20] Error 1
Wed, 23 Mar 2016 10:50:24 -0700 debugobsolete: add an option to show marker index
Kostia Balytskyi <ikostia@fb.com> [Wed, 23 Mar 2016 10:50:24 -0700] rev 28613
debugobsolete: add an option to show marker index A bigger picture is the ability to be delete an arbitrary marker form the repo's obsstore. This is a useful debug ability and it needs a way to indentify the marker one wants to delete. Having a marker's index provides such an ability.
Tue, 15 Mar 2016 09:51:42 +0000 tests: explicitly flush output streams
Jun Wu <quark@fb.com> [Tue, 15 Mar 2016 09:51:42 +0000] rev 28612
tests: explicitly flush output streams Some tests fail while running with chg because they do not flush their output streams. chgserver will make sure ui.flush is called after dispatch, but not after {ui,repo}setup. For other non-ui streams, it should be explicitly flushed since the request handler will use os._exit. This patch adds explicit flushes in test-bundle2-format.t, test-extension.t and test-obsolete.t. It will fix most test cases of them when running with chg.
(0) -10000 -3000 -1000 -224 +224 +1000 +3000 +10000 tip