Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 May 2015 04:56:44 -0700] rev 25370
tests: use bundle2 for test-hook
Using bundle2 has an effect on which hooks are run when. We turn it on for
test-hooks early to reduce the noise of switching the default exchange to
bundle2.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 May 2015 04:57:03 -0700] rev 25369
pull: only prefetch bookmarks when using bundle1
All bundle2 servers now support the 'listkeys' part(1), so we'll
always be able to fetch bookmarks data at the same time as the
changeset. This should be enough to avoid the one race condition that
this bookmark prefetching is trying to work around. It even allows
future server to make sure everything is generated from the same
"transaction" if they become capable of such. The current code was
already overwriting the prefetched value with the one in bundle2
anyway. Note that this is not preventing all race conditions in
related to bookmark in 'hg pull' it makes nothing better and nothing
worse.
Reducing the number of listkeys calls will reduce the latency on pull.
The pre-fetch is also moved into a discovery step because it seems to belong
there.
(1) Because all servers not speaking 'pushkey' parts are compatible with the
'HG2X' protocol only.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 28 May 2015 14:01:53 -0700] rev 25368
pull: document the race condition with bookmark name
It seems valuable to document this in-place to help the next poor soul
looking at this code to understand what kind of beast he is currently
facing.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 28 May 2015 13:55:03 -0700] rev 25367
pull: only list remote bookmarks if -B is used to populate pulled heads
Listing remote bookmarks results in network traffic and latency. This
should be avoided when possible.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 01 Jun 2015 10:50:15 +0900] rev 25366
i18n-ja: synchronized with
8594d0b3018e
Yuya Nishihara <yuya@tcha.org> [Sat, 30 May 2015 12:46:30 +0900] rev 25365
hg: explicitly check that peer lookup object has instance() if call failed
If a "thing" is callable but raises TypeError for some reason, a callable
object would be returned. Thereafter, unfriendly traceback would be displayed:
Traceback (most recent call last):
...
File "mercurial/hg.pyc", line 119, in _peerorrepo
obj = _peerlookup(path).instance(ui, path, create)
AttributeError: 'function' object has no attribute 'instance'
Instead, we should show the reason why "thing(path)" didn't work:
Traceback (most recent call last):
...
File "hggit/__init__.py", line 89, in _local
p = urlcls(path).localpath()
TypeError: 'NoneType' object is not callable
If a "thing" is not callable, it must be a module or an object that implements
instance(). If that module didn't have instance(), the error message would be
"<unloaded module 'foo'> object is not callable". It doesn't make perfect sense,
but it isn't so bad as it can blame which module went wrong.
Yuya Nishihara <yuya@tcha.org> [Mon, 30 Mar 2015 16:23:35 +0900] rev 25364
extensions: show traceback on load failure if --traceback flag is set
Before this patch, there was no handy way to investigate the reason why
extension couldn't be loaded.
If ui.debug is set, tracebacks of both "hgext.foo" and "foo" are displayed
because the first ImportError could occur at very deep dependency module.
Yuya Nishihara <yuya@tcha.org> [Sun, 31 May 2015 14:40:28 +0900] rev 25363
ui: flush stdout before writing traceback to stderr
Sometimes a traceback message is paired with ui.debug(). This patch makes sure
that these messages are displayed in the right order.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 27 May 2015 10:44:04 -0700] rev 25362
treemanifest: visit directory 'foo' when given e.g. '-X foo/ba?'
For globs like 'foo/ba?', match._roots() will return 'foo'. Since
visitdir(), excludes directories in the excluded roots, it would skip
the entire foo directory. This is incorrect, since 'foo/ba?' doesn't
mean that everything in foo/ should be exluded. Note that visitdir()
is called only from the treemanifest class, so this only affects tree
manifests. Fix by adding roots to the set of excluded roots only if
there are no excluded patterns.
Since 'glob' is the default pattern type for globs, we also need to
update some -X patterns in the tests to be of 'path' type to take
advantage of the visitdir tricks. For consistency, also update the -I
patterns.
It seems a little unfortunate that 'foo' in 'hg files -X foo' is
considered a pattern because of the implied 'glob' type, but improving
that is left for another day.
Laurent Charignon <lcharignon@fb.com> [Fri, 29 May 2015 14:24:50 -0700] rev 25361
phases: fix bug where native phase computation wasn't called
I forgot to include this change as a previous diff and the native code to
compute the phases was never called. The AttributeError was silently caught and
the pure implementation was used instead.
Matt Mackall <mpm@selenic.com> [Fri, 29 May 2015 17:00:55 -0500] rev 25360
merge with stable
Laurent Charignon <lcharignon@fb.com> [Wed, 27 May 2015 15:56:10 -0700] rev 25359
record: add default value for operation argument
This patch is part of a series of patches to change the recording ui to reflect
the operation currently running (commit, shelve, revert ...).
This patch adds the default value of the operation argument for record's
standard and curses interface to match what is displayed in the interface
as of today.
Laurent Charignon <lcharignon@fb.com> [Thu, 28 May 2015 16:41:47 -0700] rev 25358
record: precise documentation
This patch improves the documentation of the recordfilter function to explain
that we need a translated string for the 'operation' argument.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 May 2015 06:55:32 -0700] rev 25357
test: use both bundle formats in test-bookmarks-pushpull
It is valuable to have both formats tested.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 May 2015 06:35:34 -0700] rev 25356
test: explicitly test wire protocol discovery with bundle1 and bundle2
We want to make sure the behavior is similar in both cases.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 May 2015 06:37:56 -0700] rev 25355
test: use bundle2 for exchange in test-push-warn
Using bundle2 for exchange unlocks the usage of changegroup version 2. This
version of the changegroup held more information (delta base) that result in a
small increase in content size (20 bytes).
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 May 2015 04:34:03 -0700] rev 25354
test: use bundle2 for exchange in test-largefile
Using bundle2 for exchange unlock the usage of changegroup version 2. This
version of the changegroup held more information (delta base) that result in a
small increase in content size.
It also lead to reordering of output because the exchange scheduling is a bit
different.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 May 2015 04:30:40 -0700] rev 25353
test: use bundle2 for exchange in test-push-warn
Using bundle2 for exchange unlocks the usage of changegroup version 2. This
version of the changegroup held more information (delta base) that result in
a small increase in content size (20 bytes x 2 changes).
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 May 2015 12:49:32 -0700] rev 25352
test: use bundle2 for exchange in test-bookmark-pushpull
This lets us adapt to changes in obsmarkers exchange output earlier.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 May 2015 04:21:39 -0700] rev 25351
test: use bundle2 for exchange in test-obsolete
The bundle2 version of obsmarkers exchange is more informative. Switching to
bundle2 by default will change the output of this tests. To reduce the noise
when switching bundle2 to the default protocol, we migrate this tests early.
Laurent Charignon <lcharignon@fb.com> [Fri, 29 May 2015 10:34:12 -0700] rev 25350
revert: remove unused debug code in the test file
I left a test environment variable in a previous commit and it is doing nothing
useful. This patch removes it.
Ryan McElroy <rmcelroy@fb.com> [Thu, 28 May 2015 20:06:19 -0700] rev 25349
commands: rename current to active in variables and comments
Today, the terms 'active' and 'current' are interchangeably used throughout the
codebase in reference to the active bookmark (the bookmark that will be updated
with the next commit). This leads to confusion among developers and users.
This patch is part of a series to standardize the usage to 'active' throughout
the mercurial codebase and user interface.
Ryan McElroy <rmcelroy@fb.com> [Thu, 28 May 2015 20:03:42 -0700] rev 25348
templatekw: introduce active subkeyword from bookmarks keyword
Today, the terms 'active' and 'current' are interchangeably used throughout the
codebase in reference to the active bookmark (the bookmark that will be updated
with the next commit). This leads to confusion among developers and users.
This patch is part of a series to standardize the usage to 'active' throughout
the mercurial codebase and user interface.
Ryan McElroy <rmcelroy@fb.com> [Thu, 16 Apr 2015 15:18:59 -0700] rev 25347
bookmarks: name label for active bookmark correctly
Retain old label as well for backwards compatibility.
Today, the terms 'active' and 'current' are interchangeably used throughout the
codebase in reference to the active bookmark (the bookmark that will be updated
with the next commit). This leads to confusion among developers and users.
This patch is part of a series to standardize the usage to 'active' throughout
the mercurial codebase and user interface.