Yuya Nishihara <yuya@tcha.org> [Thu, 11 Jun 2015 23:04:14 +0900] rev 28374
templater: move label() function from color extension
ui.label() is no-op by default, so we can just call ui.label() by label()
template function no matter if the color is enabled or not.
Yuya Nishihara <yuya@tcha.org> [Thu, 11 Jun 2015 22:58:27 +0900] rev 28373
templater: make label() take unknown symbol as color literal
Instead of the mapping hack introduced by
b775a2029e8d, this patch changes the
way how a label symbol is evaluated. This is still hackish, but should be more
predictable in that it doesn't depend on the known color effects.
This change is intended to eliminate the reference to color._effects so that
color.templatelabel() can be merged with templater.label().
timeless <timeless@mozdev.org> [Wed, 02 Mar 2016 15:50:34 +0000] rev 28372
convert: monotone use absolute_import
timeless <timeless@mozdev.org> [Wed, 02 Mar 2016 15:31:15 +0000] rev 28371
convert: p4 use absolute_import
timeless <timeless@mozdev.org> [Wed, 02 Mar 2016 15:26:49 +0000] rev 28370
convert: hg use absolute_import
timeless <timeless@mozdev.org> [Wed, 02 Mar 2016 14:56:29 +0000] rev 28369
convert: cvsps use absolute_import
timeless <timeless@mozdev.org> [Wed, 02 Mar 2016 14:23:23 +0000] rev 28368
convert: darcs use absolute_import
timeless <timeless@mozdev.org> [Wed, 02 Mar 2016 09:00:58 +0000] rev 28367
convert: filemap use absolute_import
timeless <timeless@mozdev.org> [Wed, 02 Mar 2016 08:58:01 +0000] rev 28366
convert: gnuarch use absolute_import
timeless <timeless@mozdev.org> [Wed, 02 Mar 2016 20:42:13 +0000] rev 28365
convert: git use absolute_import
Durham Goode <durham@fb.com> [Mon, 07 Mar 2016 17:26:47 -0800] rev 28364
branchmap: check node against changelog instead of repo
Testing 'node in repo' requires constructing a changectx, which is a little
expensive. Testing 'repo.changelog.hasnode(node)' is notably faster. This
saves 10-20ms off of every command, when testing a few thousand nodes from the
branch cache.
I considered changing the implementation of localrepository.__contains__ so
every place would benefit from the change, but since
localrepository.__contains__ uses changectx to check if the commit exists, it
means it supports a wider range of possible inputs (like revs, hashes, '.',
etc), so it seemed unnecessarily risky.
Martin von Zweigbergk <martinvonz@google.com> [Mon, 29 Feb 2016 09:26:43 -0800] rev 28363
changegroup: clear progress callback after changelog processing
The progress callback is replaced by one for manifests after changelog
processing is done, but let's not depend on manifests replacing the
value and instead explicitly clear it.
Yuya Nishihara <yuya@tcha.org> [Tue, 26 Jan 2016 22:44:29 +0900] rev 28362
tests: adjust for code move in Hypothesis 2.0.0
It appears that the Settings class was renamed to settings, and because
of this, the settings module was renamed to configuration.
https://github.com/DRMacIver/hypothesis/commit/a0e663b
Martin von Zweigbergk <martinvonz@google.com> [Sun, 28 Feb 2016 22:51:07 -0800] rev 28361
changegroup: progress for added files is not measured in "chunks"
The "prog" class cg1unpacker.apply() has the unit set to
"chunks". This is not correct for files, where the file itself is the
unit. The unit is not usually printed, which is probably why this has
not been fixed yet. It can be show with e.g. "--config
progress.format='topic number unit'".
Martin von Zweigbergk <martinvonz@google.com> [Sun, 28 Feb 2016 21:15:06 -0800] rev 28360
changegroup: exclude submanifests from manifest progress
The progress callback for manifests is cleared outside of
_unpackmanifests(), which means it will remain in effect while pulling
subdirectory manifests when using treemanifests. Since the total
number of revisions used for the progress is the number of changesets,
the total number of treemanifest revisions is usually larger than
that. One effect of this is that the ETA is negative. It's hard to
estimate the number of subdirectory revisions, so let's just exclude
them from progress for now.
timeless <timeless@mozdev.org> [Sun, 14 Feb 2016 07:35:50 +0000] rev 28359
commit: block amend while histedit is in progress (
issue4800)
Jun Wu <quark@fb.com> [Wed, 02 Mar 2016 10:42:58 +0000] rev 28358
chg: limit reconnect attempts
Some users may have hg as a wrapper script which sets sensitive environment
variables (like setting up virtualenv). This will make chg redirect forever
because the environment variables are never considered up to date.
This patch adds a limit (10) for reconnect attempts and warn the user with
a possible solution if the limit is exceeded.
Jun Wu <quark@fb.com> [Sun, 06 Mar 2016 14:22:37 +0000] rev 28357
chg: use validate to make sure the server is up to date
This patch uses the newly added validate method to make sure the server has
loaded the up-to-date config and extensions. If the server cannot validate
itself, the client will receive instructions and follow them to try to reach
another server that is more likely to validate itself. The instructions can
be a redirect (connect to another server address) and/or an unlink (stops an
out-dated server).
Jun Wu <quark@fb.com> [Sun, 06 Mar 2016 14:21:52 +0000] rev 28356
chg: implement validate in hgclient
This patch implements the corresponding validate method in hgclient.
It will return instruction strings as is without taking any real action.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 06 Mar 2016 03:15:45 +0530] rev 28355
hgclient: use absolute_import and print_function
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 06 Mar 2016 03:10:17 +0530] rev 28354
fixpax: use absolute_import and print_function
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 06 Mar 2016 03:06:09 +0530] rev 28353
debugcmdserver: use absolute_import and print_function
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 06 Mar 2016 03:01:46 +0530] rev 28352
check-config: use absolute_import and print_function
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 06 Mar 2016 02:25:50 +0530] rev 28351
casesmash: use absolute_import
Jun Wu <quark@fb.com> [Sat, 05 Mar 2016 13:56:59 +0000] rev 28350
chgserver: implement validate command
validate will load the repo config and check if the server has up-to-date
config to continue serve the client. In case it does not, the server will
send instructions to the client about what to do next, including to retry
with a different address or to unlink an outdated socket file to stop an
old server.
Yuya Nishihara <yuya@tcha.org> [Sun, 14 Feb 2016 13:58:46 +0900] rev 28349
templater: handle exception when applying map operator to non-iterable object
Before this, "{noniterable % template}" raised an exception. This tries to
provide a better indication for the common case, where a left-hand-side
expression is a keyword.
Yuya Nishihara <yuya@tcha.org> [Sun, 14 Feb 2016 13:30:32 +0900] rev 28348
templater: factor out thin helper that evaluates argument as string
This function is trivial, but it can make it clear that args[i] is a
(func, data) pair.
Yuya Nishihara <yuya@tcha.org> [Sat, 05 Mar 2016 00:01:36 +0900] rev 28347
color: make label() template function stringify "expr" argument first
Since label() should return a string (or a thunk to be evaluated to a string),
this change is okay. This helps porting to evalstring() helper. See the next
patch for details.
Yuya Nishihara <yuya@tcha.org> [Sun, 14 Feb 2016 13:09:17 +0900] rev 28346
templater: fix shortest() to evaluate int argument and handle error
Yuya Nishihara <yuya@tcha.org> [Sun, 14 Feb 2016 13:05:09 +0900] rev 28345
templater: fix pad() to evaluate int argument and handle error
Yuya Nishihara <yuya@tcha.org> [Sun, 14 Feb 2016 12:48:14 +0900] rev 28344
templater: drop redundant type conversion when evaluating integer argument
A function argument may be an integer. In this case, it isn't necessary to
convert a value to string and back to integer.
Because an argument may be an arbitrary object (e.g. date tuple), TypeError
should be caught as well.
Yuya Nishihara <yuya@tcha.org> [Sun, 14 Feb 2016 12:42:25 +0900] rev 28343
templater: factor out function that evaluates argument as integer
We have more bare int()s that may raise ValueError or TypeError. This function
will be used to fix them.
Jun Wu <quark@fb.com> [Fri, 04 Mar 2016 13:18:02 +0000] rev 28342
chgserver: use basename for socket symlink
Previously we use full path and the symlink may point to outside (unsafe)
world if the directory is moved. This patch fixes it by only linking to
basename of the target. Therefore the symbolic link and socket files will
always stay in the same directory.
Julien Cristau <julien.cristau@logilab.fr> [Thu, 03 Mar 2016 18:34:19 +0100] rev 28341
patch: when importing from email, RFC2047-decode From/Subject headers
Reported at https://bugs.debian.org/737498
timeless <timeless@mozdev.org> [Wed, 02 Mar 2016 22:39:03 +0000] rev 28340
histedit: reword message when a changeset produces no changes
There are various ways to use histedit such that an item in
the list of things to perform will not result in a change
relative to the previous repository state.
When that happens, histedit does not keep the commit/message.
This changes the note to try to explain to the user that it
will not be present in their history.
timeless <timeless@mozdev.org> [Wed, 02 Mar 2016 22:09:18 +0000] rev 28339
tests: replace cat.py with cat in test-histedit-fold-non-commute.t
Danek Duvall <danek.duvall@oracle.com> [Wed, 02 Mar 2016 15:01:41 -0800] rev 28338
tests: Solaris grep doesn't add a trailing newline when it's missing
The bad-extension tests emits a list of not-loaded extensions, and pipes
that output through grep. On Solaris, the test-output gets "(no-eol)"
appended because although the message has no trailing newline, GNU grep
adds it. If we simply add the newline to the message, the problem goes
away for both versions of grep.
Danek Duvall <danek.duvall@oracle.com> [Wed, 02 Mar 2016 14:58:29 -0800] rev 28337
tests: Solaris cmp complains about empty files, even with -s
When you compare an empty file, such as /dev/null, with a non-empty file,
Solaris cmp complains on stderr with "cmp: EOF on /dev/null", even if the
-s argument is present. GNU cmp makes the complaint, but silences it with
-s. We can change the pdiff utility to simply redirect stderr to /dev/null
so that we don't have to worry about this difference in the test files.
Danek Duvall <danek.duvall@oracle.com> [Wed, 02 Mar 2016 14:55:13 -0800] rev 28336
tests: Solaris sed does not support "\n" meaning newline in the RHS of s///
The blackbox test rewrites a copy of test-dispatch.py on the fly, and adds
a couple of lines with the s/// command. GNU sed supports the use of the
\n escape to represent a newline, but not Solaris sed. Using a literal
newline, prefixed by a backslash, works with both versions of the utility.
Danek Duvall <danek.duvall@oracle.com> [Wed, 02 Mar 2016 14:50:37 -0800] rev 28335
tests: Solaris cp doesn't support the -T option
The treemanifest tests use the -T option to cp in order to ensure that the
two directories named on the commandline are treated as peers, rather than
the usual behavior when the final argument is a directory. GNU cp has this
option, but other implementations may not. Thankfully, there's no pressing
reason to use it. We can simply copy the contents of the first directory
into the target directory, since we know that the target directory already
exists.
Yuya Nishihara <yuya@tcha.org> [Sun, 14 Feb 2016 13:36:50 +0900] rev 28334
templater: make date() use helper function to evaluate argument
A date argument should never be a generator, but using evalfuncarg() should
be good for consistency.
Yuya Nishihara <yuya@tcha.org> [Sun, 14 Feb 2016 00:27:09 +0900] rev 28333
templater: fix revset() to evaluate format arguments eagerly
See the previous patch for why. This patch also removes redundant list()
construction from a list.
Yuya Nishihara <yuya@tcha.org> [Sun, 14 Feb 2016 00:18:12 +0900] rev 28332
templater: fix ifcontains() to evaluate items argument eagerly
See the previous patch for why. An "items" argument may be a string,
a generator, or an arbitrary container object.
Yuya Nishihara <yuya@tcha.org> [Sun, 14 Feb 2016 00:05:58 +0900] rev 28331
templater: fix get() to evaluate arguments eagerly
If a key is constructed from a template expression, it may be a generator.
In that case, a key have to be stringified.
A dictarg should never be a generator, but this patch also changes it to
call evalfuncarg() for consistency.
timeless <timeless@mozdev.org> [Wed, 02 Mar 2016 15:38:54 +0000] rev 28330
import-checker: report local with stdlib late warning
Without this, developers have to figure it out on their own
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 03 Mar 2016 23:11:33 -0800] rev 28329
tests: update test output for test written on stable branch (
issue5104)
The changed test lines were added in
d493d64757eb, which
landed on stable. When this changeset merged to the default
branch, the test failed because
a4692267bc2d (on default
but not stable) changed the order of working directory update
when performing a share-based clone from pooled storage.
The changes in this patch are similar to test changes in
a4692267bc2d.
Jun Wu <quark@fb.com> [Mon, 29 Feb 2016 13:46:54 +0000] rev 28328
chgserver: pass hashstate and base server address to chgcmdserver
In order to detect a hash change from a request handler, chg must know the
original hashstate. It also needs the base server address to figure out
redirect addresses.
Jun Wu <quark@fb.com> [Mon, 29 Feb 2016 11:43:25 +0000] rev 28327
chg: drop progress.assume-tty config
It was necessary to go through progress.uisetup() to set up the progressui
wrapper. Since the progress extension has got into the core, progress.assume-tty
is no longer necessary.
Jun Wu <quark@fb.com> [Wed, 02 Mar 2016 10:10:06 +0000] rev 28326
chgserver: mangle server address to include confighash
Before this patch, chgserver will use the address provided by the client. The
new design is one server per confighash. This patch appends "-$confighash" to
the address the client provides. To maintain the compatibility and make sure
the client can connect to the server, a symbolic link is created at the original
address pointing to the new address.
The address is intentionally mangled at the server, instead of being pre-
calculated by some other process (eg. a previous server). In this way, we can
avoid file system race conditions.
Jun Wu <quark@fb.com> [Mon, 29 Feb 2016 14:05:45 +0000] rev 28325
chgserver: update docs
Update the docstring to reflect the latest changes
Matt Mackall <mpm@selenic.com> [Wed, 02 Mar 2016 16:44:56 -0600] rev 28324
merge with stable
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Dec 2015 22:26:31 -0800] rev 28323
commands: use absolute_import
All mercurial.* modules are now using absolute_import \o/
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 27 Feb 2016 23:57:07 -0800] rev 28322
cmdutil: use absolute_import
Now that @command doesn't write back into commands when it is being
executed during the loading of commands.py itself, we are unblocked
from converting cmdutil to absolute_import.
Christian Ebert <blacktrash@gmx.net> [Tue, 01 Mar 2016 10:33:06 +0000] rev 28321
keyword: use absolute_import
Augie Fackler <augie@google.com> [Sun, 28 Feb 2016 22:15:00 -0500] rev 28320
pager: use absolute_import
Augie Fackler <augie@google.com> [Sun, 28 Feb 2016 22:13:47 -0500] rev 28319
pager: add tests
We've never had tests for pager, and I want to start experimenting
with ways to clean up the implementation and make it a bit more
graceful.
Matt Harbison <matt_harbison@yahoo.com> [Mon, 29 Feb 2016 01:01:20 -0500] rev 28318
tests: flag Windows specific lines about background closing as optional
Matt Harbison <matt_harbison@yahoo.com> [Sun, 28 Feb 2016 23:21:28 -0500] rev 28317
run-tests: defer leftover (?) cleanup until after all output is exhausted
Previously, after matching a single line, any contiguous subsequent lines ending
with (?) would be added to the output and removed from the expected output.
This is a problem if the subsequent test output would have matched the consumed
(?) line, because it kept the optional line and then added a duplicate without
the (?) [1]. Instead, wait until there is nothing more to match before handling
the leftovers.
[1] https://www.mercurial-scm.org/pipermail/mercurial-devel/2016-February/080197.html
Matt Harbison <matt_harbison@yahoo.com> [Sun, 28 Feb 2016 23:16:30 -0500] rev 28316
test-run-tests: pad the failure test to preserve the run order
Test size seems to dictate the order in which the tests are run, and the next
patch will add to test-success.t.
Matt Mackall <mpm@selenic.com> [Wed, 02 Mar 2016 16:05:30 -0600] rev 28315
changelog: backed out changeset
86de91c56355
Matt Mackall <mpm@selenic.com> [Wed, 02 Mar 2016 12:46:54 -0600] rev 28314
changelog: backed out changeset
1778770e1982
We want to avoid leaking UTF-8 to main body of code wherever possible.
Yuya Nishihara <yuya@tcha.org> [Fri, 01 Jan 2016 22:16:25 +0900] rev 28313
dispatch: store norepo/optionalrepo/inferrepo attributes in function (API)
This can eliminate import cycles and ugly push/pop of global variables at
_checkshellalias(). Attributes of aliascmd are directly accessible.
Because norepo/optionalrepo/inferrepo lists aren't populated, extensions
examining them no longer work. That's why this patch removes these lists
to signal the API incompatibility.
This breaks 3rd-party extensions that are yet to be ported to @command
decorator.
Yuya Nishihara <yuya@tcha.org> [Sat, 09 Jan 2016 20:04:03 +0900] rev 28312
extensions: copy extra __dict__ of original function
Future patches will make @command decorator set properties such as "norepo" to
a function object. This patch makes sure these properties never be lost by
wrapcommand() or wrapfunction().
This change won't be crazy as the standard functools.wraps() copies __dict__.
Yuya Nishihara <yuya@tcha.org> [Sat, 09 Jan 2016 19:52:55 +0900] rev 28311
extensions: copy attributes to wrapper by wrapfunction()
Before this patch, new partial function "wrap" had no useful docstring. It
makes sense to copy __doc__ and __module__ as we do for wrapcommand().