Matt Mackall <mpm@selenic.com> [Fri, 30 Sep 2011 14:12:48 -0500] rev 15178
clone: add a note about -u/-U
Matt Mackall <mpm@selenic.com> [Fri, 30 Sep 2011 14:09:45 -0500] rev 15177
clone: move portions of help into the verbose section
Matt Mackall <mpm@selenic.com> [Fri, 30 Sep 2011 14:06:41 -0500] rev 15176
clone: clarify destination URLs
Matt Mackall <mpm@selenic.com> [Fri, 30 Sep 2011 11:30:00 -0500] rev 15175
clone: move url crossref to bottom
Matt Mackall <mpm@selenic.com> [Fri, 30 Sep 2011 11:27:59 -0500] rev 15174
clone: improve help on -r/-b and tags
Matt Mackall <mpm@selenic.com> [Thu, 29 Sep 2011 17:16:42 -0500] rev 15173
largefiles: mark a string for translation
Matt Mackall <mpm@selenic.com> [Thu, 29 Sep 2011 17:15:54 -0500] rev 15172
largefiles: fix multistatement line
Matt Mackall <mpm@selenic.com> [Thu, 29 Sep 2011 17:14:47 -0500] rev 15171
largefiles: eliminate naked exceptions
Matt Mackall <mpm@selenic.com> [Thu, 29 Sep 2011 17:04:57 -0500] rev 15170
largefiles: fix over-long lines
Matt Mackall <mpm@selenic.com> [Thu, 29 Sep 2011 16:48:48 -0500] rev 15169
largefile: fix up hasattr usage
various [Sat, 24 Sep 2011 17:35:45 +0200] rev 15168
hgext: add largefiles extension
This code has a number of contributors and a complicated history prior to its
introduction that can be seen by visiting:
https://developers.kilnhg.com/Repo/Kiln/largefiles/largefiles
http://hg.gerg.ca/hg-bfiles
and looking at the included copyright notices and contributors list.
Matt Mackall <mpm@selenic.com> [Wed, 28 Sep 2011 16:11:53 -0500] rev 15167
merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 28 Sep 2011 14:49:00 -0500] rev 15166
patchbomb: drop loop in prompt
There are no longer any prompts that insist on being answered, so the
loop is no longer needed, nor is most of the other logic.
Matt Mackall <mpm@selenic.com> [Wed, 08 Sep 2010 08:31:07 +0200] rev 15165
patchbomb: use prompt even in non-interactive mode
This matches our pre-existing behavior from:
changeset: 12197:
540693065d40
user: Christian Ebert <blacktrash@gmx.net>
files: hgext/patchbomb.py tests/test-patchbomb.t
description:
patchbomb: show prompt and selection in non-interactive mode
changeset: 8940:
01ada7b1861d
user: Mads Kiilerich <mads@kiilerich.com>
date: Sun Jun 21 03:13:38 2009 +0200
files: mercurial/ui.py tests/test-merge-prompt.out tests/test-merge-tools.out
description:
ui.prompt: Show prompt and selection in non-interactive mode
Greg Ward <greg@gerg.ca> [Tue, 27 Sep 2011 22:38:47 -0400] rev 15164
patchbomb: make it easy for the user to decline sending an intro message.
- prompt(): respect interactive mode; clarify logic a bit
- rename introneeded() to introwanted() and give it only one caller
- add 'numbered' arg to makepatch() so it does not need to call
introwanted()
- factor makeintro() out of getpatchmsgs(), so it's easier to skip the
intro message based on the user's behaviour
Unexpected but perfectly reasonable side effect: in non-interactive
mode, we don't show unanswerable "Cc" or "From" prompts anymore, so
remove those from the test expectations.
Nikolaj Sjujskij <sterkrig@myopera.com> [Tue, 20 Sep 2011 15:21:27 +0300] rev 15163
building: build inotify for sys.platform='linux*'
If Python interpreter was built under Linux 3.x kernel, it reports
sys.platform to be 'linux3' (it is fixed for Python 3, but not for 2.x).
This cancels building inotify extension, which was built only for 'linux2'
platform. Improved test checks if sys.platform begins with 'linux', and together
with test for kernel version to be greater than 2.6 it seems to cover all known
cases.
Greg Ward <greg@gerg.ca> [Mon, 26 Sep 2011 21:29:13 -0400] rev 15162
patchbomb: simplify some contorted logic and odd variable names.
Matt Mackall <mpm@selenic.com> [Wed, 28 Sep 2011 13:57:48 -0500] rev 15161
merge with crew
Mads Kiilerich <mads@kiilerich.com> [Tue, 27 Sep 2011 18:51:10 +0200] rev 15160
sslutil: abort when ssl module is needed but not found
It is apparently possible to compile Python without SSL support or leave it out
when installing precompiled binaries.
Mercurial on such Pythons would crash if the user tried to use https. Now it
will be reported as "abort: Python SSL support not found" instead.
Matt Mackall <mpm@selenic.com> [Tue, 27 Sep 2011 18:50:18 -0500] rev 15159
merge with stable
Steffen Daode Nurpmeso <sdaoden@googlemail.com> [Tue, 27 Sep 2011 18:41:09 -0500] rev 15158
patch: correctly handle non-tabular Subject: line
The line content of continued Subject: lines was yet joined via
str.replace('\n\t', ' '), which does not handle continuation via
spaces. So expan the regular expression instead to
handle all allowed forms of mail header line continuation.
Kevin Gessner <kevin@fogcreek.com> [Fri, 23 Sep 2011 09:02:27 -0700] rev 15157
util: fix crash converting an invalid future date to string
Post-2038 timestamps cannot be handled on 32-bit architectures. Clamp
such dates to the maximum 32-bit timestamp.
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Thu, 22 Sep 2011 01:51:36 +0200] rev 15156
styles: add new 'bisect' style that prints the bisection status
The style is based on the 'default' style, but adds the bisection status
of the changesets.
Example output for a changeset in range:
$ hg log --style bisect -r 15:16
changeset: 15:
857b178a7cf3
bisect: bad
parent: 13:
b0a32c86eb31
parent: 10:
429fcd26f52d
user: test
date: Thu Jan 01 00:00:15 1970 +0000
summary: merge 10,13
changeset: 16:
609d82a7ebae
bisect: bad (implicit)
user: test
date: Thu Jan 01 00:00:16 1970 +0000
summary: 16
$ hg log --quiet --style bisect
18:
d42e18c7bc9b
B 17:
228c06deef46
B 16:
609d82a7ebae
B 15:
857b178a7cf3
14:
faa450606157
G 13:
b0a32c86eb31
G 12:
9f259202bbe7
G 11:
82ca6f06eccd
U 10:
429fcd26f52d
S 9:
3c77083deb4a
G 8:
dab8161ac8fc
7:
50c76098bbf2
I 6:
a214d5d3811a
I 5:
385a529b6670
I 4:
5c668c22234f
I 3:
0950834f0a9c
I 2:
051e12f87bf1
1:
4ca5088da217
0:
33b1f9bc8bc5
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Thu, 22 Sep 2011 01:36:01 +0200] rev 15155
templates: add 'bisect' keyword to return a cset's bisect status
This new 'bisect' template expands to a cset's bisection status (good,
bad and so on...). There is also a new 'shortbisect' filter that yields
a single char representing the cset's bisection status.
It uses the two recently-added hbisect.label() and .shortlabel() functions.
Example output using the repository in test-bisect2.t, and some made-up
state of the 'end at merge' test (with graphlog, it's so explicit):
$ hg glog --template '{rev}:{node|short} {bisect}\n' \
-r 'bisect(range)|bisect(ignored)'
o 17:
228c06deef46: bad
|
o 16:
609d82a7ebae: bad (implicit)
|
o 15:
857b178a7cf3: bad
|\
| o 13:
b0a32c86eb31: good
| |
| o 12:
9f259202bbe7: good (implicit)
| |
| o 11:
82ca6f06eccd: good
| |
@ | 10:
429fcd26f52d: untested
|\ \
| o | 9:
3c77083deb4a: skipped
| |/
| o 8:
dab8161ac8fc: good
| |
o | 6:
a214d5d3811a: ignored
|\ \
| o | 5:
385a529b6670: ignored
| | |
o | | 4:
5c668c22234f: ignored
| | |
o | | 3:
0950834f0a9c: ignored
|/ /
o / 2:
051e12f87bf1: ignored
|/
And now the same with the short label:
$ hg log --template '{bisect|shortbisect} {rev}:{node|short}\n'
18:
d42e18c7bc9b
B 17:
228c06deef46
B 16:
609d82a7ebae
B 15:
857b178a7cf3
14:
faa450606157
G 13:
b0a32c86eb31
G 12:
9f259202bbe7
G 11:
82ca6f06eccd
U 10:
429fcd26f52d
S 9:
3c77083deb4a
G 8:
dab8161ac8fc
7:
50c76098bbf2
I 6:
a214d5d3811a
I 5:
385a529b6670
I 4:
5c668c22234f
I 3:
0950834f0a9c
I 2:
051e12f87bf1
1:
4ca5088da217
0:
33b1f9bc8bc5
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Thu, 22 Sep 2011 23:28:49 +0200] rev 15154
hbisect: add functions to return a label for a cset bisection status
Add two new functions that return a string containing the bisection status
of the node passed in parameter:
- .label(node): return a multi-char string representing the status of node
- .shortlabel(node): return a single-char string representing the status
of node, usually the initial of the label
bisection status .label() .shortlabel()
----------------------------------------------------------
good 'good' 'G'
good (implicit) 'good (implicit)' 'G'
bad 'bad' 'B'
bad (implicit) 'bad (implicit)' 'B'
skipped 'skip' 'S'
untested 'untested' 'U'
ignored 'ignored' 'I'
(others) None None
There is no point in returning 'range' or 'pruned', as these get covered
by another, more meaningful status in the table above.
In case the node is not being bisected, the functions return None to leave
it up to the caller to decide what to print (nothing, an empty space, or
whatever else suits).
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Sat, 24 Sep 2011 01:32:50 +0200] rev 15153
hbisect: add two new revset descriptions: 'goods' and 'bads'
This patch adds two new revset descriptions:
- 'goods': the list of topologicaly-good csets:
- if good csets are topologically before bad csets, yields '::good'
- else, yields 'good::'
- and conversely for 'bads'
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mads Kiilerich <mads@kiilerich.com> [Wed, 21 Sep 2011 22:52:00 +0200] rev 15152
http: handle push of bundles > 2 GB again (
issue3017)
It was very elegant that httpsendfile implemented __len__ like a string. It was
however also dangerous because that protocol can't handle sizes bigger than 2 GB.
Mercurial tried to work around that, but it turned out to be too easy to
introduce new errors in this area.
With this change __len__ is no longer implemented at all and the code will work
the same way for short and long posts.
Nikolaj Sjujskij <sterkrig@myopera.com> [Tue, 20 Sep 2011 15:21:27 +0300] rev 15151
building: build inotify for sys.platform='linux*'
If Python interpreter was built under Linux 3.x kernel, it reports
sys.platform to be 'linux3' (it is fixed for Python 3, but not for 2.x).
This cancels building inotify extension, which was built only for 'linux2'
platform. Improved test checks if sys.platform begins with 'linux', and together
with test for kernel version to be greater than 2.6 it seems to cover all known
cases.
Martin Geisler <mg@aragost.com> [Thu, 22 Sep 2011 15:15:18 +0200] rev 15150
subrepo: try remapping subpaths using the "final" path
Before, the right-hand side of a .hgsub entry was used, as is, to
match the left-hand side of a subpaths entry. This turned out to be
less useful than expected since a .hgsub file with
src/foo = src/foo
has little context to do remapping on. The new idea is therefore to
prefix the parent repo path *before* the remapping takes place.
If the parent repository path (as defined by _abssource) is
http://example.net/parent
then the remapping for the above .hgsub entry will be done on the
expanded path:
http://example.net/parent/src/foo
If this expanded path is not changed by the remapping, then we remap
src/foo
alone. This is the old behavior where the right-hand side is remapped
without context.
Martin Geisler <mg@aragost.com> [Thu, 22 Sep 2011 14:39:49 +0200] rev 15149
subrepo: refactor state function
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Tue, 20 Sep 2011 15:02:00 -0500] rev 15148
mq.strip: allow -r option, optionally
Other commands let -r to be used for revisions, so just for syntactic
consistency, it's nice to have it for strip as well
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Tue, 20 Sep 2011 20:21:04 +0200] rev 15147
revset.bisect: add 'ignored' set to the bisect keyword
The 'ignored' changesets are outside the bisection range, but are
changesets that may have an impact on the outcome of the bisection.
For example, in case there's a merge between the good and bad csets,
but the branch-point is out of the bisection range, and the issue
originates from this branch, the branch will not be visited by bisect
and bisect will find that the culprit cset is the merge.
So, the 'ignored' set is equivalent to:
( ( ::bisect(bad) - ::bisect(good) )
| ( ::bisect(good) - ::bisect(bad) ) )
- bisect(range)
- all ancestors of bad csets that are not ancestors of good csets, or
- all ancestors of good csets that are not ancestors of bad csets
- but that are not in the bisection range.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Tue, 20 Sep 2011 20:19:48 +0200] rev 15146
hbisect.get: use simpler code with repo.set(), fix 'pruned' set
Use repo.set() wherever possible, instead of locally trying to
reproduce complex graph computations.
'pruned' now means 'all csets that will no longer be visited by the
bisection'. The change is done is this very patch instead of its own
dedicated one becasue the code changes all over the place, and the
previous 'pruned' code was totally rewritten by the cleanup, so it
was easier to just change the behavior at the same time.
The previous series went in too fast for this cleanup pass to be
included, so here it is. ;-)
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Matt Mackall <mpm@selenic.com> [Wed, 21 Sep 2011 13:00:48 -0500] rev 15145
help: use RST to format option lists
Matt Mackall <mpm@selenic.com> [Wed, 21 Sep 2011 13:00:47 -0500] rev 15144
minirst: fix column handling for simple tables
Matt Mackall <mpm@selenic.com> [Wed, 21 Sep 2011 13:00:46 -0500] rev 15143
encoding: add getcols to extract substrings based on column width
Matt Mackall <mpm@selenic.com> [Wed, 21 Sep 2011 13:00:41 -0500] rev 15142
encoding: colwidth input is in the local encoding
Brodie Rao <brodie@bitheap.org> [Mon, 19 Sep 2011 15:58:03 -0700] rev 15141
mdiff: speed up showfunc for large diffs
This addresses the following issues with showfunc:
- Silly usage of regular expressions.
- Doing str.rstrip() needlessly in an inner loop.
- Doing catastrophic backtracking when trying to find a function line.
Finding function text is now at worst O(n lines in the old file), and
at best close to O(n hunks).
Given a diff like this[1]:
src/main/antlr3/uk/ac/cam/ch/wwmm/pregenerated/ChemicalChunker.g | 4 +-
src/main/java/uk/ac/cam/ch/wwmm/pregenerated/ChemicalChunkerLexer.java | 2 +-
src/main/java/uk/ac/cam/ch/wwmm/pregenerated/ChemicalChunkerParser.java | 29189 +++++----
3 files changed, 14741 insertions(+), 14454 deletions(-)
[1]: https://bitbucket.org/wwmm/chemicaltagger/changeset/
d2bfbaecd4fc/raw
Without this change, hg log --stat --config diff.showfunc=1 takes an
absurdly long time to complete:
CallCount Recursive Total(ms) Inline(ms) module:lineno(function)
32813 0 80.3546 40.6086 mercurial.mdiff:160(yieldhunk)
+
65062746 0 25.7227 25.7227 +<method 'match' of '_sre.SRE_Pattern' objects>
+
65062746 0 14.0221 14.0221 +<method 'rstrip' of 'str' objects>
+1809 0 0.0009 0.0009 +mercurial.mdiff:148(contextend)
+1809 0 0.0003 0.0003 +<len>
65062746 0 25.7227 25.7227 <method 'match' of '_sre.SRE_Pattern' objects>
65062763 0 14.0221 14.0221 <method 'rstrip' of 'str' objects>
543 0 0.1631 0.1631 <zlib.decompress>
3 0 0.0505 0.0505 <mercurial.bdiff.blocks>
31007 0 80.4564 0.0477 mercurial.mdiff:147(_unidiff)
+32813 0 80.3546 40.6086 +mercurial.mdiff:160(yieldhunk)
+3 0 0.0505 0.0505 +<mercurial.bdiff.blocks>
+3618 0 0.0022 0.0022 +mercurial.mdiff:154(contextstart)
+5427 0 0.0013 0.0013 +<len>
+3 0 0.0001 0.0000 +re:188(compile)
1 0 80.8381 0.0322 mercurial.patch:1777(diffstatdata)
+107499 0 0.0235 0.0235 +<method 'startswith' of 'str' objects>
+31014 0 80.7820 0.0071 +mercurial.util:1284(iterlines)
+3 0 0.0000 0.0000 +<method 'search' of '_sre.SRE_Pattern' objects>
+4 0 0.0000 0.0000 +mercurial.patch:1783(addresult)
+3 0 0.0000 0.0000 +<method 'group' of '_sre.SRE_Match' objects>
6 0 0.0444 0.0283 mercurial.mdiff:12(splitnewlines)
+6 0 0.0160 0.0160 +<method 'split' of 'str' objects>
32 0 0.0246 0.0246 <method 'update' of '_hashlib.HASH' objects>
11 0 0.0236 0.0236 <method 'read' of 'file' objects>
Time: real 80.880 secs (user 80.200+0.000 sys 0.380+0.000)
With this change, it's almost as fast as not using showfunc at all:
CallCount Recursive Total(ms) Inline(ms) module:lineno(function)
543 0 0.1699 0.1699 <zlib.decompress>
3 0 0.0501 0.0501 <mercurial.bdiff.blocks>
32813 0 0.0415 0.0348 mercurial.mdiff:161(yieldhunk)
+70837 0 0.0058 0.0058 +<method 'isalnum' of 'str' objects>
+1809 0 0.0006 0.0006 +mercurial.mdiff:148(contextend)
+1809 0 0.0002 0.0002 +<len>
1 0 0.4879 0.0310 mercurial.patch:1777(diffstatdata)
+107499 0 0.0230 0.0230 +<method 'startswith' of 'str' objects>
+31014 0 0.4335 0.0065 +mercurial.util:1284(iterlines)
+3 0 0.0000 0.0000 +<method 'search' of '_sre.SRE_Pattern' objects>
+4 0 0.0000 0.0000 +mercurial.patch:1783(addresult)
+1 0 0.0004 0.0000 +re:188(compile)
32 0 0.0293 0.0293 <method 'update' of '_hashlib.HASH' objects>
6 0 0.0427 0.0279 mercurial.mdiff:12(splitnewlines)
+6 0 0.0147 0.0147 +<method 'split' of 'str' objects>
31007 0 0.1169 0.0235 mercurial.mdiff:147(_unidiff)
+3 0 0.0501 0.0501 +<mercurial.bdiff.blocks>
+32813 0 0.0415 0.0348 +mercurial.mdiff:161(yieldhunk)
+3618 0 0.0012 0.0012 +mercurial.mdiff:154(contextstart)
+5427 0 0.0006 0.0006 +<len>
107597 0 0.0230 0.0230 <method 'startswith' of 'str' objects>
16 0 0.0213 0.0213 <mercurial.mpatch.patches>
194 0 0.0149 0.0149 <method 'split' of 'str' objects>
Time: real 0.530 secs (user 0.450+0.000 sys 0.070+0.000)
Matt Mackall <mpm@selenic.com> [Mon, 19 Sep 2011 16:28:44 -0500] rev 15140
revset: add 'l' flag to formatspec for args
This makes it easy to calculate a revset with lists:
good = [1, 2, 3]
bad = [10, 11, 12]
between = repo.set('%ld::%ld', good, bad)
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Sun, 18 Sep 2011 23:57:49 +0200] rev 15139
bisect: add some bisection examples, and some log revset.bisect() examples
Add a few examples on how to use bisect:
- a few bisection examples
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Sat, 17 Sep 2011 14:33:20 +0200] rev 15138
revset.bisect: add new 'untested' set to the bisect keyword
The 'untested' set is made of changesets that are in the bisection range
but for which the status is still unknown, and that can later be used to
further decide on the bisection outcome.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Sat, 17 Sep 2011 17:30:35 +0200] rev 15137
revset.bisect: add new 'pruned' set to the bisect keyword
The 'pruned' set is made of changesets that did participate to
the bisection. They are made of
- all good changesets
- all bad changsets
- all skipped changesets, provided they are in the bisection range
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Sat, 17 Sep 2011 17:33:34 +0200] rev 15136
revset.bisect: add new 'range' set to the bisect keyword
The 'range' set is made of all changesets that make the bisection
range, that is
- csets that are ancestors of bad csets and descendants of good csets
or
- csets that are ancestors of good csets and descendants of bad csets
That is, roughly equivalent of:
bisect(good)::bisect(bad) | bisect(bad)::bisect(good)
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Sat, 17 Sep 2011 00:20:45 +0200] rev 15135
revset.bisect: move bisect() code to hbisect.py
Computing the ranges of csets in the bisection belongs to the hbisect
code. This allows for reusing the status computation from many places,
not only the revset code, but also to later display the bisection status
of a cset...
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Sun, 18 Sep 2011 22:54:11 +0200] rev 15134
revset: rename bisected() to bisect()
Rename the 'bisected' keyword to simply 'bisect'.
Still accept the old name, but no longer advertise it.
As discussed with Matt on IRC.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Sun, 18 Sep 2011 10:07:51 +0200] rev 15133
revset.bisected: remove 'unknown' state
'unknown' is not a valid bisect state, so causes a traceback.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 19 Sep 2011 16:57:13 +0200] rev 15132
rebase: allow rebase to ancestor (
issue3010)
We only deny rebasing onto direct parent. Thanks to the ancestor argument of
merge. the "implementation" of this feature only consist in loosing the check
and imply detach when rebasing on ancestor.
Greg Ward <greg@gerg.ca> [Sun, 18 Sep 2011 19:59:33 -0400] rev 15131
rollback: only restore dirstate and branch when appropriate.
If the working dir parent was destroyed by rollback, then the old
behaviour is perfectly reasonable: restore dirstate, branch, and
bookmarks. That way the working dir moves back to an existing
changeset rather than becoming an orphan.
But if the working dir parent was unaffected -- say, you updated to an
older changeset and then did rollback -- then it's silly to restore
dirstate and branch. So don't do that. Leave the status of the working
dir alone. (But always restore bookmarks, because that file refers to
changeset IDs that may have been destroyed.)
Greg Ward <greg@gerg.ca> [Fri, 16 Sep 2011 21:38:06 -0400] rev 15130
rollback: refactor for readability; cosmetics.
- clarify how we parse undo.desc
- fix bad grammar in an error message
- factor out ui local
- rename some local variables
- standardize string quoting
Matt Mackall <mpm@selenic.com> [Sat, 17 Sep 2011 14:55:55 -0500] rev 15129
help: make optlist local to subfunctions
Matt Mackall <mpm@selenic.com> [Sat, 17 Sep 2011 14:50:42 -0500] rev 15128
help: move option list display into subfunctions
Matt Mackall <mpm@selenic.com> [Sat, 17 Sep 2011 14:46:13 -0500] rev 15127
help: fold header selection into helplist
Matt Mackall <mpm@selenic.com> [Sat, 17 Sep 2011 14:46:00 -0500] rev 15126
help: fold some list help clauses into the helplist function
Matt Mackall <mpm@selenic.com> [Sat, 17 Sep 2011 14:17:09 -0500] rev 15125
minirst: end all blocks with newlines
Formerly RST blocks were formatted without a trailing newline, which
wasn't particularly helpful. Now everything that comes back from the
formatter has a trailing newline so remove all the extra ones added by
users.
Martin Geisler <mg@aragost.com> [Mon, 19 Sep 2011 14:19:26 +0200] rev 15124
convert: rename local variable
Matt Mackall <mpm@selenic.com> [Sat, 17 Sep 2011 13:42:11 -0500] rev 15123
minirst: don't choke on empty text
Matt Mackall <mpm@selenic.com> [Sat, 17 Sep 2011 13:37:50 -0500] rev 15122
minirst: remove some whitespace
Matt Mackall <mpm@selenic.com> [Sat, 17 Sep 2011 13:37:49 -0500] rev 15121
minirst: remove pointless transcoding
Matt Mackall <mpm@selenic.com> [Sat, 17 Sep 2011 13:37:47 -0500] rev 15120
tests: fix up help test for new verbose sections
Matt Mackall <mpm@selenic.com> [Sat, 17 Sep 2011 13:20:10 -0500] rev 15119
status: add some help examples
Matt Mackall <mpm@selenic.com> [Sat, 17 Sep 2011 13:08:24 -0500] rev 15118
forget: add help examples
Matt Mackall <mpm@selenic.com> [Sat, 17 Sep 2011 12:34:47 -0500] rev 15117
revsets: add first alias for last
Matt Mackall <mpm@selenic.com> [Fri, 16 Sep 2011 22:57:47 -0500] rev 15116
revset: add default of 1 to limit and last functions
Matt Mackall <mpm@selenic.com> [Fri, 16 Sep 2011 17:53:58 -0500] rev 15115
remove: suggest forget to undo adds
Matt Mackall <mpm@selenic.com> [Fri, 16 Sep 2011 17:41:36 -0500] rev 15114
remove: simplify help
- move the obscure parts into the verbose help
- drop confusing references to "remove from repository" / "not remove
from history"
- add mention of hg forget
Matt Mackall <mpm@selenic.com> [Fri, 16 Sep 2011 17:08:18 -0500] rev 15113
import: add help examples
Matt Mackall <mpm@selenic.com> [Fri, 16 Sep 2011 16:52:45 -0500] rev 15112
id: add some help examples
Matt Mackall <mpm@selenic.com> [Fri, 16 Sep 2011 16:40:27 -0500] rev 15111
export: add help examples
Matt Mackall <mpm@selenic.com> [Fri, 16 Sep 2011 16:39:55 -0500] rev 15110
diff: add help examples
Matt Mackall <mpm@selenic.com> [Fri, 16 Sep 2011 15:31:21 -0500] rev 15109
archive: add help examples
Greg Ward <greg@gerg.ca> [Wed, 14 Sep 2011 22:01:39 -0400] rev 15108
test-rollback: tinker a bit to make it easier to add more tests.
etienne <etienne.desautels@gmail.com> [Thu, 15 Sep 2011 15:03:54 -0400] rev 15107
convert: added bookmarks support in filemap
When using the convert extension from a Mercurial rep. to subset it with
filemap, the bookmarks are not copied. I fixed this by calling the
base.get_bookmarks() from the filemap getbookmarks() instead of returning an
empty dictionary. It should work also for other converters that implement
getbookmarks() (like git). I don't see any drawbacks except that the bookmarks
are always copied (not necessarily wanted all the times).
Simon Heimberg <simohe@besonet.ch> [Sat, 23 Jul 2011 06:18:18 +0200] rev 15106
util: fix finding of hgexecutable
The version introduced in
89d9f92f6fdd would for example return thg
(thanks to Mads Kiilerich for pointing to this)
Matt Mackall <mpm@selenic.com> [Fri, 16 Sep 2011 14:37:57 -0500] rev 15105
log: add a usage note about --removed
Matt Mackall <mpm@selenic.com> [Fri, 16 Sep 2011 14:37:56 -0500] rev 15104
log: rearrange the help text a bit
Matt Mackall <mpm@selenic.com> [Fri, 16 Sep 2011 14:37:55 -0500] rev 15103
log: add some usage examples to verbose help
Matt Mackall <mpm@selenic.com> [Fri, 16 Sep 2011 14:37:53 -0500] rev 15102
minirst: fix container stripping logic
Greg Ward <greg@gerg.ca> [Wed, 14 Sep 2011 22:28:27 -0400] rev 15101
share: allow trailing newline on .hg/sharedpath.
This is extremely handy for those occasional circumstances where you
need to edit .hg/sharedpath manually, since modern Unix text editors
make it surprisingly difficult to create a text file with no trailing
newline.
Ben Hockey <neonstalwart@gmail.com> [Wed, 07 Sep 2011 10:24:26 -0400] rev 15100
contrib: some support for named branches in zsh_completion (
issue2988)
named branches were not included for autocompletion in zsh. by adding
_hg_branches and calling it from _hg_labels, named branches are now included
when autocompleting many commands in zsh. support for completion of hg log -b
was also added. there are possibly other cases where support needs to be
explicitly added.
Simon Heimberg <simohe@besonet.ch> [Wed, 14 Sep 2011 17:06:33 +0200] rev 15099
test: test for options duplicate with global options
issue2995 should not happen anymore
Matt Mackall <mpm@selenic.com> [Wed, 14 Sep 2011 14:37:10 -0500] rev 15098
merge with stable
Greg Ward <greg-hg@gerg.ca> [Sun, 11 Sep 2011 21:21:58 -0400] rev 15097
rollback: improve readability; clarify that the return value is an int.
Simon Heimberg <simohe@besonet.ch> [Mon, 22 Aug 2011 22:50:52 +0200] rev 15096
demandimport: determine at load time if __import__ has level argument
Matt Mackall <mpm@selenic.com> [Tue, 13 Sep 2011 17:01:07 -0500] rev 15095
win32: quietly ignore missing CreateHardLinkA for Wine
Steve Streeting <steve@stevestreeting.com> [Thu, 08 Sep 2011 11:34:59 +0100] rev 15094
osutil: avoid accidentally destroying the True object in isgui (
issue2937)
Needed to use 'Py_RETURN_TRUE' instead of 'return Py_True' to avoid
reference count errors which would randomly crash the Python
executable during merge. This only happened when you had something
configured in merge-tools and the merge was large enough.
Sune Foldager <cryo@cyanite.org> [Wed, 14 Sep 2011 13:57:56 +0200] rev 15093
merge with stable
Sune Foldager <cryo@cyanite.org> [Wed, 14 Sep 2011 13:57:31 +0200] rev 15092
merge
Sune Foldager <cryo@cyanite.org> [Wed, 14 Sep 2011 13:51:50 +0200] rev 15091
bundlerepo: add argument check before unlink
The default argument value of None, for bundlename, would cause an exception.
Callers currently pass an empty string, thus dodging this problem.
Lee Cantey <lcantey@gmail.com> [Mon, 12 Sep 2011 09:20:31 -0700] rev 15090
test-setdiscovery: allow for leading space in output of wc
Matt Mackall <mpm@selenic.com> [Mon, 12 Sep 2011 23:02:45 -0500] rev 15089
merge with stable
Simon Heimberg <simohe@besonet.ch> [Sun, 11 Sep 2011 14:42:30 +0200] rev 15088
ui: write traceback to self.ferr
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Sun, 11 Sep 2011 18:49:54 +0200] rev 15087
mq: split up overly long line
Dan Villiom Podlaski Christiansen <dan@cabo.dk> [Sun, 11 Sep 2011 18:49:41 +0200] rev 15086
patch: handle 'gitpatches' being empty, but not none
Dan Villiom Podlaski Christiansen <dan@cabo.dk> [Sun, 11 Sep 2011 18:49:38 +0200] rev 15085
mq: don't suppress patch tracebacks when applying patches
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Sun, 11 Sep 2011 19:13:56 +0200] rev 15084
test-setdiscovery.t: portability fix
The output of 'wc -c' is prefixed with spaces when using BSD wc.
Christian Ebert <blacktrash@gmx.net> [Sun, 11 Sep 2011 12:20:39 +0100] rev 15083
keyword: use wopener(..., atomictemp=True) to overwrite
Matt Mackall <mpm@selenic.com> [Sat, 10 Sep 2011 17:59:47 -0500] rev 15082
share: drop unused import
Matt Mackall <mpm@selenic.com> [Sat, 10 Sep 2011 17:56:42 -0500] rev 15081
merge with stable
Simon Heimberg <simohe@besonet.ch> [Sat, 13 Aug 2011 00:08:26 +0200] rev 15080
test: test unshare command
Simon Heimberg <simohe@besonet.ch> [Thu, 11 Aug 2011 00:04:00 +0200] rev 15079
hgext: introduce unshare command
Simon Heimberg <simohe@besonet.ch> [Thu, 11 Aug 2011 00:03:16 +0200] rev 15078
hg: extract copying the store out of clone
Renato Cunha <renatoc@gmail.com> [Thu, 08 Sep 2011 20:40:24 -0300] rev 15077
url: Remove the proxy env variables only when needed (
issue2451)
This is an attempt to fix issue 2451 and its duplicates (2599 and 2949, AFAIK).
Its main idea is that it is only necessary to clean the proxy environment
variables *when* http_proxy is set in the config file (since it takes
precedence over the environment variables). Otherwise, hg shouldn't bother with
them, since they will most likely be used to reach the server.
Simon Heimberg <simohe@besonet.ch> [Sat, 23 Jul 2011 06:18:18 +0200] rev 15076
util: improve finding of hgexecutable
check the module __main__ before looking on the default path
Christian Ebert <blacktrash@gmx.net> [Sat, 10 Sep 2011 13:23:41 +0100] rev 15075
keyword: make status test after record and kwexpand/kwshrink reliable
This guarantees test failure when the dirstate code is omitted at
the end of the kwtemplater.overwrite method.
kwexpand/kwshrink:
Without a 1 second wait the test succeeds sometimes, even when
the dirstate of the overwritten file is not forced to normal.
record:
status after recording an added file allows to check whether
normallookup is needed after overwriting.
Matt Mackall <mpm@selenic.com> [Sat, 10 Sep 2011 17:49:19 -0500] rev 15074
url: parse fragments first (
issue2997)
Matt Mackall <mpm@selenic.com> [Fri, 09 Sep 2011 14:41:22 -0500] rev 15073
log: remove -h short option for --hidden (
issue2995)
Matt Mackall <mpm@selenic.com> [Thu, 08 Sep 2011 18:30:44 -0500] rev 15072
merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 08 Sep 2011 18:29:53 -0500] rev 15071
hgweb: properly check for bookmarks when drawing graph
Christian Ebert <blacktrash@gmx.net> [Thu, 08 Sep 2011 19:30:25 +0100] rev 15070
keyword: preserve file mode when overwriting
Martin Geisler <mg@aragost.com> [Thu, 08 Sep 2011 10:20:42 +0200] rev 15069
convert: use repo.join instead of referencing ".hg" directly
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Thu, 01 Sep 2011 12:29:24 +0200] rev 15068
repair: switch from changegroupsubset to getbundle
This is in preparation of deprecating changegroupsubset.
Martin Geisler <mg@aragost.com> [Tue, 30 Aug 2011 15:22:10 +0200] rev 15067
merge with stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 27 Aug 2011 04:56:12 +0900] rev 15066
i18n: calculate terminal columns by width information of each characters
neither number of 'bytes' in any encoding nor 'characters' is
appropriate to calculate terminal columns for specified string.
this patch modifies MBTextWrapper for:
- overriding '_wrap_chunks()' to make it use not built-in 'len()'
but 'encoding.colwidth()' for columns of string
- fixing '_cutdown()' to make it use 'encoding.colwidth()' instead
of local, similar but incorrect implementation
this patch also modifies 'encoding.py':
- dividing 'colwith()' into 2 pieces: one for calculation columns of
specified UNICODE string, and another for rest part of original
one. the former is used from MBTextWrapper in 'util.py'.
- preventing 'colwidth()' from evaluating HGENCODINGAMBIGUOUS
configuration per each invocation: 'unicodedata.east_asian_width'
checking is kept intact for reducing startup cost.
Mads Kiilerich <mads@kiilerich.com> [Sat, 06 Aug 2011 23:52:20 +0200] rev 15065
util: wrap lines with multi-byte characters correctly (
issue2943)
This re-introduces the unicode conversion what was lost in
d320e70442a5 5 years
ago and had the comment:
To avoid corrupting multi-byte characters in line, we must wrap
a Unicode string instead of a bytestring.
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:19:43 -0500] rev 15064
encoding: use getattr isntead of hasattr
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Thu, 25 Aug 2011 21:25:14 +0200] rev 15063
setdiscovery: fix hang when #heads>200 (
issue2971)
When setting up the next sample, we always add all of the heads, regardless
of the desired max sample size. But if the number of heads exceeds this
size, then we don't add any more nodes from the still undecided set.
(This is debatable per se, and I'll investigate it, but it's how we designed
it at the moment.)
The bug was that we always added the overall heads, not the heads of the
remaining undecided set. Thus, if #heads>200 (desired sample size), we
did not make progress any longer.
Martin Geisler <mg@aragost.com> [Tue, 30 Aug 2011 14:18:58 +0200] rev 15062
ui: also swap sys.stdout with self.fout in _readline
In
17ffb30d9174, _readline was changed to output a space using
raw_input and this was done using sys.stdout directly, not self.fout.
This change broke the command server for JavaHg since it (and other
clients) would see a spurious ' ' on stdout and interpret this as an
unknown channel.
Matt Mackall <mpm@selenic.com> [Fri, 26 Aug 2011 16:08:24 -0500] rev 15061
merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 26 Aug 2011 16:07:16 -0500] rev 15060
Added signature for changeset
d629f1e89021
Matt Mackall <mpm@selenic.com> [Fri, 26 Aug 2011 16:07:13 -0500] rev 15059
Added tag 1.9.2 for changeset
d629f1e89021
Adrian Buehlmann <adrian@cadifra.com> [Thu, 25 Aug 2011 11:03:16 +0200] rev 15058
util: postpone and reorder parent calculation in makedirs
Greg Ward <greg@gerg.ca> [Thu, 25 Aug 2011 20:21:04 -0400] rev 15057
atomictempfile: make close() consistent with other file-like objects.
The usual contract is that close() makes your writes permanent, so
atomictempfile's use of close() to *discard* writes (and rename() to
keep them) is rather unexpected. Thus, change it so close() makes
things permanent and add a new discard() method to throw them away.
discard() is only used internally, in __del__(), to ensure that writes
are discarded when an atomictempfile object goes out of scope.
I audited mercurial.*, hgext.*, and ~80 third-party extensions, and
found no one using the existing semantics of close() to discard
writes, so this should be safe.
Robert Jones <rob@redshirtsoftware.com> [Wed, 24 Aug 2011 05:42:41 -0400] rev 15056
posix: check for executable bits on files identified by findexe function
Mads Kiilerich <mads@kiilerich.com> [Fri, 26 Aug 2011 16:23:35 +0200] rev 15055
subrepo: fix cloning of repos from urls without slash after host (
issue2970)
This fixes a regression introduced with the new url handling in 1.9.
This should perhaps be fixed in the url class instead, but that might be too
invasive for a stable bugfix.
Matt Mackall <mpm@selenic.com> [Thu, 25 Aug 2011 16:21:53 -0500] rev 15054
merge with stable
Idan Kamara <idankk86@gmail.com> [Thu, 25 Aug 2011 22:06:03 +0300] rev 15053
ui: pass ' ' to raw_input when prompting
This is a workaround for calling ui.prompt(...), typing some character then
hitting backspace which causes the entire line to delete rather than just the
one character. This was seen on Debian using gnome-terminal.
(credits to Mads for the idea)
Python bug can be found here: http://bugs.python.org/
issue12833
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Thu, 25 Aug 2011 17:20:00 +0200] rev 15052
dagutil: fix off-by-one in inverserevlogdag buildup
Wagner Bruna <wbruna@yahoo.com> [Fri, 19 Aug 2011 10:05:23 -0300] rev 15051
i18n-pt_BR: synchronized with
7f504202cb5c
Mads Kiilerich <mads@kiilerich.com> [Mon, 22 Aug 2011 00:42:38 +0200] rev 15050
util.makedirs: make recursion simpler and more stable (
issue2948)
Before, makedirs could call itself recursively with the same path name it was
given, relying on sane file system behavior to terminate the recursion. That
could cause infinite recursion on insane file systems.
Instead we now call mkdir explicitly after having created parent directory
recursively. Exceptions from this mkdir is not swallowed.
Mads Kiilerich <mads@kiilerich.com> [Mon, 22 Aug 2011 00:35:42 +0200] rev 15049
util.makedirs: propagate chmod exceptions
The existing exception handling was intended to handle mkdir errors. Strange
chmod exceptions could thus have strange consequences - or be swallowed.
Marc Simpson <marc@0branch.com> [Sun, 21 Aug 2011 20:40:10 +0100] rev 15048
color: add styles for tags
Marc Simpson <marc@0branch.com> [Sat, 20 Aug 2011 21:47:10 +0100] rev 15047
ui: use labels when outputting tags
Matt Mackall <mpm@selenic.com> [Thu, 18 Aug 2011 17:24:04 -0500] rev 15046
merge with stable
Wagner Bruna <wbruna@yahoo.com> [Thu, 18 Aug 2011 10:15:14 -0300] rev 15045
help/config: strip trailing whitespace
This disabled paragraph splitting for translations.
Martin Geisler <mg@aragost.com> [Thu, 18 Aug 2011 13:56:58 +0200] rev 15044
commands: clarify that 'hg heads foo' shows heads on branch foo
This is a FAQ: people try 'hg heads -r foo' and only see the tip-most
branch heads on foo.
Martin Geisler <mg@aragost.com> [Wed, 17 Aug 2011 14:17:35 +0200] rev 15043
merge with stable
Pang Yan Han <pangyanhan@gmail.com> [Wed, 17 Aug 2011 16:41:14 +0800] rev 15042
commands: fix grammar in resolve help text
Martin Geisler <mg@aragost.com> [Wed, 17 Aug 2011 14:11:46 +0200] rev 15041
merge: use repo.ui directly instead local variable
The non-standard 'u = repo.ui' shorthand was only used two times and
there were many other full references to repo.ui.
Shun-ichi GOTO <shunichi.goto@gmail.com> [Mon, 08 Aug 2011 14:32:27 +0900] rev 15040
win32: msvcr71.dll should be used for python 2.4 and 2.5
Following is list of C-Runtime for versions of CPython on windows:
- python 2.4.5 => MSVCR71.dll
- python 2.5.4 => MSVCR71.dll
- python 2.6.6 => MSVCR90.dll
- python 2.7 => MSVCR90.dll
- python 3.1.2 => MSVCR90.dll
Matt Mackall <mpm@selenic.com> [Thu, 11 Aug 2011 22:40:43 -0500] rev 15039
minirst: add a helper function to build an RST table from an array
Matt Mackall <mpm@selenic.com> [Thu, 11 Aug 2011 22:40:41 -0500] rev 15038
minirst: drop debug code
This standalone mode no longer works due to the mechanics of import
and util. When run not as part of a package, the import of util causes
an import of the built-in posix module, which doesn't contain the
expected symbols. This is difficult to fix in Py2.4.
Matt Mackall <mpm@selenic.com> [Thu, 11 Aug 2011 22:05:57 -0500] rev 15037
minirst: add simple table support
This adds a subset of the 'simple table' support from RST to allow
formatting of options lists through RST. Table columns are
automatically sized based on contents, with line wrapping in the last
column.
Matt Mackall <mpm@selenic.com> [Thu, 11 Aug 2011 22:05:31 -0500] rev 15036
minirst: only strip leading newlines, not indentation
Matt Mackall <mpm@selenic.com> [Thu, 11 Aug 2011 14:34:03 -0500] rev 15035
ui: allow alternatives for config options
Matt Mackall <mpm@selenic.com> [Wed, 10 Aug 2011 13:52:52 -0500] rev 15034
merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 10 Aug 2011 13:40:01 -0500] rev 15033
parsers: avoid pointer aliasing
Newer versions of GCC have aggressive pointer alias optimizations that
might get fooled by our pointer manipulations. These issues shouldn't
be encountered in practice because distutils compiles extensions with
-fno-strict-alias but the code was not valid according to the standard.
Matt Mackall <mpm@selenic.com> [Wed, 10 Aug 2011 13:25:35 -0500] rev 15032
graphlog: attempt to fix index overrun (
issue2912)
This bug may be caused by file subgraphs have more than two parents
per node. I have no idea if this fix is correct as the graphlog code
is mysterious, but it seems to be fine on the available test case.
Mads Kiilerich <mads@kiilerich.com> [Sat, 06 Aug 2011 23:52:20 +0200] rev 15031
util: wrap lines with multi-byte characters correctly (
issue2943)
This re-introduces the unicode conversion what was lost in
d320e70442a5 5 years
ago and had the comment:
To avoid corrupting multi-byte characters in line, we must wrap
a Unicode string instead of a bytestring.
Christian Ebert <blacktrash@gmx.net> [Mon, 08 Aug 2011 11:34:52 +0100] rev 15030
keyword: avoid x = a and b or c
Martin Geisler <mg@aragost.com> [Tue, 09 Aug 2011 11:05:13 +0200] rev 15029
match: remove unused assignment
The field is assigned again below with the constructor argument.
Patrick Mezard <pmezard@gmail.com> [Sat, 06 Aug 2011 14:10:59 +0200] rev 15028
http: explain why the host is passed to urllib2 password manager
The original comment was in url.getauthinfo() and was lost in
bf6156bab41b.
Matt Mackall <mpm@selenic.com> [Fri, 05 Aug 2011 16:07:51 -0500] rev 15027
merge with stable
Mads Kiilerich <mads@kiilerich.com> [Fri, 05 Aug 2011 00:39:54 +0200] rev 15026
test-http: test http authentication
The extension hack is based on Henrik Stuart's hg-textauth.
Patrick Mezard <pmezard@gmail.com> [Fri, 05 Aug 2011 21:05:41 +0200] rev 15025
http: pass user to readauthforuri() (fix
4a43e23b8c55)
urllib2 never handles URIs with credentials, we have to extract them and store
them in the password manager before handing the stripped URI. Half of the
changes deducing the username from the URI in
4a43e23b8c55 were incorrect.
Instead, we retrieve the username from the password manager before passing to
readauthforuri().
test-hgweb-auth.py was passing because the test itself was flawed: it was
passing URIs with credentials to find_password(), which never happens.
Patrick Mezard <pmezard@gmail.com> [Fri, 05 Aug 2011 21:05:40 +0200] rev 15024
http: strip credentials from urllib2 manager URIs (
issue2885)
urllib2 password manager does not strip credentials from URIs registered with
add_password() and compare them with stripped URIs in find_password(). Remove
credentials from URIs returned by util.url.authinfo(). It sometimes works when
no port was specified as the URI host is registered too.
Matt Mackall <mpm@selenic.com> [Thu, 04 Aug 2011 16:12:58 -0500] rev 15023
help: move option text display into a helper function
Matt Mackall <mpm@selenic.com> [Thu, 04 Aug 2011 15:36:15 -0500] rev 15022
help: move 'additional help topics' code
Matt Mackall <mpm@selenic.com> [Thu, 04 Aug 2011 15:34:30 -0500] rev 15021
help: rename option_lists to optlist
Matt Mackall <mpm@selenic.com> [Thu, 04 Aug 2011 15:08:41 -0500] rev 15020
help: drop with_version
If --version is specified, we print the version and exit (as documented).
Idan Kamara <idankk86@gmail.com> [Thu, 04 Aug 2011 19:41:23 +0300] rev 15019
dispatch: don't rewrap aliases that have the same definition
Previously aliases that overrode existing commands would wrap the old alias
on every call to dispatch() (twice actually), which is an obvious re-entrancy
issue for things like the command server or TortoiseHG.
Mads Kiilerich <mads@kiilerich.com> [Thu, 04 Aug 2011 02:51:29 +0200] rev 15018
url: really handle urls of the form file:///c:/foo/bar/ correctly
28edd65000d9 made sure that paths that seemed to start with a windows drive
letter would not get an extra leading slash.
localpath should thus not try to handle this case by removing a leading slash,
and this special handling is thus removed.
(The localpath handling of this case was wrong anyway, because paths that look
like they start with a windows drive letter can't have a leading slash.)
A quick verification of this is to run 'hg id file:///c:/foo/bar/'.
Andrew Pritchard <andrewp@fogcreek.com> [Tue, 02 Aug 2011 15:21:10 -0400] rev 15017
wireproto: add out-of-band error class to allow remote repo to report errors
Older clients will still print the provided error message and not much else:
over ssh, this will be each line prefixed with 'remote: ' in addition to an
"abort: unexpected response: '\n'"; over http, this will be the '---%<---'
banners in addition to the 'does not appear to be a repository' message.
Currently, clients with this patch will display 'abort: remote error:\n' and
the provided error text, but it is trivial to style the error text however is
deemed appropriate.
Matt Mackall <mpm@selenic.com> [Wed, 03 Aug 2011 16:41:14 -0500] rev 15016
windows: fix pyflakes warning on unused imports
This is ugly, but only marginally uglier than before, and it avoids
hacking/disabling our pyflakes test
Matt Mackall <mpm@selenic.com> [Tue, 02 Aug 2011 17:43:20 -0500] rev 15015
minirst: add decorateblocks search helper
Matt Mackall <mpm@selenic.com> [Tue, 02 Aug 2011 17:43:18 -0500] rev 15014
minirst: add getsections helper
Matt Mackall <mpm@selenic.com> [Tue, 02 Aug 2011 17:41:45 -0500] rev 15013
minirst: add formatblocks helper
Matt Mackall <mpm@selenic.com> [Tue, 02 Aug 2011 14:54:38 -0500] rev 15012
minirst: add parse method to get document structure
Adrian Buehlmann <adrian@cadifra.com> [Tue, 02 Aug 2011 13:18:56 +0200] rev 15011
util: move copymode into posix.py and windows.py
reducing it to a NOP on Windows.
This eliminates a pointless stat call on Windows and reduces the risk of
interferring with other processes (e.g. AV-scanners, file change watchers).
See also http://mercurial.selenic.com/wiki/UnlinkingFilesOnWindows, item 2d
Adrian Buehlmann <adrian@cadifra.com> [Tue, 02 Aug 2011 12:29:48 +0200] rev 15010
util: factor new function copymode out of mktempcopy
Adrian Buehlmann <adrian@cadifra.com> [Tue, 02 Aug 2011 11:32:39 +0200] rev 15009
revert: introduce short option -C for --no-backup
Corresponds to -C of the update command.
It's much more convenient to use:
$ hg revert -aC
than having to type
$ hg revert -a --no-backup
I think the 'no-backup' case is a frequent use case.
Introducing short option -C here fits with the muscle memory we have from
'hg update -C', which is described there as "discard uncommitted changes
(no backup)".
Matt Mackall <mpm@selenic.com> [Mon, 01 Aug 2011 18:10:05 -0500] rev 15008
merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 01 Aug 2011 18:09:20 -0500] rev 15007
Added signature for changeset
4a43e23b8c55
Matt Mackall <mpm@selenic.com> [Mon, 01 Aug 2011 18:09:00 -0500] rev 15006
Added tag 1.9.1 for changeset
4a43e23b8c55
Patrick Mezard <pmezard@gmail.com> [Mon, 01 Aug 2011 23:58:50 +0200] rev 15005
hgweb: do not ignore [auth] if url has a username (
issue2822)
The [auth] section was ignored when handling URLs like:
http://user@example.com/foo
Instead, we look in [auth] for an entry matching the URL and supplied user
name. Entries without username can match URL with a username. Prefix length
ties are resolved in favor of entries matching the username. With:
foo.prefix = http://example.org
foo.username = user
foo.password = password
bar.prefix = http://example.org/bar
and the input URL:
http://user@example.org/bar
the 'bar' entry will be selected because of prefix length, therefore prompting
for a password. This behaviour ensure that entries selection is consistent when
looking for credentials or for certificates, and that certificates can be
picked even if their entries do no define usernames while the URL does.
Additionally, entries without a username matched against a username are
returned as if they did have requested username set to avoid prompting again
for a username if the password is not set.
v2: reparse the URL in readauthforuri() to handle HTTP and HTTPS similarly.
v3: allow unset usernames to match URL usernames to pick certificates. Resolve
prefix length ties in favor of entries with usernames.
Matt Mackall <mpm@selenic.com> [Sun, 31 Jul 2011 01:46:52 +0200] rev 15004
hgweb: raw file mimetype guessing configurable, off by default (BC) (
issue2923)
Before: hgweb made it possible to download file content with a content type
detected from the file extension. It would serve .html files as text/html and
could thus cause XSS vulnerabilities if the web site had any kind of session
authorization and the repository content wasn't fully trusted.
Now: all files default to "application/binary", which all important
browsers will refuse to treat as text/html. See the table here:
https://code.google.com/p/browsersec/wiki/Part2#Survey_of_content_sniffing_behaviors
Matt Mackall <mpm@selenic.com> [Mon, 01 Aug 2011 14:53:10 -0500] rev 15003
hgweb: extract the path logic from updatereqenv and add doctests
Matt Mackall <mpm@selenic.com> [Mon, 01 Aug 2011 14:52:11 -0500] rev 15002
merge with stable
wujek [Mon, 01 Aug 2011 09:48:10 +0200] rev 15001
hgweb: handle 'baseurl' configurations with leading slash (
issue2934)
Idan Kamara <idankk86@gmail.com> [Mon, 01 Aug 2011 19:53:00 +0300] rev 15000
ui: call write() so the prompt string goes through subclassed implementation
Matt Mackall <mpm@selenic.com> [Mon, 01 Aug 2011 10:54:34 -0500] rev 14999
merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 01 Aug 2011 10:54:10 -0500] rev 14998
merge with i18n
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sun, 31 Jul 2011 23:42:40 +0900] rev 14997
i18n-ja: synchronized with
4fdab926e111
Jens Bäckman <jens.backman@gmail.com> [Sat, 30 Jul 2011 09:42:07 +0200] rev 14996
i18n-sv: synchronized with
192e02680d09
py4fun [Sun, 31 Jul 2011 22:12:13 +0200] rev 14995
parsers: remove redundant 'n' variable in parsers.parse_index2() (
issue2935)
Vasily Titskiy <qehgt0@gmail.com> [Thu, 28 Jul 2011 13:28:32 -0400] rev 14994
subrepo: handle adding svn subrepo with a svn:external file in it (
issue2931)
Idan Kamara <idankk86@gmail.com> [Sat, 30 Jul 2011 23:41:10 +0300] rev 14993
hook: be prepared for __stdout/err__ not having fileno()
it may have been replaced, see https://bitbucket.org/tortoisehg/thg/issue/937
Idan Kamara <idankk86@gmail.com> [Sat, 30 Jul 2011 21:04:14 +0300] rev 14992
dispatch: make sure global options on the command line take precedence
So if a user has verbose=True somewhere in his .hgrc files, giving -q
on the command line will override that.
This basically reverts
1b8c70c9f47c.
Augie Fackler <durin42@gmail.com> [Wed, 27 Jul 2011 18:35:35 -0500] rev 14991
http2: send an extra header to signal a non-broken client
Some proxies strip the expect header because they forward requests in
a non-compliant way or as a way to defend against bogus clients.
Augie Fackler <durin42@gmail.com> [Fri, 29 Jul 2011 12:46:45 -0500] rev 14990
httpclient: import
ca33b88d143c from py-nonblocking-http (
issue2932)
Andrei Vermel <avermel@mail.ru> [Fri, 29 Jul 2011 15:36:27 +0400] rev 14989
color.py - clear _terminfo_params in win32 mode
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sun, 31 Jul 2011 21:00:44 +0200] rev 14988
url: store and assume the query part of an url is in escaped form (
issue2921)
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Fri, 29 Jul 2011 20:26:52 +0200] rev 14987
mq/qqueue: print current queue name
Add an option to qqueue to print only the name of the current queue.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Andrzej Bieniek <andyhelp@gmail.com> [Sat, 30 Jul 2011 11:08:45 +0100] rev 14986
export: add %m to file format string (first line of the commit message)
$ hg commit -m "Initial commit"
$ hg export -o %m.patch tip #It creates Initial_commit.patch file.
Adrian Buehlmann <adrian@cadifra.com> [Fri, 29 Jul 2011 00:39:27 +0200] rev 14985
windows: eliminate win32 wildcard import
Matt Mackall <mpm@selenic.com> [Fri, 29 Jul 2011 17:27:38 -0500] rev 14984
merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 29 Jul 2011 17:27:14 -0500] rev 14983
merge with crew
Lee Cantey <lcantey@gmail.com> [Thu, 28 Jul 2011 02:38:01 +0300] rev 14982
test-filecache: change for python 2.4 compatibility
Andrew Pritchard <andrewp@fogcreek.com> [Wed, 27 Jul 2011 18:32:54 -0400] rev 14981
setdiscovery: return anyincoming=False when remote's only head is nullid
This fixes (
issue2907) a crash when using 'hg incoming --bundle' with an empty
remote repo and a non-empty local repo.
This also fixes an unreported bug that 'hg summary --remote' erroneously
reports incoming changes when the remote repo is empty and the local is not.
Also, add a test to make sure
issue2907 stays fixed
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 28 Jul 2011 14:36:07 +0900] rev 14980
i18n: use UTF-8 string to lower filename for case collision check
Some character sets, cp932 (known as Shift-JIS for Japanese) for
example, use 0x41('A') - 0x5A('Z') and 0x61('a') - 0x7A('z') as second
or later character.
In such character set, case collision checking recognizes different
files as CASEFOLDED same file, if filenames are treated as byte
sequence.
win32mbcs extension is not appropriate to handle this problem, because
this problem can occur on other than Windows platform only if
problematic character set is used.
Callers of util.checkcase() use known ASCII filenames as last
component of path, and string.lower() is not applied to directory part
of path. So, util.checkcase() is kept intact, even though it applies
string.lower() to filenames.
Matt Mackall <mpm@selenic.com> [Thu, 28 Jul 2011 14:20:06 -0500] rev 14979
merge with crew
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 14:59:31 -0500] rev 14978
check-code: disallow use of hasattr()
The hasattr() builtin from Python < 3.2 [1] has slightly surprising
behavior: it catches all exceptions, even KeyboardInterrupt. This
causes it to have several surprising side effects, such as hiding
warnings that occur during attribute load and causing mysterious
failure modes when ^Cing an application. In later versions of Python
2.x [0], exception classes which do not inherit from Exception (such
as SystemExit and KeyboardInterrupt) are not caught, but other types
of exceptions may still silently cause returning False instead of
getting a reasonable exception.
[0] http://bugs.python.org/
issue2196
[1] http://docs.python.org/dev/whatsnew/3.2.html
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 21:15:48 -0500] rev 14977
demandimport: use getattr instead of hasattr
We don't use util.safehasattr() here to avoid adding new dependencies
for demandimport. This change may expose previously-silenced
deprecation warnings to appear, as hasattr silently hides warnings
that occur during module import when using demandimport.
Augie Fackler <durin42@gmail.com> [Tue, 01 Mar 2011 23:35:22 -0600] rev 14976
demandimport: blacklist rfc822 and mimetools to prevent spurious warnings
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 20:46:30 -0500] rev 14975
i18n: use getattr instead of hasattr
Using getattr instead of util.safehasattr here to avoid adding another
dependency for i18n.
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:09:18 -0500] rev 14974
win32/hgwebdir_wsgi: use getattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:08:57 -0500] rev 14973
setup.py: use getattr instead of hasdattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:07:52 -0500] rev 14972
setup3k: use getattr instead of hasattr
Note that hasattr is fixed on Python 3, so this is more about being
concise and keeping check-code happy than actual correctness of code.
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:37:18 -0500] rev 14971
tests: use getattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:05:01 -0500] rev 14970
wireproto: use safehasattr or getattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:04:44 -0500] rev 14969
windows: use getattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:04:40 -0500] rev 14968
util: use safehasattr or getattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:02:42 -0500] rev 14967
templatefilters: use safehasattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:02:27 -0500] rev 14966
patch: use safehasattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:02:15 -0500] rev 14965
mail: use safehasattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:55:51 -0500] rev 14964
url: replace uses of hasattr with safehasattr or getattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:53:22 -0500] rev 14963
subrepo: use safehasattr instead of hasattr
Some of these instances could be rewritten as clever getattr(x, y,
default) ladders, but that felt like it impeded readability too much
to be worth the modest efficiency gain.
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:47:43 -0500] rev 14962
statichttprepo: replace hasattr with getattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:45:11 -0500] rev 14961
walkrepos: use getattr instead of hasattr for samestat
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:43:55 -0500] rev 14960
revlog: use getattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:41:46 -0500] rev 14959
lsprof: use getattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 20:36:59 -0500] rev 14958
keepalive: use safehasattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:38:46 -0500] rev 14957
hgweb: move remaining hasattr calls to safehasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:38:10 -0500] rev 14956
wsgicgi: use getattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:37:52 -0500] rev 14955
httprepo: use getattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:36:13 -0500] rev 14954
help command: use safehasattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:27:08 -0500] rev 14953
hgweb_mod: use safehasattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:22:18 -0500] rev 14952
hg: use safehasattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:19:43 -0500] rev 14951
encoding: use getattr isntead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:17:47 -0500] rev 14950
dispatch: use safehasattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:36:56 -0500] rev 14949
debugignore: use getattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:32:42 -0500] rev 14948
cmdutil: use safehasattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:09:17 -0500] rev 14947
byterange: replace uses of hasattr with getattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:07:09 -0500] rev 14946
bookmarks: use getattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 20:37:12 -0500] rev 14945
hgext: replace uses of hasattr with util.safehasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:30:19 -0500] rev 14944
globally: use safehasattr(x, '__iter__') instead of hasattr(x, '__iter__')
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:24:37 -0500] rev 14943
globally: use safehasattr(x, '__call__') instead of hasattr(x, '__call__')
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 14:59:55 -0500] rev 14942
safehasattr: new function to work around hasattr being broken
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:14:02 -0500] rev 14941
windows: check util.mainfrozen() instead of ad-hoc checks everywhere
Patrick Mezard <pmezard@gmail.com> [Tue, 26 Jul 2011 21:30:12 +0200] rev 14940
notify: rewrite user documentation
The main intent is to turn the reference help into a configuration walkthrough.
It also fix several things:
- Do not suggest to use it for commit notifications, it cannot work
- Fix notify.strip default value
- Mention that subscriptions can be setup in Mercurial configuration files
- Improve notify.strip and notify.domain documentation
Idan Kamara <idankk86@gmail.com> [Mon, 25 Jul 2011 22:19:28 +0300] rev 14939
cmdserver: repo.invalidate() on every runcommand
This will trigger the filecache and recreate every cached property that was
changed by something other than this cmdserver instance (e.g. by running
'hg commit' at the cmdline).