Martin Geisler <mg@aragost.com> [Tue, 10 May 2011 13:19:05 +0200] rev 14285
help: give hint about 'hg help -e' when appropriate
The hint is only given if a command shadows an extension with the same
name and when that extension has a multi-line module docstring.
Henri Wiechers <hwiechers@gmail.com> [Wed, 20 Jan 2010 20:24:20 +0200] rev 14284
help: add -e/--extension switch to display extension help text
Martin Geisler <mg@aragost.com> [Mon, 09 May 2011 18:11:08 +0200] rev 14283
debugbuilddag: read DAG from stdin if not given on cmdline
Martin Geisler <mg@aragost.com> [Mon, 09 May 2011 17:20:15 +0200] rev 14282
run-tests: remove check on --shell argument
No shell is needed when executing Python tests and finding a good
shell might be difficult/impossible on some platforms (e.g., Windows).
Martin Geisler <mg@aragost.com> [Mon, 09 May 2011 17:15:44 +0200] rev 14281
subrepo: create subrepos using clone instead of pull
Subrepositories used to be created empty and then filled with data
using pull. This is wasteful when you do a clone from a local source
since it means that no hardlinks are created for the subrepos.
This patch make the hgsubrepo._get method check for an empty subrepo
and in that case do a clone instead of a pull. This brings in the same
data as before, but creates hardlinks when possible.
Martin Geisler <mg@aragost.com> [Mon, 09 May 2011 16:41:45 +0200] rev 14280
progress: add speed format
This is not enabled by default, but the user can add it by setting
progress.format.
We might want to let the estimate format output a speed instead of an
ETA if there is not total. Currently estimate just returns the empty
string in that case.
Martin Geisler <mg@aragost.com> [Mon, 09 May 2011 14:40:49 +0200] rev 14279
debugbuilddag: output progress information
Martin Geisler <mg@aragost.com> [Mon, 09 May 2011 14:33:08 +0200] rev 14278
test-debugbuilddag: replace unneeded 'rm -rf' with 'rm -r'
Martin Geisler <mg@aragost.com> [Mon, 09 May 2011 11:01:45 +0200] rev 14277
hgrc.5: document positional arguments in aliases
Martin Geisler <mg@aragost.com> [Mon, 09 May 2011 10:52:08 +0200] rev 14276
merge with stable
Martin Geisler <mg@aragost.com> [Mon, 09 May 2011 10:46:54 +0200] rev 14275
hgrc.5: document shell aliases
Matt Mackall <mpm@selenic.com> [Sun, 08 May 2011 16:41:41 -0500] rev 14274
merge with crew
Adrian Buehlmann <adrian@cadifra.com> [Sun, 08 May 2011 20:45:47 +0200] rev 14273
rename util.is_exec to isexec
Adrian Buehlmann <adrian@cadifra.com> [Sun, 08 May 2011 20:42:28 +0200] rev 14272
posix: delete unused expand_glob
Adrian Buehlmann <adrian@cadifra.com> [Sun, 08 May 2011 20:35:46 +0200] rev 14271
rename util.find_exe to findexe
Sune Foldager <cryo@cyanite.org> [Sun, 08 May 2011 21:32:33 +0200] rev 14270
revlog: support writing generaldelta revlogs
With generaldelta switched on, deltas are always computed against the first
parent when adding revisions. This is done regardless of what revision the
incoming bundle, if any, is deltaed against.
The exact delta building strategy is subject to change, but this will not
affect compatibility.
Generaldelta is switched off by default.
Sune Foldager <cryo@cyanite.org> [Sun, 08 May 2011 21:24:30 +0200] rev 14269
cmdutil: fix errors reported by pyflakes test
Matt Mackall <mpm@selenic.com> [Sun, 08 May 2011 16:16:41 -0500] rev 14268
merge with stable
Matt Mackall <mpm@selenic.com> [Sun, 08 May 2011 11:39:24 -0500] rev 14267
check-code: complain about set.isdisjoint
Alexander Solovyov <alexander@solovyov.net> [Sun, 01 May 2011 13:07:00 +0200] rev 14266
fix bookmarks rollback behavior
Before this patch undo.bookmarks was created on bookmarks write and
not with other transaction-related files. There were two issues: first
is that if you have changed bookmarks few times after a transaction
happened, rollback will give you a state which can point to
non-existing revision. Second is that if you have not changed
bookmarks after a transaction, rollback will touch your state anyway.
This change also adds `localrepo._writejournal` method, which can be
used by other extensions to save their transaction-related backup in
right time.
Alexander Solovyov <alexander@solovyov.net> [Sun, 01 May 2011 12:29:32 +0200] rev 14265
add positional arguments to non-shell aliases
Idan Kamara <idankk86@gmail.com> [Sat, 07 May 2011 21:01:15 +0300] rev 14264
run-tests: take the basepath when constructing the test temp dir
so it's possible to run tests that are outside the test/ dir
Idan Kamara <idankk86@gmail.com> [Sat, 07 May 2011 20:56:43 +0300] rev 14263
run-tests: compare absolute paths in _checkhglib
Adrian Buehlmann <adrian@cadifra.com> [Sat, 07 May 2011 22:25:20 +0200] rev 14262
util: rename _windows_reserved_filenames and _windows_reserved_chars
Adrian Buehlmann <adrian@cadifra.com> [Sat, 07 May 2011 20:22:32 +0200] rev 14261
opener: rename _can_symlink to _cansymlink
Patrick Mezard <pmezard@gmail.com> [Sun, 08 May 2011 17:48:31 +0200] rev 14260
patch: make patch()/internalpatch() always update the dirstate
Patrick Mezard <pmezard@gmail.com> [Sun, 08 May 2011 17:48:30 +0200] rev 14259
patch: move updatedir() from cmdutil into patch
Also, create an artificial wdutil.py to avoid import cycles between patch.py
and cmdutil.py.
Patrick Mezard <pmezard@gmail.com> [Sun, 08 May 2011 17:48:29 +0200] rev 14258
record: unconditionally update the working dir after patching
Patrick Mezard <pmezard@gmail.com> [Sun, 08 May 2011 17:48:29 +0200] rev 14257
mq: explicitly updatedir() even if patch() fails
It already works that way in practice, and we intend to merge updatedir() into
patch().
Idan Kamara <idankk86@gmail.com> [Fri, 06 May 2011 19:55:46 +0300] rev 14256
mq: allow to qpop/push with a dirty working copy (issue2780)
It's safe to do so if the sets of changed files in the
working copy and patches are disjoint.
Idan Kamara <idankk86@gmail.com> [Fri, 06 May 2011 19:03:41 +0300] rev 14255
patch: introduce changedfiles
returns the set of all changed files in a given patch
Sune Foldager <cryo@cyanite.org> [Sat, 07 May 2011 23:14:36 +0200] rev 14254
debugindex: change output for generaldelta revlogs
For generaldelta revlogs, reporting the deltaparent instead of the chain base
makes more sense, since that's what's actually stored in the revlog.
Sune Foldager <cryo@cyanite.org> [Sat, 07 May 2011 22:40:17 +0200] rev 14253
revlog: support reading generaldelta revlogs
Generaldelta is a new revlog global flag. When it's turned on, the base field
of each revision entry holds the deltaparent instead of the base revision of
the current delta chain.
This allows for great potential flexibility when generating deltas, as any
revision can serve as deltaparent. Previously, the deltaparent for revision r
was hardcoded to be r - 1.
The base revision of the delta chain can still be accessed as before, since it
is now computed in an iterative fashion, following the deltaparents backwards.
Sune Foldager <cryo@cyanite.org> [Sat, 07 May 2011 22:40:14 +0200] rev 14252
revlog: calculate base revisions iteratively
This is in preparation for generaldelta, where the revlog entry base field is
reinterpreted as the deltaparent. For that reason we also rename the base
function to chainbase.
Without generaldelta, performance is unaffected, but generaldelta will suffer
from this in _addrevision, since delta chains will be walked repeatedly.
A cache has been added to eliminate this problem completely.
Sune Foldager <cryo@cyanite.org> [Sat, 07 May 2011 22:37:40 +0200] rev 14251
revlog: remove the last bits of punched/shallow
Most of it was removed in e7483ec3c374, but a few pieces were accidentally
left behind.
Patrick Mezard <pmezard@gmail.com> [Sat, 07 May 2011 21:12:35 +0200] rev 14250
util: make readfile() operate in binary mode
writefile() and appendfile() are already working that way.
Patrick Mezard <pmezard@gmail.com> [Sat, 07 May 2011 21:12:33 +0200] rev 14249
cmdutil: normalize log message eols when reading from file
This will be necessary once util.readfile() operates in binary mode. While
changelog.add() already normalizes the message, doing so in logmessage() is
required as ui.edit() or others expect messages with LF only.
Patrick Mezard <pmezard@gmail.com> [Sat, 07 May 2011 21:12:30 +0200] rev 14248
match: make 'listfile:' split on LF and CRLF
We want util.readfile() to operate in binary mode, so EOLs have to be handled
correctly depending on the platform. It seems both easier and more convenient
to treat LF and CRLF the same way on all platforms.
Patrick Mezard <pmezard@gmail.com> [Sat, 07 May 2011 17:25:12 +0200] rev 14247
progress: remove useless statement left by bab267e7fc1a
Patrick Mezard <pmezard@gmail.com> [Sat, 07 May 2011 17:25:02 +0200] rev 14246
debugbuilddag: simplify tags serialization a bit
Augie Fackler <durin42@gmail.com> [Mon, 02 May 2011 12:10:50 -0500] rev 14245
httprepo: send 100-continue on POSTs if using http2
Augie Fackler <durin42@gmail.com> [Fri, 06 May 2011 10:22:08 -0500] rev 14244
url: use new http support if requested by the user
The new http library is wired in via an extra module
(httpconnection.py), as it requires similar but different plumbing to
connect the library to Mercurial's internals and urllib2. Eventualy we
should be able to remove all of keepalive.py and its associated tangle
in url.py and replace it all with the code in httpconnection.py.
To use the new library, set 'ui.usehttp2' to true. The underlying http
library uses the logging module liberally, so if things break you can
use 'ui.http2debuglevel' to set the log level to INFO or DEBUG to get
that logging information (for example, ui.http2debuglevel=info.)
Augie Fackler <durin42@gmail.com> [Fri, 06 May 2011 09:57:55 -0500] rev 14243
Import new http library as mercurial.httpclient.
This is revision a4229f13c374 of
http://py-nonblocking-http.googlecode.com/ with a no-check-code
comment added to the end of each file using `for fi in $(hg manifest |
grep mercurial/httpclient/) ; echo '# no-check-code' >> $fi`.
Wagner Bruna <wbruna@softwareexpress.com.br> [Fri, 06 May 2011 15:48:04 -0300] rev 14242
commands, i18n: add translation hint for split message
Idan Kamara <idankk86@gmail.com> [Fri, 06 May 2011 19:03:45 +0300] rev 14241
mq: don't hide the patch module
Idan Kamara <idankk86@gmail.com> [Fri, 06 May 2011 18:45:12 +0300] rev 14240
patch: remove unused ui arg to iterhunks
Idan Kamara <idankk86@gmail.com> [Fri, 06 May 2011 18:45:12 +0300] rev 14239
mq: loosen except clause when reading patch headers
Matt Mackall <mpm@selenic.com> [Fri, 06 May 2011 13:04:24 -0500] rev 14238
merge with abuehl
Adrian Buehlmann <adrian@cadifra.com> [Fri, 06 May 2011 15:41:04 +0200] rev 14237
rename util.set_signal_handler to setsignalhandler
Adrian Buehlmann <adrian@cadifra.com> [Fri, 06 May 2011 15:36:05 +0200] rev 14236
rename util.executable_path to executablepath
Adrian Buehlmann <adrian@cadifra.com> [Fri, 06 May 2011 15:34:34 +0200] rev 14235
rename util.os_link to oslink
Adrian Buehlmann <adrian@cadifra.com> [Fri, 06 May 2011 15:31:09 +0200] rev 14234
rename explain_exit to explainexit
Adrian Buehlmann <adrian@cadifra.com> [Fri, 06 May 2011 15:25:35 +0200] rev 14233
rename util.set_binary to setbinary
Adrian Buehlmann <adrian@cadifra.com> [Fri, 06 May 2011 15:22:31 +0200] rev 14232
rename util.set_flags to setflags
Adrian Buehlmann <adrian@cadifra.com> [Fri, 06 May 2011 15:19:48 +0200] rev 14231
rename util.parse_patch_output to parsepatchoutput
Adrian Buehlmann <adrian@cadifra.com> [Fri, 06 May 2011 15:16:22 +0200] rev 14230
rename util.lookup_reg to lookupreg
Adrian Buehlmann <adrian@cadifra.com> [Fri, 06 May 2011 15:13:46 +0200] rev 14229
rename util.set_hgexecutable to _sethgexecutable
Adrian Buehlmann <adrian@cadifra.com> [Fri, 06 May 2011 15:10:29 +0200] rev 14228
rename util.main_is_frozen to mainfrozen
Adrian Buehlmann <adrian@cadifra.com> [Fri, 06 May 2011 15:02:53 +0200] rev 14227
scmutil: rename local function _add_dir_if_not_there
Adrian Buehlmann <adrian@cadifra.com> [Fri, 06 May 2011 14:58:04 +0200] rev 14226
rename scmutil.user_rcpath to userrcpath
Adrian Buehlmann <adrian@cadifra.com> [Fri, 06 May 2011 14:54:05 +0200] rev 14225
rename scmutil.system_rcpath to systemrcpath
Adrian Buehlmann <adrian@cadifra.com> [Fri, 06 May 2011 14:52:25 +0200] rev 14224
rename scmutil.os_rcpath to osrcpath
Matt Mackall <mpm@selenic.com> [Fri, 06 May 2011 11:51:18 -0500] rev 14223
merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 06 May 2011 11:50:58 -0500] rev 14222
merge with crew
Martin Geisler <mg@aragost.com> [Fri, 06 May 2011 14:29:53 +0200] rev 14221
merge with stable
The change from 7b627923739f (parent 2) is not needed after switching
to the new url parser.
Adrian Buehlmann <adrian@cadifra.com> [Fri, 06 May 2011 09:54:06 +0200] rev 14220
rename path_auditor to pathauditor
The Mercurial 1.9 release is moving a lot of stuff around anyway and we are
already moving path_auditor from util.py to scmutil.py for that release.
So this seems like a good opportunity to do such a rename. It also strengthens
the current project policy to avoid underbars in names.
Martin Geisler <mg@aragost.com> [Fri, 06 May 2011 12:09:20 +0200] rev 14219
revlog: use real Booleans instead of 0/1 in nodesbetween
Martin Geisler <mg@aragost.com> [Fri, 06 May 2011 11:31:40 +0200] rev 14218
patch: fix clash between local variable and exception instance
The local err variable would be bound to PatchError thrown and it
keeps this value even after the except block is executed.
The whole thing worked anyway since the rejected variable is set in
the except block and this makes the function return -1 when a
PatchError is thrown.
Martin Geisler <mg@aragost.com> [Fri, 06 May 2011 11:12:55 +0200] rev 14217
patchfile: use real Booleans instead of 0/1
Martin Geisler <mg@aragost.com> [Fri, 06 May 2011 11:11:55 +0200] rev 14216
annotate: use real Booleans instead of 0/1
Martin Geisler <mg@aragost.com> [Fri, 06 May 2011 10:02:46 +0200] rev 14215
hbisect: use real Booleans instead of 0/1
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Fri, 06 May 2011 14:45:13 +0200] rev 14214
summary: run discovery only once for in/out against same repo
Reuses the result of findcommonincoming if default and default-push
are the same.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Fri, 06 May 2011 14:44:18 +0200] rev 14213
discovery: resurrect findoutgoing as findcommonoutgoing for extension hooks
discovery.findoutgoing used to be a useful hook for extensions like
hgsubversion. This patch reintroduces this version of findcommonincoming
which is meant to be used when computing outgoing changesets.
Idan Kamara <idankk86@gmail.com> [Fri, 06 May 2011 16:00:48 +0300] rev 14212
transplant: remove unneeded loop over repo in revset
Idan Kamara <idankk86@gmail.com> [Fri, 06 May 2011 15:37:38 +0300] rev 14211
transplant: fix revset doc
Idan Kamara <idankk86@gmail.com> [Fri, 06 May 2011 16:07:35 +0300] rev 14210
mq: add a 'mq()' revset predicate that returns applied mq csets
Augie Fackler <durin42@gmail.com> [Fri, 06 May 2011 10:17:07 -0500] rev 14209
pyflakes: ignore files marked no-check-code
Sune Foldager <cryo@cyanite.org> [Thu, 05 May 2011 18:05:24 +0200] rev 14208
revlog: compute correct deltaparent in the deltaparent function
It now returns nullrev for chain base revisions, since they are conceptually
deltas against nullrev. The revdiff function was updated accordingly.
Zachary Gramana <zgramana@pottsconsultinggroup.com> [Thu, 05 May 2011 11:33:02 -0400] rev 14207
changelog: fixes leaked file handle
Steven Brown <StevenGBrown@gmail.com> [Thu, 05 May 2011 23:21:37 +0800] rev 14206
setdiscovery: limit lines to 80 characters
Thomas Arendsen Hein <thomas@intevation.de> [Thu, 05 May 2011 16:01:09 +0200] rev 14205
subrepo: use code from 71ea5b2b9517 only if Python needs it (issue2795)
With Python >= 2.6 the original code already works correct, therefore the
fix for issue2556 on Python <= 2.5 broke relative subrepositories with
newer versions of Python.
Augie Fackler <durin42@gmail.com> [Wed, 04 May 2011 22:08:55 -0500] rev 14204
sslutil: extracted ssl methods from httpsconnection in url.py
This makes it easier to share ssl cert validation with other http
implementations.
Mads Kiilerich <mads@kiilerich.com> [Fri, 06 May 2011 00:34:10 +0200] rev 14203
check-code: fix checking for sh style in .t tests
Restore checks after they were disabled by 64de9ca66511.
Martin Geisler <mg@lazybytes.net> [Thu, 05 May 2011 20:04:49 +0200] rev 14202
run-tests: add --shell command line flag
This makes it easy to test with, say, both /bin/bash and /bin/dash
instead of changing the system-wide /bin/sh.
Martin Geisler <mg@lazybytes.net> [Thu, 05 May 2011 20:03:43 +0200] rev 14201
run-tests: use type of default to convert environment variable
Before, defaults could only be integers, they can now also be strings,
floats and what have you.
Martin Geisler <mg@lazybytes.net> [Thu, 05 May 2011 19:29:02 +0200] rev 14200
test-treediscovery: fix escaping for both dash and bash
A '\n' on the command line is turned into a newline by dash, but kept
as-is by bash, which resulted in a syntax error in the config file.
Luckily, dash wont turn '\n' into a newline when it is part of a
here-doc, so we can write the config file using that technique.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Thu, 05 May 2011 12:53:33 +0200] rev 14199
treediscovery: fix regression when run against older repos (issue2793)
I ran the entire test suite with "known" and "getbundle" disabled in
localrepository. This generated failures because the old findoutgoing
had always queried remote's heads explicitly and thus always got them
back in the returned heads. treediscovery.findcommonincoming now
correctly returns remote's heads in all cases.
Also adds a dedicated test for running treediscovery against a
pre-getbundle HTTP server.
Martin Geisler <mg@aragost.com> [Thu, 05 May 2011 14:57:21 +0200] rev 14198
commands: use util.Abort's hint some more
Martin Geisler <mg@aragost.com> [Thu, 05 May 2011 12:16:43 +0200] rev 14197
commands: use double-quotes for strings with single-quotes
The globalopts table contain a couple of \' still, but it was
normalized like that in 83238c1db6de.
Sune Foldager <cryo@cyanite.org> [Thu, 05 May 2011 12:46:02 +0200] rev 14196
revlog: remove support for punched/shallow
The feature was never finished, and there has been restructuring going on
since it was added.
Sune Foldager <cryo@cyanite.org> [Thu, 05 May 2011 12:55:12 +0200] rev 14195
revlog: remove support for parentdelta
We will introduce a more powerful and general delta concept instead,
called generaldelta.
Adrian Buehlmann <adrian@cadifra.com> [Wed, 04 May 2011 12:58:59 +0200] rev 14194
store: break up reference cycle introduced in 9cbff8a39a2a
see also 996c1cd8f530
Augie Fackler <durin42@gmail.com> [Wed, 04 May 2011 10:32:08 -0500] rev 14193
test-https.t: clean up superfluous trailing whitespace
Augie Fackler <durin42@gmail.com> [Wed, 04 May 2011 10:39:10 -0500] rev 14192
run-tests.py: correctly handle list options with parallel tasks
Idan Kamara <idankk86@gmail.com> [Wed, 04 May 2011 23:12:23 +0300] rev 14191
mq: don't suggest to refresh when qpushing with no applied patches
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Wed, 04 May 2011 20:14:30 +0200] rev 14190
bundlerepo: fix closing and docstring of getremotechanges
I did not in fact implement what I documented about closing of the
original repo. And there was a bit of leftover from an older version
of the API.
Kevin Bullock <kbullock@ringworld.org> [Wed, 04 May 2011 10:43:47 -0500] rev 14189
bookmarks: allow deactivating current bookmark with -i
Kevin Bullock <kbullock@ringworld.org> [Sat, 11 Dec 2010 18:08:55 +0100] rev 14188
bookmarks: allow to create/move bookmark without making it current (issue2788)
Adds a -i/--inactive flag to the bookmarks command to create or move a
bookmark without making it the current one. This lets you use a bookmark
like a shareable, movable 'tag' and less like a 'branch'.
Thanks to Alexander Solovyov <alexander@solovyov.net> for most of the
work of implementation, and Matt Mackall <mpm@selenic.com> for
suggesting the option name.
Mads Kiilerich <mads@kiilerich.com> [Thu, 05 May 2011 01:57:13 +0200] rev 14187
tests: test subrepos with ssh urls
Mads Kiilerich <mads@kiilerich.com> [Thu, 05 May 2011 01:47:46 +0200] rev 14186
tests: share dummyssh
Mads Kiilerich <mads@kiilerich.com> [Thu, 05 May 2011 01:47:46 +0200] rev 14185
tests: fix test-ssh.t after 6bd9778ae749
Sune Foldager <cryo@cyanite.org> [Wed, 04 May 2011 19:27:55 +0200] rev 14184
fix errors reported by pyflakes test
Matt Mackall <mpm@selenic.com> [Wed, 04 May 2011 08:21:50 -0500] rev 14183
merge with crew
Sune Foldager <cryo@cyanite.org> [Wed, 04 May 2011 13:37:41 +0200] rev 14182
tests: fix deprecated use of hg debugdata/debugindex
For filelogs, debugindex and debugdata can be called with the file name
directly instead of the path to the revlog. Since in the future filelogs
will no longer be valid revlogs, calling with a path to the revlog is
deprecated for debugdata. For debugindex it is expected to still work,
but I changed them as well for consistency.
Matt Mackall <mpm@selenic.com> [Tue, 03 May 2011 22:04:23 -0500] rev 14181
merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 03 May 2011 22:04:11 -0500] rev 14180
merge with crew
Matt Mackall <mpm@selenic.com> [Tue, 03 May 2011 21:53:13 -0500] rev 14179
hgext: fixup a couple missed file().read() instances
Adrian Buehlmann <adrian@cadifra.com> [Tue, 03 May 2011 22:11:56 +0200] rev 14178
test-casecollision.t: add test for case changing rename
timeless <timeless@mozdev.org> [Sun, 01 May 2011 18:57:11 +0200] rev 14177
convert: fix error in git solaris code
timeless <timeless@mozdev.org> [Sun, 01 May 2011 17:36:16 +0200] rev 14176
test: add pyflakes checking for unable to detect undefined names
timeless <timeless@mozdev.org> [Sun, 01 May 2011 17:27:41 +0200] rev 14175
tests: add pyflakes checking for assigned to but never used
timeless <timeless@mozdev.org> [Sun, 01 May 2011 17:20:40 +0200] rev 14174
remove unused variables
timeless <timeless@mozdev.org> [Sun, 01 May 2011 18:56:27 +0200] rev 14173
test-pyflake: improve sorting algorithm
Johan Euphrosine <proppy@google.com> [Mon, 02 May 2011 09:50:21 +0200] rev 14172
add make check: tests rule
Sune Foldager <cryo@cyanite.org> [Tue, 03 May 2011 22:28:08 +0200] rev 14171
ui: add configint function and tests
Kevin Bullock <kbullock@ringworld.org> [Tue, 03 May 2011 11:46:02 -0500] rev 14170
mq: strip extra whitespace from node ids in header (issue2790)
This makes `hg qpush --exact` work with patches created by `hg export`.
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Mon, 02 May 2011 10:11:24 +0200] rev 14169
check-code: disallow calling opener(...).read() and opener(..).write()
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Mon, 02 May 2011 10:11:18 +0200] rev 14168
prevent transient leaks of file handle by using new helper functions
These leaks may occur in environments that don't employ a reference
counting GC, i.e. PyPy.
This implies:
- changing opener(...).read() calls to opener.read(...)
- changing opener(...).write() calls to opener.write(...)
- changing open(...).read(...) to util.readfile(...)
- changing open(...).write(...) to util.writefile(...)
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Mon, 02 May 2011 10:11:05 +0200] rev 14167
util & scmutil: adapt read/write helpers as request by mpm
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Mon, 02 May 2011 09:11:35 +0200] rev 14166
store: use a subclass, not a function for fncacheopener
jfh <jason@jasonfharris.com> [Mon, 18 Apr 2011 02:42:52 +0200] rev 14165
util.termwidth: never return 0 for terminal width
Catch a case where the termwidth was being reported as 0 when I was connecting
with TLMTask instead of NSTask in OSX. This caused the progress extension to
print no progress. The termwidth should never return 0 so in case we would
return 0, simply fall back to the default termwidth below which is 80.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Mon, 02 May 2011 19:21:30 +0200] rev 14164
discovery: add new set-based discovery
Adds a new discovery method based on repeatedly sampling the still
undecided subset of the local node graph to determine the set of nodes
common to both the client and the server.
For small differences between client and server, it uses about the same
or slightly fewer roundtrips than the old tree-based discovery. For
larger differences, it typically reduces the number of roundtrips
drastically (from 150 to 4, for instance).
The old discovery code now lives in treediscovery.py, the new code is
in setdiscovery.py.
Still missing is a hook for extensions to contribute nodes to the
initial sample. For instance, Augie's remotebranches could contribute
the last known state of the server's heads.
Credits for the actual sampler and computing common heads instead of
bases go to Benoit Boissinot.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Mon, 02 May 2011 19:21:30 +0200] rev 14163
debugbuilddag: use memctx for speed
This drops the options to run arbitrary shell commands within
commits and the option to create a file that gets appended to
in every revision. It now supports to not write file data at
all, which is very fast for generating a pure 00changelog.i
(useful for discovery tests, for instance).
Timings for 1000 linear nodes:
* Old `hg debugbuilddag -o '+1000'` took 4.5 secs.
* New `hg debugbuilddag -o '+1000'` takes 2 secs.
* New `hg debugbuilddag '+1000'` takes 0.8 secs.
(The last one creates only 00changelog.i).
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Mon, 02 May 2011 19:20:29 +0200] rev 14162
localrepo: reuse parent manifest in commitctx if no files have changed
This speeds up the in-memory version of debugbuilddag that I'm
working on considerably for the case where we want to build just
a 00changelog.i (for discovery tests, for instance).
There are a couple of test changes because node ids in tests
have changed.
The changes to the patch names in test-mq-qdelete.t were required
because they could collide with nodeid abbreviations and newly
actually do (patch "c" collides with id "cafe..." for patch "b").
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Mon, 02 May 2011 12:36:23 +0200] rev 14161
bundlerepo: fix and improve getremotechanges
Fixes the regression where incoming could show local changes
introduced by rev 72c84f24b420.
Adrian Buehlmann <adrian@cadifra.com> [Mon, 02 May 2011 00:04:49 +0200] rev 14160
hgrc.5: mention new 'case collision' handling for ui.portablefilenames
Pascal Quantin <pascal.quantin@gmail.com> [Sun, 01 May 2011 20:29:44 +0200] rev 14159
win32: remove obsolete bookmarks and parentrevspec extensions from mercurial.ini
Matt Mackall <mpm@selenic.com> [Sun, 01 May 2011 13:08:29 -0500] rev 14158
bundlerepo: drop struct
Yuya Nishihara <yuya@tcha.org> [Mon, 02 May 2011 01:29:51 +0900] rev 14157
bisect: fix indent level
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Sun, 01 May 2011 18:43:20 +0200] rev 14156
share: create 'hgrc' using an opener, like clone
Mads Kiilerich <mads@kiilerich.com> [Sun, 01 May 2011 19:51:28 +0200] rev 14155
backout 3a3584967a93 - the "unreachable code" was apparently not unreachable
All tests repeatedly passes with 3a3584967a93 on some machines, but on other
machines it regularly causes failure in test-mv-cp-st-diff.t, such as:
@@ -203,6 +203,7 @@
- working to root: --rev 0
M a
+ M x/x
A b
a
Sune Foldager <cryo@cyanite.org> [Sun, 01 May 2011 19:44:28 +0200] rev 14154
merge with mpm
Mads Kiilerich <mads@kiilerich.com> [Sun, 01 May 2011 17:35:05 +0200] rev 14153
revset: avoid over-aggresive optimizations of non-filtering functions (issue2549)
When limit, last, min and max were evaluated they worked on a reduced set in the
wrong way. Now they work on an unrestricted set (the whole repo) and get
limited later on.
Mads Kiilerich <mads@kiilerich.com> [Sun, 01 May 2011 17:35:05 +0200] rev 14152
convert: handle invalid subversion source paths
Mads Kiilerich <mads@kiilerich.com> [Sun, 01 May 2011 17:34:16 +0200] rev 14151
convert: also catch missing revlogs when introduced in repo roots
The previous behaviour was almost as if convert.hg.ignoreerrors was always set
for revisions without parents, except that errors were silently ignored. Revlog
errors are handled as a side effect of getcopies(), but getcopies() was only
called when convert.hg.ignoreerrors was set.
Now we always call self.getcopies for root revisions, not only when
convert.hg.ignoreerrors is set, just like we do on all other revisions.
The extra call might be a bit expensive, but the proper fix for that would be
to catch these errors in another way.
Mads Kiilerich <mads@kiilerich.com> [Thu, 24 Feb 2011 14:06:08 +0100] rev 14150
status: remove unreachable code for status between revisions
The manifest value of a file will never be false when "not parentworking", and
the expensive content comparision would thus fortunately never be reached. (If
it was reached it would be wrong for example in case of renames.)
This code once handled status against working directory, but that has been done
elsewhere for a long time.
Mads Kiilerich <mads@kiilerich.com> [Mon, 07 Mar 2011 14:47:30 +0100] rev 14149
httprepo: proper handling of invalid responses without content-type (issue2019)
This can currently be tested on http://sf.net/
Mads Kiilerich <mads@kiilerich.com> [Mon, 07 Mar 2011 22:50:55 +0100] rev 14148
httprepo: use the original exception after falling back to static-http failed
Before the fine exception handling in httprepo was never shown.
The static-http exception will now only be shown when static-http is requested
explicitly.
Mads Kiilerich <mads@kiilerich.com> [Sun, 01 May 2011 15:49:13 +0200] rev 14147
test: test that backslash is preserved by the url class
Mads Kiilerich <mads@kiilerich.com> [Sun, 01 May 2011 15:49:13 +0200] rev 14146
tests: use raw string for url tests of '\' handling
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Sun, 01 May 2011 16:54:48 +0200] rev 14145
color: fix using multiple effects
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sat, 30 Apr 2011 19:01:24 +0200] rev 14144
unbundler: separate delta and header parsing
Add header parsing for changelog and manifest (currently no headers might
change for next-gen bundle).
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sat, 30 Apr 2011 11:03:28 +0200] rev 14143
changegroup: new bundler API
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sat, 30 Apr 2011 10:41:06 +0200] rev 14142
bundlerepo: port to new bundle API
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sat, 30 Apr 2011 10:00:41 +0200] rev 14141
bundler: make parsechunk return the base revision of the delta
timeless <timeless@mozdev.org> [Sun, 01 May 2011 15:22:30 +0200] rev 14140
tests: add pyflakes checking for unused imports
timeless <timeless@mozdev.org> [Sun, 01 May 2011 15:21:57 +0200] rev 14139
remove unused imports
Adrian Buehlmann <adrian@cadifra.com> [Sat, 30 Apr 2011 23:27:00 +0200] rev 14138
scmutil: introduce casecollisionauditor
and cleaning up portability functions
timeless <timeless@mozdev.org> [Sun, 01 May 2011 16:11:42 +0200] rev 14137
check-code: check for repo in revlog and ui in util
timeless <timeless@mozdev.org> [Sun, 01 May 2011 16:10:51 +0200] rev 14136
check-code: allow for checking multiple pattern sets per file
timeless <timeless@mozdev.org> [Sun, 01 May 2011 15:55:00 +0200] rev 14135
check-code: adding debug flag
Augie Fackler <durin42@gmail.com> [Sun, 01 May 2011 08:00:25 -0500] rev 14134
run-tests: add flag to provide extra hgrc options for test runs
Patrick Mezard <pmezard@gmail.com> [Sun, 01 May 2011 15:51:52 +0200] rev 14133
graphlog: always sort revisions topologically
The grapher cannot really handled revisions if they are not emitted in
topological order. The previous 'reverse()' revset was not enough to achieve
that and was replaced by an explicit sort call for simplicity. The --limit
option is now also handled as usual with cmdutil.loglimit() instead of a
'limit' revset.
Patrick Mezard <pmezard@gmail.com> [Sun, 01 May 2011 15:51:48 +0200] rev 14132
graphlog: take the union of --rev specs instead of the intersection
Patrick Mezard <pmezard@gmail.com> [Sun, 01 May 2011 15:51:46 +0200] rev 14131
graphmod: correctly emit nodes with more than 2 predecessors
The grandparent() function was returning only the closest predecessor of a
missing parent while it must return all of them to display a correct ancestry
graph.
Patrick Mezard <pmezard@gmail.com> [Sun, 01 May 2011 15:51:20 +0200] rev 14130
graphlog: display nodes with more than 2 predecessors
While nodes with more than 2 parents do not exist in revision graphs, they do
appear when you transform them by removing subgraphs while trying to preserve
ancestry links.
This code was borrowed from Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
pbranch extension.
Matt Mackall <mpm@selenic.com> [Sun, 01 May 2011 08:29:50 -0500] rev 14129
context: provide an efficient iterator for workingctx
This avoids needing to call status or build a synthetic manifest.
Matt Mackall <mpm@selenic.com> [Sun, 01 May 2011 06:06:59 -0500] rev 14128
merge with stable
Matt Mackall <mpm@selenic.com> [Sun, 01 May 2011 06:04:08 -0500] rev 14127
merge with nicdumz
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sun, 01 May 2011 10:51:10 +0200] rev 14126
tests: export patches only once in test-impexp-branch
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sat, 30 Apr 2011 18:31:28 +0200] rev 14125
tests: do not export several times the same patch/diff in test-import
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sat, 30 Apr 2011 17:38:06 +0200] rev 14124
tests: move rebase-keep-branch into rebase-named-branches
It's not worth building a repository just to test keep branch
when we can do it our bigger, other, already built repositories.
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sat, 30 Apr 2011 17:38:06 +0200] rev 14123
tests: move testcase from rebase-named-branches to rebase-parameters
It saves us a clone of a repository.
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sat, 30 Apr 2011 17:38:06 +0200] rev 14122
tests: change test-rebase-parameters to use bundle/rebase.hg
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sat, 30 Apr 2011 17:38:06 +0200] rev 14121
tests: change test-rebase-detach to use bundle/rebase.hg
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sat, 30 Apr 2011 17:38:06 +0200] rev 14120
tests: simplify test-rebase-named-branches
We were cloning a repo to perform a smoke test that could
have been performed earlier.
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sat, 30 Apr 2011 17:38:06 +0200] rev 14119
tests: upgrade bundles/rebase.hg to support test-rebase-collapse
Add two changesets to the scenario so that the bundle can be reused
within three tests.
Before:
@ 5: 'F'
|
| o 4: 'E'
|/|
o | 3: 'D
| |
| o 2: 'C'
|/
| o 1: 'B'
|/
o 0: 'A'
After:
@ 7: 'H'
|
| o 6: 'G'
|/|
o | 5: 'F'
| |
| o 4: 'E'
|/
| o 3: 'D'
| |
| o 2: 'C'
| |
| o 1: 'B'
|/
o 0: 'A'
Revisions 0-1 keep the same number/label. Others were translated by
an offset of 2 (2.C -> 4.E)
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sat, 30 Apr 2011 17:38:06 +0200] rev 14118
tests: introduce a rebase bundle to use with rebase tests
Allows saving a few seconds in test runs by not constructing
over and over the same repository.
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sat, 30 Apr 2011 17:38:06 +0200] rev 14117
tests: create a bundle to bootstrap tests using a remote repository
It should be faster to use a single common bundle instead of
recreating 4 times the same repository manually.
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sat, 30 Apr 2011 17:38:06 +0200] rev 14116
tests: move test bundles in a bundles/ subdirectory
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sat, 30 Apr 2011 17:38:06 +0200] rev 14115
tests: move test-issue436 in test-dispatch where fancyopts is tested
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sat, 30 Apr 2011 17:38:06 +0200] rev 14114
tests: remove test-issue433 as it's covered by test-parents
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sat, 30 Apr 2011 17:38:06 +0200] rev 14113
tests: remove executable bits from unified tests
Those files are not executable.
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sat, 30 Apr 2011 17:38:06 +0200] rev 14112
tests: remove test-issue322 as it's fully included in test-issue660
Matt Mackall <mpm@selenic.com> [Sun, 01 May 2011 05:58:04 -0500] rev 14111
Added signature for changeset 3cb1e95676ad
Matt Mackall <mpm@selenic.com> [Sun, 01 May 2011 05:57:59 -0500] rev 14110
Added tag 1.8.3 for changeset 3cb1e95676ad
Matt Mackall <mpm@selenic.com> [Sun, 01 May 2011 05:53:28 -0500] rev 14109
merge with i18n
Wagner Bruna <wbruna@softwareexpress.com.br> [Fri, 29 Apr 2011 18:19:08 -0300] rev 14108
i18n-pt_BR: synchronized with 42d5165975ad
Wagner Bruna <wbruna@softwareexpress.com.br> [Fri, 29 Apr 2011 18:12:55 -0300] rev 14107
merge with i18n
Wagner Bruna <wbruna@softwareexpress.com.br> [Fri, 29 Apr 2011 18:11:54 -0300] rev 14106
i18n-pt_BR: minor spacing fix
Wagner Bruna <wbruna@softwareexpress.com.br> [Mon, 25 Apr 2011 14:18:19 -0300] rev 14105
i18n-pt_BR: synchronized with 3c753f9a2fbc
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sat, 30 Apr 2011 19:36:59 +0200] rev 14104
zeroconf: notify the Zeroconf threads when hg exits
Zeroconf launches two threads in the background, and they wait on
Condition objects to exit. We need to call Zeroconf.close() to
release those conditions so that threads can gracefully exit.
This means that an interrupt on the hg process will now gracefully
propagate to the Zeroconf children, fixing that bug which did not
allow us to kill an `hg serve` process.
Brodie Rao <brodie@bitheap.org> [Sun, 01 May 2011 12:14:22 +0200] rev 14103
color: use ui.formatted() to test TTYness, not sys.stdout.isatty()
This fixes the color extension not working with pager (broken in
877390020477). The pager extension already sets ui.formatted=True to
allow this use case.
Brodie Rao <brodie@bitheap.org> [Sun, 01 May 2011 11:12:36 +0200] rev 14102
pushkey: add hooks for pushkey/listkeys
Augie Fackler <durin42@gmail.com> [Sat, 30 Apr 2011 12:02:09 -0500] rev 14101
test-patchbomb.t: clean up progress tests
Matt Mackall <mpm@selenic.com> [Sun, 01 May 2011 04:56:24 -0500] rev 14100
util: really drop size from readfile
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Sun, 01 May 2011 11:46:49 +0200] rev 14099
util: add readfile() & writefile() helper functions
These two functions allow quickly reading or writing a file, without
relying on reference counting to close the file handle afterwards.
Alexander Solovyov <alexander@solovyov.net> [Sat, 30 Apr 2011 18:30:14 +0200] rev 14098
revset aliases
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Sat, 30 Apr 2011 19:41:53 +0200] rev 14097
opener: add read & write utility methods
The two new methods are useful for quickly opening a file for reading
or writing. Unlike 'opener(...).read()', they ensure they the file is
immediately closed without relying on CPython reference counting.
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Sun, 01 May 2011 11:01:57 +0200] rev 14096
dispatch: handle IndexErrors
Augie Fackler <durin42@gmail.com> [Sat, 30 Apr 2011 11:18:43 -0500] rev 14095
color: verify stdout is a tty before using curses
Without this change, curses complains when invoked in certain contexts
because stdout isn't a tty (such as emacs integration) but we ask it
to check for various bits of information from terminfo.
Matt Mackall <mpm@selenic.com> [Sun, 01 May 2011 03:51:04 -0500] rev 14094
http: minor tweaks to long arg handling
x-arg -> x-hgarg
replace itertools.count(1)
Steven Brown <StevenGBrown@gmail.com> [Sun, 01 May 2011 01:04:37 +0800] rev 14093
httprepo: long arguments support (issue2126)
Send the command arguments in the HTTP headers. The command is still part
of the URL. If the server does not have the 'httpheader' capability, the
client will send the command arguments in the URL as it did previously.
Web servers typically allow more data to be placed within the headers than
in the URL, so this approach will:
- Avoid HTTP errors due to using a URL that is too large.
- Allow Mercurial to implement a more efficient wire protocol.
An alternate approach is to send the arguments as part of the request body.
This approach has been rejected because it requires the use of POST
requests, so it would break any existing configuration that relies on the
request type for authentication or caching.
Extensibility:
- The header size is provided by the server, which makes it possible to
introduce an hgrc setting for it.
- The client ignores the capability value after the first comma, which
allows more information to be included in the future.
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Sat, 30 Apr 2011 19:36:48 +0200] rev 14092
store: rename the 'opener' argument to 'openertype'
The 'opener' argument wasn't, in fact, an actual opener instance, but
rather something expected to return an opener. The normal argument,
from localrepository, is the scmutil.opener type; hence 'openertype'.
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Sat, 30 Apr 2011 19:41:25 +0200] rev 14091
statichttprepo: make the opener a subclass of abstractopener
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Sat, 30 Apr 2011 19:37:13 +0200] rev 14090
add filteropener abstraction for store openers
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Sat, 30 Apr 2011 19:36:48 +0200] rev 14089
opener: introduce an abstact superclass of it
Currently, this class doesn't do anything useful.
Patrick Mezard <pmezard@gmail.com> [Sat, 30 Apr 2011 19:42:00 +0200] rev 14088
graphlog: use a set for inclusion test
This makes a big difference in performance in the special case where all
revisions are being graphed.
Idan Kamara <idankk86@gmail.com> [Sat, 30 Apr 2011 15:10:58 +0300] rev 14087
graphmod: restore generator nature of dagwalker
9966c95b8c4f introduced the ability to walk the DAG
given arbitrary revisions, but changed the behaviour of
it to return a list of all nodes (and create a changectx
for each one) rather than doing it lazily.
This has a pretty significant impact on performance for large
repositories (tested on CPython repo, with output disabled):
$ time hg glog
real 0m2.642s
user 0m2.560s
sys 0m0.080s
Before 9966c95b8c4f:
$ time hg glog
real 0m0.143s
user 0m0.112s
sys 0m0.032s
And after this fix:
$ time hg glog
real 0m0.213s
user 0m0.184s
sys 0m0.028s
Patrick Mezard <pmezard@gmail.com> [Sat, 30 Apr 2011 19:42:00 +0200] rev 14086
graphlog: log -G --follow file does not work, forbid it
We do not have revsets to follow file history.
Patrick Mezard <pmezard@gmail.com> [Sat, 30 Apr 2011 19:42:00 +0200] rev 14085
graphlog: unify log -G revset translation
Patrick Mezard <pmezard@gmail.com> [Sat, 30 Apr 2011 19:42:00 +0200] rev 14084
graphlog: fix log -G --prune
follow() revset really means '::.' while we want something based on the passed
argument. Also, ancestors() revset does not include the parent revisions.
Patrick Mezard <pmezard@gmail.com> [Sat, 30 Apr 2011 19:42:00 +0200] rev 14083
graphlog: escape log -G single value option arguments
Patrick Mezard <pmezard@gmail.com> [Sat, 30 Apr 2011 19:42:00 +0200] rev 14082
graphlog: fix log -G --removed
Current version was mispelled and processed like a valued argument.
Patrick Mezard <pmezard@gmail.com> [Sat, 30 Apr 2011 19:42:00 +0200] rev 14081
graphlog: fix log -G option types when translating to revset
For instance, --keyword is a multiple value option while it was processed as a
single value option.
Kevin Gessner <kevin@kevingessner.com> [Sat, 30 Apr 2011 18:53:56 +0200] rev 14080
revset: add tests for multiple and mixed ^ and ~ operators
Kevin Gessner <kevin@kevingessner.com> [Sat, 30 Apr 2011 18:27:39 +0200] rev 14079
extensions: obsolete and remove parentrevspec extension
As of 305c97670d7a, revsets implements the ^ and ~ operators that this
extension provides, so it's no longer necessary.
Steve Borho <steve@borho.org> [Sat, 30 Apr 2011 11:53:57 -0500] rev 14078
wix: a new mercurial.js has replaced graph.js
Brodie Rao <brodie@bitheap.org> [Sat, 30 Apr 2011 09:43:23 -0700] rev 14077
util.url: copy urllib.unquote() into util to improve startup times
The ui class uses util.hasscheme() in a couple of places, causing hg
to import urllib even when it doesn't need to. This copies
urllib.unquote() to avoid that import.
perfstartup time before the URL refactoring (8796fb6af67e):
! wall 0.050692 comb 0.000000 user 0.000000 sys 0.000000 (best of 100)
before this change:
! wall 0.064742 comb 0.000000 user 0.000000 sys 0.000000 (best of 100)
after this change:
! wall 0.052126 comb 0.000000 user 0.000000 sys 0.000000 (best of 100
Brodie Rao <brodie@bitheap.org> [Sat, 30 Apr 2011 09:43:20 -0700] rev 14076
url: move URL parsing functions into util to improve startup time
The introduction of the new URL parsing code has created a startup
time regression. This is mainly due to the use of url.hasscheme() in
the ui class. It ends up importing many libraries that the url module
requires.
This fix helps marginally, but if we can get rid of the urllib import
in the URL parser all together, startup time will go back to normal.
perfstartup time before the URL refactoring (8796fb6af67e):
! wall 0.050692 comb 0.000000 user 0.000000 sys 0.000000 (best of 100)
current startup time (139fb11210bb):
! wall 0.070685 comb 0.000000 user 0.000000 sys 0.000000 (best of 100)
after this change:
! wall 0.064667 comb 0.000000 user 0.000000 sys 0.000000 (best of 100)
Sune Foldager <cryo@cyanite.org> [Sat, 30 Apr 2011 16:33:47 +0200] rev 14075
revlog: introduce _chunkbase to allow filelog to override
Used by revlog.revision to retrieve the base-chunk in a delta chain.
Sune Foldager <cryo@cyanite.org> [Sat, 30 Apr 2011 16:32:50 +0200] rev 14074
filelog: extract metadata parsing and packing
_parsemeta returns the dictionary and a list of keys in the order they appear
in metadata. This can be used to repack the dictionary in the same order.
_packmeta creates metadata from a dictionary and an optional key-order list.
In _parsemeta, we use slices and re.search indead of str.index so we can accept
both buffers and strings.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Sat, 30 Apr 2011 17:21:37 +0200] rev 14073
discovery: drop findoutgoing and simplify findcommonincoming's api
This is a long desired cleanup and paves the way for new discovery.
To specify subsets for bundling changes, all code should use the heads
of the desired subset ("heads") and the heads of the common subset
("common") to be excluded from the bundled set. These can be used
revlog.findmissing instead of revlog.nodesbetween.
This fixes an actual bug exposed by the change in test-bundle-r.t
where we try to bundle a changeset while specifying that said changeset
is to be assumed already present in the target. This used to still
bundle the changeset. It no longer does. This is similar to the bugs
fixed by the recent switch to heads/common for incoming/pull.
Kevin Gessner <kevin@kevingessner.com> [Sat, 30 Apr 2011 18:25:45 +0200] rev 14072
revset: add missing whitespace
Brodie Rao <brodie@bitheap.org> [Sat, 30 Apr 2011 07:00:13 -0700] rev 14071
url: remove unused/obsolete functions
Kevin Gessner <kevin@kevingessner.com> [Sat, 30 Apr 2011 17:43:04 +0200] rev 14070
revset: add ^ and ~ operators from parentrevspec extension
^ (Nth parent) and ~ (Nth first ancestor) are infix operators that match
certain ancestors of the set:
set^0
the set
set^1 (also available as set^)
the first parent of every changeset in set
set^2
the second parent of every changeset in set
set~0
the set
set~1
the first ancestor (i.e. the first parent) of every changeset in set
set~2
the second ancestor (i.e. first parent of first parent) of every changeset
in set
set~N
the Nth ancestor (following first parents only) of every changeset in set;
set~N is equivalent to set^1^1..., with ^1 repeated N times.
Matt Mackall <mpm@selenic.com> [Sat, 30 Apr 2011 10:57:13 -0500] rev 14069
encoding: add an encoding-aware lower function
Kevin Gessner <kevin@kevingessner.com> [Sat, 30 Apr 2011 12:39:46 +0200] rev 14068
add: notify when adding a file that would cause a case-folding collision
On a case-sensitive file system, files can be added with names that differ
only in case (a "case collision"). This would cause an error on case-insensitive
filesystems. A warning or error is now given for such collisions, depending on
the value of ui.portablefilenames ('warn', 'abort', or 'ignore'):
$ touch file File
$ hg add --config ui.portablefilenames=abort File
abort: possible case-folding collision for File
$ hg add File
warning: possible case-folding collision for File
Kevin Gessner <kevin@kevingessner.com> [Sat, 30 Apr 2011 11:08:24 +0200] rev 14067
scmutil: refactor ui.portablefilenames processing
The ui.portablefilenames config handling is generally useful for notifying the
user of various portability problems.
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Sat, 30 Apr 2011 15:05:36 +0200] rev 14066
pure bdiff: don't use a generator
Generators are slow, and currently defeat the PyPy JIT.
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Sat, 30 Apr 2011 15:05:34 +0200] rev 14065
pure mpatch: avoid using list.insert(0, ...)
In Python lists are implemented as arrays with overallocation. As a
result, list.insert(0, ...) is O(n), whereas list.append() has an
amortised running time of O(1). Reversing the internal representation
of the list should cause a slight speedup for pure Python builds.
Alexander Solovyov <alexander@solovyov.net> [Sat, 30 Apr 2011 13:59:14 +0200] rev 14064
remove unused imports and variables
Augie Fackler <durin42@gmail.com> [Sat, 30 Apr 2011 07:30:38 -0500] rev 14063
Zeroconf: catch both ValueError and KeyError in get()
This prevents a traceback during discovery of available hosts.
Idan Kamara <idankk86@gmail.com> [Sat, 30 Apr 2011 15:20:27 +0300] rev 14062
run-tests: print a new line before writing the diff
Matt Mackall <mpm@selenic.com> [Sat, 30 Apr 2011 10:56:43 -0500] rev 14061
revsets: add a last function
last(set, n) = reverser(limit(reverse(set), n))
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sat, 30 Apr 2011 14:22:03 +0200] rev 14060
bundle: more comments about the different header types, remove useless if
Martin Geisler <mg@lazybytes.net> [Sat, 30 Apr 2011 15:30:51 +0200] rev 14059
merge with mpm
Martin Geisler <mg@lazybytes.net> [Sat, 30 Apr 2011 13:47:22 +0200] rev 14058
hgweb: initialize permhooks at definition time
This is simpler than creating it empty and then appending the default
checkauthz hook 50 lines below.
Brodie Rao <brodie@bitheap.org> [Sat, 30 Apr 2011 06:58:22 -0700] rev 14057
revset: fix undefined name ParseError
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Sat, 30 Apr 2011 12:56:28 +0200] rev 14056
branchcache: improve speed relative to the amount of heads
Updating the branch cache is quadratic to the amount of heads in the
repository. One consequence of this was that cloning a pathological
repository with 10,000 heads (and nothing else) took hours of CPU
time.
This patch makes one of the inner loop much faster, by removing a
changectx instantiation, and removes another entirely in cases where
there are no candidate branch heads which descend from other branch
heads.
Alexander Solovyov <alexander@solovyov.net> [Sat, 30 Apr 2011 12:55:07 +0200] rev 14055
drop {short,hex}(ctx.node()) calls in favor of ctx methods
Idan Kamara <idankk86@gmail.com> [Fri, 29 Apr 2011 22:21:13 +0300] rev 14054
mq: be more explicit on invalid patch name message
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sat, 30 Apr 2011 11:16:52 +0200] rev 14053
fix broken tests
test-debugcomplete.t broken by 58e58406ed19
test-highlight.t broken by b24e5a708fad
Matt Mackall <mpm@selenic.com> [Sat, 30 Apr 2011 03:44:31 -0500] rev 14052
merge with stable
Idan Kamara <idankk86@gmail.com> [Fri, 29 Apr 2011 22:21:13 +0300] rev 14051
mq: add '.' and '..' to list of forbidden patch names
When an empty string is being passed to normname
it would return '.' causing checkfile() to always
return that a patch with that name exists.
Patrick Mezard <pmezard@gmail.com> [Fri, 04 Mar 2011 14:00:49 +0100] rev 14050
subrepo: handle svn tracked/unknown directory collisions
This happens more often than expected. Say you have an svn subrepository with
python code. Python would have generated unknown .pyc files. Now, you rebase
this setup on a revision where a directory containing python code does not
exist. Subversion is first asked to remove this directory when updating, but
will not because it contains untracked items. Then it will have to bring back
the directory after the merge but will fail because it now collides with an
untracked directory.
Using --force is not very elegant and only works with svn >= 1.5 but the only
alternative I can think of is to write our own purge command for subversion.
Matt Mackall <mpm@selenic.com> [Sat, 30 Apr 2011 03:00:38 -0500] rev 14049
subrepo: backout bcc6ed0f6c3b
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Fri, 29 Apr 2011 14:54:01 +0200] rev 14048
wireproto: add test for new optional arg missing on server
New argument is silently ignored by both HTTP and SSH servers.
This means we can, for instance, add new flags to getbundle()
to request advanced features (like lightweight-copy-aware bundles),
and older servers will silently ignore this request and send back
a plain bundle.
Matt Mackall <mpm@selenic.com> [Sat, 30 Apr 2011 02:42:05 -0500] rev 14047
merge with stable
Benoit Allard <benoit@aeteurope.nl> [Thu, 28 Apr 2011 17:02:39 +0200] rev 14046
web: Made elapsed time calculation dynamic (javascript).
This allow safe caching of the pages by the browser and still display the right
amount of elapsed time upon page refresh.
If javascript is disabled, absolute time is displayed, leaving it readable.
All the templates have been updated.
Steven Stallion <sstallion@gmail.com> [Wed, 27 Apr 2011 21:55:46 -0400] rev 14045
extdiff: add repository root as a variable
Some external diff tools (notably Plan 9 diff(1)) require the absolute path
to the file being diffed for proper function. A root variable was added to
inform an external tool of the repository root (the tool is invoked with the
cwd set to tmproot).
Yun Lee <yun.lee.bj@gmail.com> [Sun, 17 Apr 2011 23:08:35 +0800] rev 14044
help: move hgignore man page into built-in help (issue2769)
Alexander Solovyov <alexander@solovyov.net> [Sat, 23 Apr 2011 15:04:15 +0200] rev 14043
graphlog: make use of graphmod's revset support
Alexander Solovyov <alexander@solovyov.net> [Sun, 13 Mar 2011 15:53:38 +0100] rev 14042
graphmod: use revsets internally
Thanks for the idea and most of the implementation to Klaus Koch
Backs revisions() and filerevs() with DAG walker which can iterate through
arbitrary list of revisions instead of strict one by one iteration from start to
stop. When a gap occurs in a revisions (i.e. in file log), the next topological
parent within the revset is searched and the connection to it is printed in the
ascii graph.
File graph can draw sometimes more connections than previous version, because
graph is produced according to the revset, not according to a file's filelog.
In case the graph contains several branches where the left parent is null, the
graphs for each are printed sequentially, not in parallel as it was a case
earlier (see for example the graph for README in hg-dev).
Augie Fackler <durin42@gmail.com> [Fri, 29 Apr 2011 03:34:18 -0500] rev 14041
svn subrepo: attempt work around obstructed checkouts (issue2752)
It should be possible to do better than this with 'svn switch', but
the logic required woud be significantly more complex. Until someone
needs the performance improvements of using switch, we'll just use the
same strategy for everything.
Alexander Solovyov <alexander@solovyov.net> [Fri, 29 Apr 2011 16:34:52 +0200] rev 14040
churn: strip key earlier to avoid false negative seach in aliases
Idan Kamara <idankk86@gmail.com> [Fri, 29 Apr 2011 18:43:36 +0300] rev 14039
bookmarks: further restrict IOError on write
This won't risk losing the undo file when the error
was something other than file not found
Idan Kamara <idankk86@gmail.com> [Fri, 29 Apr 2011 18:44:56 +0300] rev 14038
tags: loosen IOError filtering when reading localtags
Idan Kamara <idankk86@gmail.com> [Fri, 29 Apr 2011 20:29:22 +0300] rev 14037
run-tests: don't count test as succeeded if it failed
regressed around ec4ae5727f07
Adrian Buehlmann <adrian@cadifra.com> [Sun, 24 Apr 2011 20:11:05 +0200] rev 14036
changegroup: do not count closed new heads (issue2697)
If a closed head gets pulled, we currently see (example):
$ hg pull
pulling from $TESTTMP/repo2
searching for changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 1 changes to 1 files (+1 heads)
(run 'hg heads' to see heads, 'hg merge' to merge)
A subsequent 'hg heads' doesn't show that head because it is closed.
This patch improves the UI response texts for that same use case to:
$ hg pull
pulling from $TESTTMP/repo2
searching for changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 1 changes to 1 files
(run 'hg update' to get a working copy)
That is, the part "(+1 heads)" is not shown in that case any longer.
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Fri, 29 Apr 2011 20:02:46 +0200] rev 14035
merge with crew
Augie Fackler <durin42@gmail.com> [Fri, 29 Apr 2011 09:28:45 -0500] rev 14034
shrink-revlog: defend against null first parents
Augie Fackler <durin42@gmail.com> [Fri, 29 Apr 2011 12:46:56 -0500] rev 14033
test-contrib: add a test for shrink-revlog
We only verify the extension runs and that verify passes at the end as
constructing a test repository that would result in a shrink would be
nontrivial.
Augie Fackler <durin42@gmail.com> [Fri, 29 Apr 2011 08:46:21 -0500] rev 14032
test-simplemerge-cmd.t: move all tests into test-contrib.t
Augie Fackler <durin42@gmail.com> [Fri, 29 Apr 2011 08:43:05 -0500] rev 14031
Move test-dumprevlog to test-contrib in anticipation of more contrib tests
Augie Fackler <durin42@gmail.com> [Fri, 29 Apr 2011 08:04:54 -0500] rev 14030
shrink-revlog: use a bundler object (see d69c9510d648)