Durham Goode <durham@fb.com> [Mon, 04 Feb 2013 14:06:20 -0800] rev 18559
addremove: don't call lexists, isdir, and islink
The dirstate walk results contain the stat information for each path, so we
don't need to query it again. On a large repo this makes addremove go from
8.35 seconds to 7.1 (15%).
Durham Goode <durham@fb.com> [Mon, 04 Feb 2013 14:01:40 -0800] rev 18558
addremove: only query dirstate once per path
Previously the addremove code queried the dirstate 4 times per path. Now it
only does so once. On a large repo this brings addremove from 9.5 seconds
to 8.35 seconds (12%).
Mads Kiilerich <madski@unity3d.com> [Mon, 04 Feb 2013 23:48:34 +0100] rev 18557
tests: fix windows test failure with largefiles
Mads Kiilerich <madski@unity3d.com> [Mon, 04 Feb 2013 23:53:37 +0100] rev 18556
merge with stable
Mads Kiilerich <madski@unity3d.com> [Mon, 04 Feb 2013 23:41:11 +0100] rev 18555
tests: fix windows test failure in test-subrepo.t
Matt Mackall <mpm@selenic.com> [Mon, 04 Feb 2013 16:39:02 -0600] rev 18554
merge with stable
Mads Kiilerich <madski@unity3d.com> [Mon, 04 Feb 2013 23:26:44 +0100] rev 18553
largefiles: don't crash when trying to find default dest for url without path
b32e55e6c3c7 introduced a crash when cloning a url without path - where
util.url().path would be None.
This None will now be handled as ''. clone will thus abort with 'repository /
not found' as before.
Mads Kiilerich <madski@unity3d.com> [Mon, 04 Feb 2013 23:25:25 +0100] rev 18552
hgweb.cgi: fix internal WSGI emulation (
issue3804)
The internal WSGI emulation in wsgicgi.py was not fully WSGI compliant and
assumed that all responses sent a body. With
3fbdbeab38cc that caused a real
bug when using hgweb.cgi.
wsgicgi.py will now make sure headers always are sent, using the pattern from
PEP 333 and similar to how it is done in
c007e5c54b16.
Matt Mackall <mpm@selenic.com> [Sat, 02 Feb 2013 16:15:22 -0600] rev 18551
bdiff: simplify overflow checks
Rather than check that each delta start, end, and length is within 32
bits, we simply check that the input strings are under 4GB.
Bryan O'Sullivan <bryano@fb.com> [Mon, 04 Feb 2013 11:42:10 -0800] rev 18550
Merge crew-stable into crew
Siddharth Agarwal <sid0@fb.com> [Sun, 03 Feb 2013 14:26:39 -0800] rev 18549
rebase: derive node from target rev (
issue3802)
dest.rev() is the same as target when a new rebase is run, but dest
isn't set when rebase --continue is run. Bug introduced in
2a1fac3650a5,
which fixed
issue3685.
Mads Kiilerich <madski@unity3d.com> [Mon, 04 Feb 2013 02:46:53 +0100] rev 18548
profiling: introduce limit configuration option
The number of output lines was hardcoded to 30.
There was a 'nested' configuration options that controlled something else
related to counting the number of output lines.
This introduces the profiling.limit configuration option for controlling the
number of profiling output to show.
Mads Kiilerich <madski@unity3d.com> [Thu, 24 Jan 2013 23:57:44 +0100] rev 18547
largefiles: make verify --lfa and --lfc work without --large
The slightly obscure --lfa and --lfc only worked as modifiers to --large and
could be combined. The documentation was however not clear what they did.
Instead they now imply --large and the description is updated.
Mads Kiilerich <madski@unity3d.com> [Mon, 04 Feb 2013 02:46:53 +0100] rev 18546
largefiles: verify status should be written as status, not as write
Make 'hg verify --large -q' quiet when no errors.
Mads Kiilerich <madski@unity3d.com> [Mon, 04 Feb 2013 02:46:53 +0100] rev 18545
largefiles: report localstore errors with single line warnings messages
The actual hash is also not relevant to report.
This makes verify output with multiple failures easier to process.
Mads Kiilerich <madski@unity3d.com> [Mon, 04 Feb 2013 02:46:53 +0100] rev 18544
merge: inline act()
The act function had become very trivial and mainly shuffled arguments around
and made it harder to see what really was going on.
Mads Kiilerich <madski@unity3d.com> [Mon, 04 Feb 2013 02:46:53 +0100] rev 18543
merge: don't indent "local changed %s which remote deleted" prompt
It was usually not shown in a context where indentation helped readability and
it was inconsistent with other prompts.
Mads Kiilerich <madski@unity3d.com> [Mon, 04 Feb 2013 02:46:38 +0100] rev 18542
merge: backout manifest sorting and workarounds for cost of it
Backout
8a811fa9a9c0 and
760c0d67ce5e which no longer are needed.
Mads Kiilerich <madski@unity3d.com> [Thu, 24 Jan 2013 23:57:44 +0100] rev 18541
merge: delay debug messages for merge actions
Show messages at a point where the actions have been sorted, thus preparing for
backout of
760c0d67ce5e.
This makes manifestmerge more of a silent operation, just like 'copies' is.
Indent 'preserving' messages to make them subordinate to the action logging so
they fit in the new context. (The 'preserving' messages are quite redundant and
could also be removed completely.)
Mads Kiilerich <madski@unity3d.com> [Thu, 24 Jan 2013 23:57:44 +0100] rev 18540
merge: make all action tuples have the same length - keep args as tuple
Mads Kiilerich <madski@unity3d.com> [Thu, 24 Jan 2013 23:57:44 +0100] rev 18539
merge: delay prompts a bit and show them in (extra) sorted order
Preparing for backout of
760c0d67ce5e.
The number of prompts will for all relevant cases be significantly smaller than
the total number of files in the manifests. We can thus afford to sort the
prompts more than we can afford to sort the manifests.
Antonio Zanardo <zanardo@gmail.com> [Sat, 02 Feb 2013 15:37:17 -0200] rev 18538
commit: show active bookmark in commit editor helper text
If there is an active bookmark while committing, the bookmark name
will be visible inside the commit message helper, below the branch
name.
This should make easier for the user to detect a mistaken commit
parent, while working for example with a bookmark centric workflow
like topic branches.
The active bookmark is checked to be in the working directory, as
pointed by Kevin Bullock, because otherwise committing would not
advance it. In other words, this would not show the active
bookmark name if the user changed the working tree parents with
'hg debugsetparents', for example.
Paul Cavallaro <ptc@fb.com> [Wed, 23 Jan 2013 09:51:45 -0800] rev 18537
dates: support 'today' and 'yesterday' in parsedate (
issue3764)
Adding support to parsedate in util module to understand the more idiomatic
dates 'today' and 'yesterday'.
Added unified tests and docstring tests for added functionality.
Paul Cavallaro <ptc@fb.com> [Mon, 28 Jan 2013 12:19:21 -0800] rev 18536
revset: change ancestor to accept 0 or more arguments (
issue3750)
Change ancestor to accept 0 or more arguments. The greatest common ancestor of a
single changeset is that changeset. If passed no arguments, the empty list is
returned.
Matt Mackall <mpm@selenic.com> [Fri, 01 Feb 2013 15:48:33 -0600] rev 18535
merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 01 Feb 2013 15:32:05 -0600] rev 18534
Added signature for changeset
a6088c05e43a
Matt Mackall <mpm@selenic.com> [Fri, 01 Feb 2013 15:31:57 -0600] rev 18533
Added tag 2.5 for changeset
a6088c05e43a
Matt Mackall <mpm@selenic.com> [Fri, 01 Feb 2013 15:21:47 -0600] rev 18532
test-obsolete: now gets 404 for hidden change
Matt Mackall <mpm@selenic.com> [Fri, 01 Feb 2013 15:23:37 -0600] rev 18531
merge with i18n
Wagner Bruna <wbruna@softwareexpress.com.br> [Fri, 01 Feb 2013 17:59:56 -0200] rev 18530
i18n-pt_BR: added message from crew
0324a1d88a53
Wagner Bruna <wbruna@softwareexpress.com.br> [Fri, 01 Feb 2013 11:01:39 -0200] rev 18529
i18n-pt_BR: added message from crew
9fbeb61b8ad2
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 31 Jan 2013 23:01:31 +0900] rev 18528
i18n-ja: synchronized with
2a1fac3650a5
Wagner Bruna <wbruna@yahoo.com> [Thu, 31 Jan 2013 09:58:36 -0200] rev 18527
i18n-pt_BR: synchronized with
68eecbaf1bd3
Thomas Arendsen Hein <thomas@intevation.de> [Fri, 01 Feb 2013 20:43:35 +0100] rev 18526
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Without this, repository paths or names containing e.g. & characters or html
tags yielded strange results, possibly allowing cross-site scripting attacks.
Matt Mackall <mpm@selenic.com> [Fri, 01 Feb 2013 15:14:05 -0600] rev 18525
merge with crew
Kevin Bullock <kbullock@ringworld.org> [Fri, 01 Feb 2013 10:12:41 -0600] rev 18524
hgweb: rename 'currentbaseline' template keyword to 'basenode'
Shorter and clearer. This keyword represents the node we're currently
diffing against.
Kevin Bullock <kbullock@ringworld.org> [Fri, 01 Feb 2013 09:58:25 -0600] rev 18523
hgweb: rename 'changesetbaseline' template to 'difffrom'
More accurately reflects what it will be used for, and is also shorter.
This template is used to change which rev the current rev is diff'd
against. For example, if you're at '/rev/P1:REV', this would link to a
path like '/rev/P2:REV'.
Example usage in a template:
{parent%difffrom}
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 31 Jan 2013 19:56:55 +0100] rev 18522
hgweb: add a `web.view` to control filtering
This options add a new `web.view` to control filter level of hgweb.
This option have two purposes:
1) Allow fall back to unfiltered version in case a yet undetected by critical
bug is found in filtering after 2.5 release
2) People use hgweb as a local repoviewer. When they have secret changesets,
they wants to use "visible" filter not "served"
(modified by mpm, documentation deferred)
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 31 Jan 2013 22:30:52 +0100] rev 18521
hgweb: returns 404 for unknow revision instead of 500
I noticed that access to filtered revision returned HTTP 500 code (internal
server error). Investigation shown that it was the case for unknown revision
too. That wrong and we now properly return a 404 for revision not found.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 31 Jan 2013 01:44:29 +0100] rev 18520
subrepo: allows to drop courtesy phase sync (
issue3781)
Publishing server may contains draft changeset when they are created locally. As
publishing is the default, it is actually fairly common. Because of this
"inconsistency" phases synchronization may be done even to publishing server.
This may cause severe issues for subrepo. It is possible to reference read-only
repository as subrepo. Push in a super repo recursively push subrepo. Those
pushes to potential read only repo are not optional, they are "suffered" not
"choosed". This does not break because as the repo is untouched the push is
supposed to be empty. If the reference repo locally contains draft changesets, a
courtesy push is triggered to turn them public. As the repo is read only, the
push fails (after possible prompt asking for credential). Failure of the
sub-push aborts the whole subrepo push. This force the user to define a custom
default-push for such subrepo.
This changeset introduce a prevention of this error client side by skipping the
courtesy phase synchronisation in problematic situation. The phases
synchronisation is skipped when four conditions are gathered:
- this is a subrepo push, (normal push to read-only repo)
- and remote support phase
- and remote is publishing
- and no changesets was pushed (if we pushed changesets, repo is not read only)
The internal config option used in this version is not definitive. It is here to
demonstrate a working fix to the issue.
In the future we probably wants to track subrepo changes and avoid pushing to
untouched one. That will prevent any attempt to push to read-only or unreachable
subrepo.
Another fix to prevent courtesy push from older clients to push to newer server
is also still needed.
Mads Kiilerich <madski@unity3d.com> [Thu, 31 Jan 2013 19:13:13 +0100] rev 18519
tests: fix toctou race in tinyproxy.py (
issue3795)
test-http-proxy.t sometimes failed with:
File ".../tests/tinyproxy.py", line 110, in _read_write
data = i.recv(8192)
error: (104, 'Connection reset by peer')
This might have started showing up with
a9fd11ffa13f ... but it has apparently
also been seen before. I don't see anything in
a9fd11ffa13f that can explain
it. It seems to be a race in test, in the tinyproxy helper:
Tinyproxy found an incoming socket using select(). It would break the loop if
an error had been detected on the socket, but there was no error and it tried
to recv() from the socket. That failed - apparently because it had been reset
after select().
Errors in the recv() will now be caught and will break the loop like errors
detected by select() would.
(send() could also fail in a similar way ... but using the same solution there
and losing data we have read doesn't feel right.)
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 01 Feb 2013 02:01:11 +0100] rev 18518
rebase: mention --rev in the help
This changeset adds a small mention of it in the help to prevent
confusion. This small addition references online help that is easier to
update and improve at release time.
Following Wagner Bruna's advice, this is added in a plain new paragraph
to not invalidate current translation this close to the release.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 01 Feb 2013 05:40:06 +0100] rev 18517
hgweb: remove baseline info from paper template
The user interface introduced in
d605a82cf189 is not considered ready
for prime time yet. The internal code stays in place for custom template
usage. The feature is ultimately wanted and will be re-enabled soon. The
current issue is only related to the visual of the current interface.
Kevin Bullock <kbullock@ringworld.org> [Thu, 31 Jan 2013 20:01:26 -0600] rev 18516
rebase: mention phases in the help
Mention that Mercurial helps you not do what you've just been warned not
to do, with a reference to the 'phases' help topic (not the 'phase'
command help).
Thanks to Pierre-Yves David <pierre-yves.david@ens-lyon.org> for
motivating this change and Wagner Bruna
<wagner.bruna+mercurial@gmail.com> for advising on how to do it in an
i18n-friendly way.
Angel Ezquerra <angel.ezquerra@gmail.com> [Thu, 31 Jan 2013 22:36:22 +0100] rev 18515
hgwebdir: use web.prefix when creating url breadcrumbs (
issue3790)
The web.prefix setting was being ignored when creating the index URL
breadcrumbs.
We only need to fix hgwebdir and not hgweb because hgweb gets the complete URL
request, including the prefix, while hgwebdir gets a "subdir" which does not
include the prefix.
This fix is slightly different of what was suggested on the bug tracker. In
there it was suggested to hide the prefix itself from the breadcrumb. I think
that would be a better solution, but it would require changing all the index
templates and passing the prefix to the template engine, which may be too big
a change for stable during the freeze. For now this fixes the problem, and the
fix could be improved during the next cycle.
Siddharth Agarwal <sid0@fb.com> [Wed, 30 Jan 2013 16:08:32 -0800] rev 18514
rebase: delete divergent bookmarks on destination (
issue3685)
Similar to merge, divergent bookmarks are only deleted when the bookmark is on
the destination parent.
Siddharth Agarwal <sid0@fb.com> [Wed, 30 Jan 2013 15:35:00 -0800] rev 18513
bookmarks: factor out delete divergent code
Deleting divergent bookmarks is more generally useful than just in
bookmarks.update.
Siddharth Agarwal <sid0@fb.com> [Wed, 30 Jan 2013 17:49:54 -0800] rev 18512
rebase: remove bogus nullmerge check in updatebookmarks
nstate[v] is a node, not an int, and the nullmerge check was done while
building nstate anyway.