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
timeless <timeless@mozdev.org> [Wed, 06 Apr 2016 22:35:52 +0000] rev 28834
pycompat: alias xrange to range in py3
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.
timeless <timeless@mozdev.org> [Tue, 29 Mar 2016 17:43:23 +0000] rev 28832
util: use __code__ (available since py2.6)
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.
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.
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.
timeless <timeless@mozdev.org> [Fri, 08 Apr 2016 18:35:49 +0000] rev 28828
help: report source of aliases
timeless <timeless@mozdev.org> [Fri, 08 Apr 2016 16:05:52 +0000] rev 28827
compact: add color labels to -Tcompact
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
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.
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
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.
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.
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).
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
timeless <timeless@mozdev.org> [Wed, 06 Apr 2016 20:07:51 +0000] rev 28819
scmutil: use util.queue/util.empty for py3 compat
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
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.
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
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
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
timeless <timeless@mozdev.org> [Wed, 06 Apr 2016 17:52:17 +0000] rev 28813
localrepo: refactor commit argument check as checkcommitpatterns
timeless <timeless@mozdev.org> [Tue, 05 Apr 2016 04:26:20 +0000] rev 28812
run-tests: handle empty tests
timeless <timeless@mozdev.org> [Tue, 12 Jan 2016 09:30:57 +0000] rev 28811
docchecker: try to reject single quotes
timeless <timeless@mozdev.org> [Thu, 03 Mar 2016 03:32:44 +0000] rev 28810
docchecker: report context line at most once
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
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
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:20:04 +0900] rev 28807
test-hgweb-auth: alias ui as uimod
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
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:17:43 +0900] rev 28805
test-filelog: 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
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:16:16 +0900] rev 28803
test-filecache: alias ui as uimod
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:15:49 +0900] rev 28802
test-filecache: sort import lines
Yuya Nishihara <yuya@tcha.org> [Tue, 05 Apr 2016 23:13:52 +0900] rev 28801
test-ctxmanager: stop direct symbol import of mercurial.util
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.
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.
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.
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.
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
"""
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 19:47:29 +0900] rev 28779
hghave: replace relative import of docutils.core
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
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 20:13:42 +0900] rev 28777
tests: alias ui as uimod in test-walkrepo
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 19:56:59 +0900] rev 28776
tests: alias ui as uimod in test-ui-config
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 19:52:13 +0900] rev 28775
tests: alias ui as uimod in test-context
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 19:48:47 +0900] rev 28774
tests: alias ui as uimod in test-ancestor
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 20:11:41 +0900] rev 28773
tests: sort import lines in tinyproxy.py
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 19:41:00 +0900] rev 28772
tests: sort import lines in failfilemerge.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?
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.
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.
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.
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.
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
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
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
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
Robert Stanca <robert.stanca7@gmail.com> [Mon, 04 Apr 2016 04:56:05 +0300] rev 28762
py3: use print_function in test-propertycache.py
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!
timeless <timeless@mozdev.org> [Fri, 01 Apr 2016 13:19:29 +0000] rev 28760
hghave: use checkvers for bzr114
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...
timeless <timeless@mozdev.org> [Fri, 01 Apr 2016 13:04:16 +0000] rev 28758
hghave: add checkvers function
timeless <timeless@mozdev.org> [Mon, 04 Apr 2016 02:17:36 +0000] rev 28757
hghave: add docstring for check
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.
Robert Stanca <robert.stanca7@gmail.com> [Mon, 04 Apr 2016 03:16:18 +0300] rev 28755
py3: use absolute_import in test-propertycache.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
Robert Stanca <robert.stanca7@gmail.com> [Mon, 04 Apr 2016 03:06:33 +0300] rev 28753
py3: use absolute_import in test-parseindex2.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
Robert Stanca <robert.stanca7@gmail.com> [Mon, 04 Apr 2016 03:00:43 +0300] rev 28751
py3: use absolute_import in test-minirst.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
Robert Stanca <robert.stanca7@gmail.com> [Mon, 04 Apr 2016 01:33:08 +0300] rev 28749
py3: use absolute_import in test-hybridencode.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
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
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
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
Robert Stanca <robert.stanca7@gmail.com> [Mon, 04 Apr 2016 00:17:11 +0300] rev 28744
py3: use print_function 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
Robert Stanca <robert.stanca7@gmail.com> [Sun, 03 Apr 2016 17:06:40 +0300] rev 28742
py3: use print_function 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
Robert Stanca <robert.stanca7@gmail.com> [Sun, 03 Apr 2016 16:58:43 +0300] rev 28740
py3: use print_function in test-duplicateoptions.py