Matt Mackall <mpm@selenic.com> [Wed, 12 Oct 2011 18:46:23 -0500] rev 15240
graft: add user, date, and tool options
Matt Mackall <mpm@selenic.com> [Wed, 12 Oct 2011 18:46:03 -0500] rev 15239
graft: add --edit
Matt Mackall <mpm@selenic.com> [Wed, 12 Oct 2011 18:45:36 -0500] rev 15238
graft: add initial implementation
Augie Fackler <durin42@gmail.com> [Wed, 12 Oct 2011 11:09:57 -0500] rev 15237
bookmarks: delegate writing to the repo just like reading
This makes it easier for alternate storage backends to not use flat
files for bookmarks storage.
Idan Kamara <idankk86@gmail.com> [Wed, 12 Oct 2011 22:01:14 +0200] rev 15236
tests: add support for inline doctests in test files
This adds doctest like syntax to .t files, that can be interleaved with regular
shell code:
$ echo -n a > file
>>> print open('file').read()
a
>>> open('file', 'a').write('b')
$ cat file
ab
The syntax is exactly the same as regular doctests, so multiline statements
look like this:
>>> for i in range(3):
... print i
0
1
2
Each block has its own context, i.e.:
>>> x = 0
>>> print x
0
$ echo 'foo'
foo
>>> print x
will result in a NameError.
Errors are displayed in standard doctest format:
>>> print 'foo'
bar
--- /home/idan/dev/hg/default/tests/test-test.t
+++ /home/idan/dev/hg/default/tests/test-test.t.err
@@ -2,3 +2,16 @@
> >>> print 'foo'
> bar
> EOF
+ **********************************************************************
+ File "/tmp/tmps8X_0ohg-tst", line 1, in tmps8X_0ohg-tst
+ Failed example:
+ print 'foo'
+ Expected:
+ bar
+ Got:
+ foo
+ **********************************************************************
+ 1 items had failures:
+ 1 of 1 in tmps8X_0ohg-tst
+ ***Test Failed*** 1 failures.
+ [1]
As for the implementation, it's quite simple: when the test runner sees a line
starting with '>>>' it converts it, and all subsequent lines until the next
line that begins with '$' to a 'python -m heredoctest <<EOF' call with the
proper heredoc to follow. So if we have this test file:
>>> for c in 'abcd':
... print c
a
b
c
d
$ echo foo
foo
It gets converted to:
$ python -m heredoctest <<EOF
> >>> for c in 'abcd':
> ... print c
> a
> b
> c
> d
> EOF
$ echo foo
foo
And then processed like every other test file by converting it to a sh script.
Idan Kamara <idankk86@gmail.com> [Wed, 12 Oct 2011 22:01:13 +0200] rev 15235
tests: add helper script for processing doctests read from stdin
Writes stdin to a temp file and doctests it.
In the future we might want to spare the temp file and directly call into
doctest.
Also, with some tweaking it seems possible to adjust the line numbers reported
in an error report so they match the ones in the original file.
Eric Roshan Eisner <ede@alum.mit.edu> [Tue, 11 Oct 2011 21:34:55 -0700] rev 15234
subrepo: fix git branch tracking logic (issue2920)
Augie Fackler <durin42@gmail.com> [Tue, 11 Oct 2011 17:20:03 -0500] rev 15233
alias: don't shadow commands that we only partially matched (issue2993) (BC)
Previously, if you set an alias for "ci", it'd also shadow "commit"
even though you didn't specify that. This occurred for all commands
with explicit short variations.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 11 Oct 2011 18:48:45 +0200] rev 15232
resolve: update documentation to mention the .orig backup
Eric Roshan Eisner <ede@alum.mit.edu> [Tue, 11 Oct 2011 18:18:15 -0700] rev 15231
cmdutil.bailifchanged: abort for dirty subrepos
Greg Ward <greg@gerg.ca> [Tue, 11 Oct 2011 21:10:03 -0400] rev 15230
largefiles: improve help
Extension help taken from the URL formerly in the text
(https://developers.kilnhg.com/Repo/Kiln/largefiles/largefiles/File/usage.txt)
and improved.
Greg Ward <greg@gerg.ca> [Tue, 11 Oct 2011 21:11:01 -0400] rev 15229
largefiles: use ui.configlist() to split largefiles.patterns
Greg Ward <greg@gerg.ca> [Tue, 11 Oct 2011 21:07:08 -0400] rev 15228
largefiles: allow minimum size to be a float
Some old-fashioned people (e.g. me) think that incompressible
binary files >100 kB count as "large".
Greg Ward <greg@gerg.ca> [Tue, 11 Oct 2011 21:11:01 -0400] rev 15227
largefiles: factor out lfutil.getminsize()
Na'Tosha Bard <natosha@unity3d.com> [Tue, 11 Oct 2011 14:01:24 +0200] rev 15226
largefiles: cleanup import, now that we can assume > 1.9 for bundled extension
Na'Tosha Bard <natosha@unity3d.com> [Tue, 11 Oct 2011 13:15:29 +0200] rev 15225
largefiles: add test for status
Na'Tosha Bard <natosha@unity3d.com> [Tue, 11 Oct 2011 10:42:56 +0200] rev 15224
largefiles: remove pre-1.9 code from extension first bundled with 1.9
Matt Mackall <mpm@selenic.com> [Tue, 11 Oct 2011 23:16:05 -0500] rev 15223
pyflakes: clean up some import noise
Matt Mackall <mpm@selenic.com> [Tue, 11 Oct 2011 20:21:13 -0500] rev 15222
bdiff: fix pointer aliasing
Matt Mackall <mpm@selenic.com> [Tue, 11 Oct 2011 08:32:04 -0500] rev 15221
import: add --edit switch
Matt Mackall <mpm@selenic.com> [Mon, 10 Oct 2011 23:07:09 -0500] rev 15220
transplant: add --edit option
Matt Mackall <mpm@selenic.com> [Mon, 10 Oct 2011 23:01:25 -0500] rev 15219
rebase: add --edit switch
Augie Fackler <durin42@gmail.com> [Mon, 10 Oct 2011 17:57:40 -0500] rev 15218
httpclient: update to 07d8c356f4d1 of py-nonblocking-http
This addresses a defect when the server closes the socket before
finishing a response (if it crashes, for example) first spotted in
Issue2951.
Andreas Freimuth <andreas.freimuth@united-bits.de> [Mon, 10 Oct 2011 13:52:54 +0200] rev 15217
wireproto: do not call pushkey module directly (issue3041)
Call the repos pushkey/listkeys member function instead.
So the pushkey-hooks are triggered.
Na'Tosha Bard <natosha@unity3d.com> [Mon, 10 Oct 2011 17:34:17 +0200] rev 15216
largefiles: add beginnings of test (covers commit, remove, move, copy, and archive)
Na'Tosha Bard <natosha@unity3d.com> [Mon, 10 Oct 2011 17:33:17 +0200] rev 15215
setup: add largefiles to list of packages
Matt Mackall <mpm@selenic.com> [Sun, 09 Oct 2011 16:14:37 -0500] rev 15214
rebase: move updatedirstate into cmdutil so it can be shared
Matt Mackall <mpm@selenic.com> [Sun, 09 Oct 2011 11:03:57 -0500] rev 15213
subrepo: add git to the help topic
Matt Mackall <mpm@selenic.com> [Sat, 08 Oct 2011 15:19:05 -0500] rev 15212
branch: fix formatting of help note
Matt Mackall <mpm@selenic.com> [Sat, 08 Oct 2011 14:18:18 -0500] rev 15211
backout: deprecate/hide support for backing out merges
This has never worked usefully:
- it can't undo a completely unwanted merge, as it leaves the merge in the DAG
- it can't undo a faulty merge as that means doing a merge correctly,
not simply reverting to one or the other parent
Both of these kinds of merge also require coordinated action among
developers to avoid the bad merge continuing to affect future merges,
so we should stop pretending that backout is of any help here.
As backing out a merge now requires a hidden option, it can't be done
by accident, but will continue to 'work' for anyone who's already
dependent on --parent for some unknown reason.
Matt Mackall <mpm@selenic.com> [Sat, 08 Oct 2011 13:28:13 -0500] rev 15210
backout: add a note about not working on merges
Matt Mackall <mpm@selenic.com> [Sat, 08 Oct 2011 13:23:57 -0500] rev 15209
backout: mark some help verbose
Matt Mackall <mpm@selenic.com> [Fri, 07 Oct 2011 17:22:12 -0500] rev 15208
merge with stable
Elifarley Callado Coelho Cruz [Thu, 06 Oct 2011 19:45:26 -0300] rev 15207
acl: more descriptive error messages
Na'Tosha Bard <natosha@unity3d.com> [Thu, 06 Oct 2011 11:10:06 +0200] rev 15206
largefiles: fix commit of specified file on non-windows
jakob krainz <jakob@hawo-net.de> [Wed, 05 Oct 2011 10:28:39 +0200] rev 15205
convert: detect false cset boundaries in cvsps descriptions
Greg Ward <greg@gerg.ca> [Tue, 04 Oct 2011 19:43:45 -0400] rev 15204
transplant: wrap a transaction around the whole command
Matt Mackall <mpm@selenic.com> [Fri, 07 Oct 2011 17:08:24 -0500] rev 15203
help: generate command help into a single RST string for formatting
Matt Mackall <mpm@selenic.com> [Fri, 07 Oct 2011 16:36:54 -0500] rev 15202
help: unify the two -v notes for command help
Kirill Elagin <kirelagin@gmail.com> [Wed, 05 Oct 2011 09:20:38 +0300] rev 15201
diff: enhance highlighting with color (issue3034)
Now the highlighter knows whether it is in the header of the patch or not.
Matt Mackall <mpm@selenic.com> [Fri, 07 Oct 2011 15:36:50 -0500] rev 15200
debuginstall: report the template path
Greg Ward <greg@gerg.ca> [Sat, 01 Oct 2011 16:42:39 -0400] rev 15199
extensions: print some debug info on import failure
This is handy if hgext.foo exists but has a bogus "import blah":
previously we just discarded the "No module named blah" error. Now at
least you can see it with --debug. Not perfect, but better than
nothing.
Greg Ward <greg@gerg.ca> [Sun, 02 Oct 2011 14:34:28 -0400] rev 15198
import: wrap a transaction around the whole command
Now 'rollback' after 'import' is less surprising: it rolls back all of
the imported changesets, not just the last one. As an extra added
benefit, you don't need 'rollback -f' after 'import --bypass', which
was an undesired side effect of fixing issue2998 (59e8bc22506e)..
Note that this is a different take on issue963, which complained that
rollback after importing multiple patches returned the working dir
parent to the starting point, not to the second-last patch applied.
Since we now rollback the entire import, returning the working dir to
the starting point is entirely logical. So this change also undoes
a732eebf1958, the fix to issue963, and updates its tests accordingly.
Bottom line: rollback after import was weird before issue963,
understandable since the fix for issue963, and even better now.
Greg Ward <greg@gerg.ca> [Sat, 01 Oct 2011 21:52:44 -0400] rev 15197
import: improve error reporting
When applying a series of patch files, it's nice to be explicitly told *which* file is broken.
Greg Ward <greg@gerg.ca> [Sat, 01 Oct 2011 21:51:25 -0400] rev 15196
import: join base with patchurl *after* checking for stdin
This only matters when using the deprecated --base option, and
combining --base with a patch on stdin makes no sense. But it's such
an obvious bug and easy fix that I couldn't pass it by.
Greg Ward <greg@gerg.ca> [Sat, 01 Oct 2011 21:49:04 -0400] rev 15195
import: rename some local variables
Greg Ward <greg@gerg.ca> [Sat, 01 Oct 2011 21:30:49 -0400] rev 15194
import: simplify status reporting logic (and make it more I18N-friendly)
The old code printed (with ui.status()) the changeset ID created by
patch N after committing patch N+1, e.g.
applying patch1
applying patch2
applied 1d4bd90af0e4
where 1d4bd90af0e4 is the changeset ID resulting from patch1. That's
just weird. It's also inconsistent: we only reported the changeset ID
when applying >1 patches. And it's inconsistent with 'commit', which
only tells you the new changeset ID in verbose mode. Finally, the
existing code was I18N-hostile, since it concatenated translated
strings.
The new way is to print the just-created changeset ID with ui.note()
immediately after committing it. It also clarifies what the user
message is for easier I18N.
Matt Mackall <mpm@selenic.com> [Fri, 07 Oct 2011 15:36:35 -0500] rev 15193
convert: fix crazy rollback call, broken by recent rollback safety checks
This was causing test-convert-cvs.t to fail.
Matt Mackall <mpm@selenic.com> [Sun, 02 Oct 2011 13:13:46 -0500] rev 15192
rst: fix detection of single-row tables
This fixes option lists for commands with only an --mq option.
Matt Mackall <mpm@selenic.com> [Sun, 02 Oct 2011 16:41:07 -0500] rev 15191
subrepo: fix repo relative path calculation for root directories (issue3033)
Matt Mackall <mpm@selenic.com> [Sun, 02 Oct 2011 13:02:15 -0500] rev 15190
subrepo: improve error message when svn isn't found
subprocess was returning the following unhelpful message:
abort: No such file or directory
Matt Mackall <mpm@selenic.com> [Sat, 01 Oct 2011 16:19:33 -0500] rev 15189
merge with stable
Greg Ward <greg@gerg.ca> [Sat, 01 Oct 2011 16:39:51 -0400] rev 15188
largefiles: don't break existing tests (syntax error, bad imports)
Matt Mackall <mpm@selenic.com> [Sat, 01 Oct 2011 16:18:51 -0500] rev 15187
rollback: use a hint for force
Matt Mackall <mpm@selenic.com> [Sat, 01 Oct 2011 15:49:29 -0500] rev 15186
Added signature for changeset 351a9292e430
Matt Mackall <mpm@selenic.com> [Sat, 01 Oct 2011 15:49:24 -0500] rev 15185
Added tag 1.9.3 for changeset 351a9292e430
Matt Mackall <mpm@selenic.com> [Sat, 01 Oct 2011 15:47:03 -0500] rev 15184
record: use command wrapper properly for qnew/qrefresh (issue3001)
Greg Ward <greg@gerg.ca> [Fri, 30 Sep 2011 21:58:54 -0400] rev 15183
rollback: avoid unsafe rollback when not at tip (issue2998)
You can get into trouble if you commit, update back to an older
changeset, and then rollback. The update removes your valuable changes
from the working dir, then rollback removes them history. Oops: you've
just irretrievably lost data running nothing but core Mercurial
commands. (More subtly: rollback from a shared clone that was already
at an older changeset -- no update required, just rollback from the
wrong directory.)
The fix assumes that only "commit" transactions have irreplaceable
data, and allows rolling back non-commit transactions as always. But
when rolling back a commit, check that the working dir is checked out
to tip, i.e. the changeset we're about to destroy. If not, abort. You
can get back the old (dangerous) behaviour with --force.
Matt Mackall <mpm@selenic.com> [Fri, 30 Sep 2011 15:11:19 -0500] rev 15182
merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 30 Sep 2011 15:10:50 -0500] rev 15181
merge with i18n
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 27 Sep 2011 03:33:26 +0900] rev 15180
i18n-ja: synchronized with 31c9e2a702d1
Matt Mackall <mpm@selenic.com> [Fri, 30 Sep 2011 14:26:36 -0500] rev 15179
clone: add help examples
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