Sun, 20 Mar 2016 16:49:56 -0700 test-progress: disable mocking-time tests on chg
Yuya Nishihara <yuya@tcha.org> [Sun, 20 Mar 2016 16:49:56 -0700] rev 28881
test-progress: disable mocking-time tests on chg It's hard to make these tests compatible with chg because a mocked time.time() is recorded and accessed by progbar at random timing. I don't think it's worth fixing this test as it is considered a unit test of time estimates, so just ignores on chg.
Sun, 20 Mar 2016 14:55:56 -0700 hghave: add "chg" flag to skip tests that can't be compatible with chg
Yuya Nishihara <yuya@tcha.org> [Sun, 20 Mar 2016 14:55:56 -0700] rev 28880
hghave: add "chg" flag to skip tests that can't be compatible with chg Several tests fail with chg for several reasons such as loaded chgserver extension, running uisetup() per server instead of per runcommand, etc. Since these tests can't/shouldn't be changed to be chg friendly, we need a flag to skip them. This patch explicitly drops CHGHG environment if chg isn't involved. This way, hghave can just check if CHGHG exists.
Wed, 06 Apr 2016 19:09:12 +0000 tests: add new test for #! shebang lines
timeless <timeless@mozdev.org> [Wed, 06 Apr 2016 19:09:12 +0000] rev 28879
tests: add new test for #! shebang lines * use #!/bin/sh not e.g. #!/usr/bin/sh * use #!/usr/bin/env python not e.g. #!/usr/bin/python
Sun, 27 Mar 2016 13:00:28 -0700 largefiles: introduce push --lfrev to control which revisions are pushed
Mads Kiilerich <madski@unity3d.com> [Sun, 27 Mar 2016 13:00:28 -0700] rev 28878
largefiles: introduce push --lfrev to control which revisions are pushed The default of pushing all largefiles referenced in outgoing revisions is safe, but also expensive and sometimes not what is needed. We thus introduce a --lfrev option, similar to what pull already has. By specifying an empty set of revisions (or null), it is possible to get lazy (and insecure!) pushes of revisions without referenced largefiles, similar to how pull works.
Wed, 13 Apr 2016 01:45:45 +0200 largefiles: don't access repo.changelog directly in getlfilestoupload
Mads Kiilerich <madski@unity3d.com> [Wed, 13 Apr 2016 01:45:45 +0200] rev 28877
largefiles: don't access repo.changelog directly in getlfilestoupload Make it possible to pass both nodes and revisions to getlfilestoupload.
Wed, 13 Apr 2016 01:09:11 +0200 localrepo: refactor prepushoutgoinghook to take a pushop
Mads Kiilerich <madski@unity3d.com> [Wed, 13 Apr 2016 01:09:11 +0200] rev 28876
localrepo: refactor prepushoutgoinghook to take a pushop prepushoutgoinghook was introduced in 6c383c871fdb and largefiles is the only in-tree use of it. Refactor it to be more useful for other use cases in largefiles.
Tue, 29 Mar 2016 00:08:25 +0900 parser: unify parser function of alias declaration and definition
Yuya Nishihara <yuya@tcha.org> [Tue, 29 Mar 2016 00:08:25 +0900] rev 28875
parser: unify parser function of alias declaration and definition We no longer have to keep them separately.
Tue, 29 Mar 2016 00:05:14 +0900 revset: unify function that parses alias declaration and definition
Yuya Nishihara <yuya@tcha.org> [Tue, 29 Mar 2016 00:05:14 +0900] rev 28874
revset: unify function that parses alias declaration and definition We no longer need separate parsers. Only difference between _parsealiasdecl() and _parsealiasdefn() is whether or not to flatten 'or' tree. Since alias declaration should have no 'or' operator, there was no practical difference.
Mon, 29 Feb 2016 18:10:07 +0900 parser: move alias definition parser to common rule-set class
Yuya Nishihara <yuya@tcha.org> [Mon, 29 Feb 2016 18:10:07 +0900] rev 28873
parser: move alias definition parser to common rule-set class The original _parsealiasdefn() function is split into common _builddefn() and revset-specific _parsealiasdefn(). revset._relabelaliasargs() is removed as it is no longer used. The doctests are ported by using the dummy parse().
Mon, 29 Feb 2016 18:00:51 +0900 parser: move _relabelaliasargs() to common rule-set class
Yuya Nishihara <yuya@tcha.org> [Mon, 29 Feb 2016 18:00:51 +0900] rev 28872
parser: move _relabelaliasargs() to common rule-set class This has no doctest because it will be covered by _builddefn() introduced by the next patch. revset._relabelaliasargs() will be removed soon.
Mon, 29 Feb 2016 17:54:03 +0900 parser: move alias declaration parser to common rule-set class
Yuya Nishihara <yuya@tcha.org> [Mon, 29 Feb 2016 17:54:03 +0900] rev 28871
parser: move alias declaration parser to common rule-set class The original _parsealiasdecl() function is split into common _builddecl() and revset-specific _parsealiasdecl(). And the original _parsealiasdecl() call is temporarily replaced by rules._builddecl(), which should be eliminated later. The doctests are mostly ported by using the dummy parse(), but the test for 'foo bar' is kept in _parsealiasdecl() as it checks if "pos != len(decl)" is working. Also, 'foo($1)' test is added to make sure the alias tokenizer can handle '$1' symbol, which is the only reason why we need _parsealiasdecl().
Sun, 03 Apr 2016 16:55:23 +0900 parser: add stub class that will host alias parsing and expansion
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 16:55:23 +0900] rev 28870
parser: add stub class that will host alias parsing and expansion This class will keep syntax rules that are necessary to parse and expand aliases. The implementations will be extracted from the revset module. In order to make the porting easier, this class keeps parsedecl and parsedefn separately, which will be unified later. Also, getlist and funcnode will be refactored by future patches for better handling of the template aliases. The following public functions will be added: aliasrules.build(decl, defn) -> aliasobj parse decl and defn into an object that keeps alias name, arguments and replacement tree. aliasrules.buildmap(aliasitems) -> aliasdict helper to build() a dict of alias objects from a list of (decl, defn) aliasrules.expand(aliasdict, tree) -> tree expand aliases in tree recursively Because these functions aren't introduced by this series, there would remain a few wrapper functions in the revset module. These ugly wrappers should be eliminated by the next series. This class is considered an inheritable namespace, which will host only class/static methods. That's because it won't have no object-scope variables. I'm not a big fan of using class as a syntax sugar, but I admit it can improve code readability at some level. So let's give it a try.
Mon, 29 Feb 2016 17:43:39 +0900 revset: narrow scope of "except ParseError" block in _parsealiasdecl()
Yuya Nishihara <yuya@tcha.org> [Mon, 29 Feb 2016 17:43:39 +0900] rev 28869
revset: narrow scope of "except ParseError" block in _parsealiasdecl() This helps to factor out a common function. "if True" will be removed soon.
Tue, 12 Apr 2016 04:06:50 -0700 obsstore: move delete function from obsstore class to repair module
Kostia Balytskyi <ikostia@fb.com> [Tue, 12 Apr 2016 04:06:50 -0700] rev 28868
obsstore: move delete function from obsstore class to repair module Since one of the original patches was accepted already and people on the mailing list still have suggestions as to how this should be improved, I'm implementing those suggestions in the following patches (this and the ones that might follow).
Tue, 12 Apr 2016 03:40:53 -0700 debugobsolete: style fixes to debugobsolete that slipped from original commit
Kostia Balytskyi <ikostia@fb.com> [Tue, 12 Apr 2016 03:40:53 -0700] rev 28867
debugobsolete: style fixes to debugobsolete that slipped from original commit
Wed, 09 Mar 2016 10:47:33 -0500 import: document --exact behavior in more detail
Matt Mackall <mpm@selenic.com> [Wed, 09 Mar 2016 10:47:33 -0500] rev 28866
import: document --exact behavior in more detail
Mon, 11 Apr 2016 19:46:50 +0200 util: add doctest to datestr()
Adrian Buehlmann <adrian@cadifra.com> [Mon, 11 Apr 2016 19:46:50 +0200] rev 28865
util: add doctest to datestr()
Tue, 12 Apr 2016 00:30:28 +0200 date: fix boundary check of negative integer
Florent Gallaire <fgallaire@gmail.com> [Tue, 12 Apr 2016 00:30:28 +0200] rev 28864
date: fix boundary check of negative integer
Sun, 10 Apr 2016 22:00:34 +0100 chg: server exited with code 0 without being connectable is an error
Jun Wu <quark@fb.com> [Sun, 10 Apr 2016 22:00:34 +0100] rev 28863
chg: server exited with code 0 without being connectable is an error Before this patch, if the server started by chg has exited with code 0 without creating a connectable unix domain socket at the specified address, chg will exit with code 0, which is not the correct behavior. It can happen, for example, CHGHG is set to /bin/true. This patch addresses the issue by checking the exit code of the server and printing a new error message if the server exited normally but cannot be reached.
Fri, 08 Apr 2016 23:33:28 -0700 shelve: refactor directory name into constant
Oleg Afanasyev <olegaf@fb.com> [Fri, 08 Apr 2016 23:33:28 -0700] rev 28862
shelve: refactor directory name into constant Shelve directory name extracted into constant to avoid typos/duplication.
Sun, 10 Apr 2016 20:55:37 +0000 pycompat: switch to util.stringio for py3 compat
timeless <timeless@mozdev.org> [Sun, 10 Apr 2016 20:55:37 +0000] rev 28861
pycompat: switch to util.stringio for py3 compat
Sun, 10 Apr 2016 21:32:08 +0000 py3: use multi-line import in test-wireproto.py
timeless <timeless@mozdev.org> [Sun, 10 Apr 2016 21:32:08 +0000] rev 28860
py3: use multi-line import in test-wireproto.py The reason I did it is that I had a later commit that was adding to the list.
Sun, 10 Apr 2016 21:32:05 +0000 py3: use absolute_import in test-hgweb-non-interactive.t
timeless <timeless@mozdev.org> [Sun, 10 Apr 2016 21:32:05 +0000] rev 28859
py3: use absolute_import in test-hgweb-non-interactive.t
Sun, 10 Apr 2016 21:32:01 +0000 py3: use absolute_import in test-hgweb-no-request-uri.t
timeless <timeless@mozdev.org> [Sun, 10 Apr 2016 21:32:01 +0000] rev 28858
py3: use absolute_import in test-hgweb-no-request-uri.t
Sun, 10 Apr 2016 21:31:58 +0000 py3: use absolute_import in test-hgweb-no-path-info.t
timeless <timeless@mozdev.org> [Sun, 10 Apr 2016 21:31:58 +0000] rev 28857
py3: use absolute_import in test-hgweb-no-path-info.t
Mon, 11 Apr 2016 00:18:27 +0100 chg: use fsetcloexec instead of closing lockfd manually
Jun Wu <quark@fb.com> [Mon, 11 Apr 2016 00:18:27 +0100] rev 28856
chg: use fsetcloexec instead of closing lockfd manually Since we have the fsetcloexec utility function, use it instead of closing lockfd manually.
Mon, 11 Apr 2016 00:17:17 +0100 chg: extract the logic of setting FD_CLOEXEC to a utility function
Jun Wu <quark@fb.com> [Mon, 11 Apr 2016 00:17:17 +0100] rev 28855
chg: extract the logic of setting FD_CLOEXEC to a utility function Setting FD_CLOEXEC is useful for other fds such like lockfd and sockdirfd, move the logic from hgc_open to util.
Sun, 10 Apr 2016 03:14:32 +0100 chg: add fchdirx as a utility function
Jun Wu <quark@fb.com> [Sun, 10 Apr 2016 03:14:32 +0100] rev 28854
chg: add fchdirx as a utility function As part of the series to support long socket paths, we need to use fchdir and check its result in several places. Make it a utility function.
Sun, 10 Apr 2016 22:58:11 +0100 chg: check lockfd at freecmdserveropts
Jun Wu <quark@fb.com> [Sun, 10 Apr 2016 22:58:11 +0100] rev 28853
chg: check lockfd at freecmdserveropts We check for sockdirfd at freecmdserveropts but not lockfd, which is a bit strange to people new to the code. Add a comment and an assert to make it clear that lockfd should be closed earlier.
Sun, 10 Apr 2016 23:56:00 +0100 chg: add sockdirfd to cmdserveropts
Jun Wu <quark@fb.com> [Sun, 10 Apr 2016 23:56:00 +0100] rev 28852
chg: add sockdirfd to cmdserveropts As part of the series to support long socket paths, we need to add the fd of the directory to the cmdserveropts structure so we can use basenames instead of full paths for sockname, redirectsockname, and lockfile.
Sun, 10 Apr 2016 21:56:05 +0100 chg: fix spelling in the error message about error waiting for cmdserver
Jun Wu <quark@fb.com> [Sun, 10 Apr 2016 21:56:05 +0100] rev 28851
chg: fix spelling in the error message about error waiting for cmdserver This is a trivial spelling and grammar fix.
Sun, 10 Apr 2016 11:02:58 -0700 sslutil: document and slightly refactor validation logic
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 10 Apr 2016 11:02:58 -0700] rev 28850
sslutil: document and slightly refactor validation logic This main purpose of this patch is to make it clearer that fingerprint pinning takes precedence over CA verification. This will make subsequent refactoring to the validation code easier to read.
Sun, 10 Apr 2016 11:00:41 -0700 sslutil: require a server hostname when wrapping sockets (API)
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 10 Apr 2016 11:00:41 -0700] rev 28849
sslutil: require a server hostname when wrapping sockets (API) All callers appear to be passing the hostname. So this shouldn't break anything. By specifying the hostname, more validation options from the ssl module are available to us. Although this patch stops short of using them.
Sun, 10 Apr 2016 10:59:45 -0700 sslutil: move and document verify_mode assignment
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 10 Apr 2016 10:59:45 -0700] rev 28848
sslutil: move and document verify_mode assignment Consolidating all the SSLContext options setting makes the code a bit easier to read.
Sun, 10 Apr 2016 10:54:53 -0700 tests: use --insecure instead of web.cacerts=!
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 10 Apr 2016 10:54:53 -0700] rev 28847
tests: use --insecure instead of web.cacerts=! --insecure is the proper and documented way to do this. The end result is the same: dispatch will set web.cacerts to ! when --insecure is passed. This patch is necessary to refactor handling of web.cacerts in upcoming patches.
Sun, 10 Apr 2016 10:58:47 -0700 help: remove references to "Python 2.6 or later"
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 10 Apr 2016 10:58:47 -0700] rev 28846
help: remove references to "Python 2.6 or later" We require Python 2.6. So there is no value to these docs.
Mon, 04 Apr 2016 02:05:10 -0700 commands: make --rev and --index compatible in debugobsolete
Kostia Balytskyi <ikostia@fb.com> [Mon, 04 Apr 2016 02:05:10 -0700] rev 28845
commands: make --rev and --index compatible in debugobsolete
Sun, 03 Apr 2016 19:38:57 +0900 tests: enable import checker for tests/**.py files
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 19:38:57 +0900] rev 28844
tests: enable import checker for tests/**.py files Several known-bad files are excluded as they couldn't be trivially fixed. In principle, we should fix them first, however, it would have more risk to keep Py3k porting going without the test coverage. Still contrib/**.py aren't covered, which needs another round.
Tue, 05 Apr 2016 23:38:00 +0900 tests: stop direct symbol import of mercurial modules in test-status-inprocess
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:38:00 +0900] rev 28843
tests: stop direct symbol import of mercurial modules in test-status-inprocess
Tue, 05 Apr 2016 23:35:45 +0900 tests: alias ui as uimod in test-revlog-ancestry/test-ui-verbosity
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:35:45 +0900] rev 28842
tests: alias ui as uimod in test-revlog-ancestry/test-ui-verbosity
Tue, 05 Apr 2016 23:23:43 +0900 tests: move stdlib imports before mercurial modules in test-parseindex2
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:23:43 +0900] rev 28841
tests: move stdlib imports before mercurial modules in test-parseindex2
Tue, 05 Apr 2016 23:22:38 +0900 tests: stop direct symbol import of pprint.pprint in tests-minirst
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:22:38 +0900] rev 28840
tests: stop direct symbol import of pprint.pprint in tests-minirst
Tue, 05 Apr 2016 23:30:18 +0900 tests: import mercurial modules by name in test-propertycache
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:30:18 +0900] rev 28839
tests: import mercurial modules by name in test-propertycache This is our convention, and silences import-checker.py that would say imports weren't lexically sorted.
Tue, 05 Apr 2016 23:33:55 +0900 tests: remove unused import of mercurial.repoview from test-propertycache
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:33:55 +0900] rev 28838
tests: remove unused import of mercurial.repoview from test-propertycache I don't see any reason to import it, but if there is a reason, please disregard this and the next patch.
Sun, 03 Apr 2016 11:23:31 +0900 templater: drop deprecated handling of KeyError from changeset_templater
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 11:23:31 +0900] rev 28837
templater: drop deprecated handling of KeyError from changeset_templater It's been superseded by 09cde75e0613 and the previous patch. templater.mapfile is no longer used and removed.
Wed, 06 Apr 2016 20:34:34 +0000 test-commandserver: handle cStringIO.StringIO/io.StringIO divergence
timeless <timeless@mozdev.org> [Wed, 06 Apr 2016 20:34:34 +0000] rev 28836
test-commandserver: handle cStringIO.StringIO/io.StringIO divergence
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.
(0) -10000 -3000 -1000 -300 -100 -60 +60 +100 +300 +1000 +3000 +10000 tip