Idan Kamara <idankk86@gmail.com> [Fri, 27 May 2011 17:49:54 +0300] rev 14448
mq: allow --mq for qrecord
Idan Kamara <idankk86@gmail.com> [Fri, 27 May 2011 17:46:48 +0300] rev 14447
run-tests: fix --blacklist with jobs > 1
filter blacklisted tests before partitioning them
to the children.
maintains the 'Skipped...' output but not the 's'.
Idan Kamara <idankk86@gmail.com> [Fri, 27 May 2011 17:46:47 +0300] rev 14446
run-tests: slightly simplify blacklist check
Matt Mackall <mpm@selenic.com> [Fri, 27 May 2011 08:50:27 -0500] rev 14445
coal: use preformatted text for descriptions (issue2835)
The coal style was broken here by an earlier change to paper, which
shares files.
Adrian Buehlmann <adrian@cadifra.com> [Fri, 27 May 2011 10:03:29 +0200] rev 14444
rebase: add option --tool/-t for 'pull --rebase'
This makes 'pull --rebase' consistent with the merge command, which already
provides that option to control the merges
Martin Geisler <mg@aragost.com> [Fri, 27 May 2011 11:01:44 +0200] rev 14443
subrepo: refactor writestate for clarity
Matt Mackall <mpm@selenic.com> [Thu, 26 May 2011 17:15:35 -0500] rev 14442
cmdutil: make private copies of option lists to avoid sharing monkeypatches
Idan Kamara <idankk86@gmail.com> [Thu, 26 May 2011 19:00:47 +0300] rev 14441
record: fix options placeholder
Paul Molodowitch <pm@stanfordalumni.org> [Wed, 25 May 2011 08:38:58 -0700] rev 14440
subrepo: bare git repos considered dirty
Currently, if there is a bare git subrepo, but it is at the "right"
revision, calling dirty() will error because diff-index does not work
on bare repos. This patch makes it so bare subrepos are always
considered dirty.
Idan Kamara <idankk86@gmail.com> [Thu, 26 May 2011 00:53:23 +0300] rev 14439
dispatch: use the request to store the ui object
and check if we got one before creating.
note that the contents of the ui object might change after
dispatch() returns (by options passed through --config for example),
to ensure it doesn't, pass a copy() of it.
Idan Kamara <idankk86@gmail.com> [Thu, 26 May 2011 00:44:11 +0300] rev 14438
dispatch: wrap dispatch related information in a request class
currently only stores the arguments.
Steven Brown <StevenGBrown@gmail.com> [Thu, 26 May 2011 22:51:02 +0800] rev 14437
patch: restore the previous output of 'diff --stat'
Restore the previous diffstat behaviour of scaling by the maximum number of
changes to a single file. Changeset f03f08240c32 modified the diffstat to be
scaled by the total number of changes. This seems to have been unintentional.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Tue, 24 May 2011 17:48:16 +0200] rev 14436
wireproto: enable optional args for known() for future extensibility
Firstly, I think we should do this for all new wire commands, just
to be on the safe side. So I want to get this into the 1.9 release.
Secondly, there actually is potential here that sometimes the server
can know that the number of its nodes which can possibly still be
undecided on the client is small. It might then just send them along
directly (cutting short the end game). This, however, requires
walking the graph on the server, which can be expensive, so for the
moment we're not actually doing it.
Matt Mackall <mpm@selenic.com> [Thu, 26 May 2011 17:15:35 -0500] rev 14435
context: make forget work like commands.forget
Switch users of wctx.delete(..., False) to forget.
Matt Mackall <mpm@selenic.com> [Thu, 26 May 2011 17:15:35 -0500] rev 14434
dirstate: rename forget to drop
It has substantially different semantics from forget at the command
layer, so change it to avoid confusion.
We can't simply combine it with remove because we need to explicitly
drop non-added files in some cases like commit.
Martin Geisler <mg@aragost.com> [Thu, 26 May 2011 10:46:34 +0200] rev 14433
minirst: read test input from stdin
Sune Foldager <cryo@cyanite.org> [Thu, 26 May 2011 11:11:34 +0200] rev 14432
tests: update monotone version requirement
Patrick Mezard <pmezard@gmail.com> [Wed, 25 May 2011 10:06:17 +0200] rev 14431
test-git-import: test patching existing copy targets
Matt Mackall <mpm@selenic.com> [Tue, 24 May 2011 17:30:00 -0500] rev 14430
httprepo: handle large lengths by bypassing the len() operator
Adrian Buehlmann <adrian@cadifra.com> [Tue, 24 May 2011 14:52:23 +0200] rev 14429
workingctx.remove: don't stat files again after unlinking
we already know at this point that they have been unlinked
Matt Mackall <mpm@selenic.com> [Tue, 24 May 2011 17:16:31 -0500] rev 14428
httprepo: send URL redirection notices to stderr (issue2828)
Idan Kamara <idankk86@gmail.com> [Tue, 24 May 2011 19:17:22 +0300] rev 14427
record: alias qrecord to qnew -i/--interactive
Idan Kamara <idankk86@gmail.com> [Tue, 24 May 2011 19:17:19 +0300] rev 14426
record: add qrefresh -i/--interactive
interactively select changes to refresh
Idan Kamara <idankk86@gmail.com> [Tue, 24 May 2011 19:17:04 +0300] rev 14425
record: add an option to backup all wc modifications
Also, don't create a backup dir if we have no files to backup.
This is essential for qrefresh --interactive. Since we can't
select individual files to qrefresh without eliminating already
present changes, we have to backup all changes in the working
copy to avoid refreshing unaccepted hunks.
(thanks to Patrick for the idea)
Idan Kamara <idankk86@gmail.com> [Tue, 24 May 2011 19:17:02 +0300] rev 14424
record: check patch name is valid before prompting in qrecord
Idan Kamara <idankk86@gmail.com> [Tue, 24 May 2011 19:16:51 +0300] rev 14423
mq: use checkpatchname
This also fixes a bug where qrename would allow
renaming a patch to a reserved name.
Idan Kamara <idankk86@gmail.com> [Tue, 24 May 2011 19:16:51 +0300] rev 14422
mq: wrap patch file name checks in a function
Augie Fackler <durin42@gmail.com> [Tue, 24 May 2011 13:30:10 -0500] rev 14421
pure parsers: properly detect corrupt index files
This new Python code should be equivalent in behavior to the if
statement at line 312 of parsers.c. Without this, the pure-python
parsers improperly ignore truncated revlogs as created in
test-verify.t.
Adrian Buehlmann <adrian@cadifra.com> [Tue, 24 May 2011 14:08:20 +0200] rev 14420
workingctx: unlink paths while holding the wlock
Martin Geisler <mg@aragost.com> [Tue, 24 May 2011 16:12:01 +0200] rev 14419
wireproto: do not hash when heads == ['force']
Changeset 88f0e41d8802 introduced the unbundlehash capability and
unconditionally hashed the heads on the client side. By mistake, the
heads were also cased in the heads == ['force'] case.
Patrick Mezard <pmezard@gmail.com> [Tue, 24 May 2011 14:21:04 +0200] rev 14418
patch: remove EOL support from linereader class
This was only used when reading patched files which is now done by backends.
Matt Mackall <mpm@selenic.com> [Mon, 23 May 2011 22:49:10 -0500] rev 14417
subrepo: handle local added subrepo case correctly
Idan Kamara <idankk86@gmail.com> [Mon, 23 May 2011 23:22:47 +0300] rev 14416
graphlog: remove unused arg from _wrapcmd
Idan Kamara <idankk86@gmail.com> [Mon, 23 May 2011 23:09:00 +0300] rev 14415
extensions: raise when trying to find an extension that failed to load
extensions that depend on other extensions (such as record) use this pattern
to check if the dependant extension is available:
try:
mq = extensions.find('mq')
except KeyError:
return
but since if an error occurs while loading an extension it leaves its entry
in the _extensions map as None, we want to raise in that situation too.
(rather than adding another check if the return value is None)
Adrian Buehlmann <adrian@cadifra.com> [Mon, 23 May 2011 15:56:31 +0200] rev 14414
remove: clarify help text about added files never being deleted from disk
Adrian Buehlmann <adrian@cadifra.com> [Wed, 18 May 2011 09:12:27 +0200] rev 14413
pure: provide more correct implementation of posixfile for Windows
requires ctypes
Why is posixfile a class?
Because the implementation needs to use the Python library call os.fdopen [1],
which sets the 'name' attribute on the Python file object it creates to the
mostly meaningless string '<fdopen>', since file descriptors don't have a name.
But users of posixfile depend on the name attribute [2] being set to a proper
value, like Python's built-in 'open' function sets it on file objects.
Python file's name attribute is read-only, so we can't just assign to it after
the file object has alrady been created.
To solve this problem, we save the name of the file on a wrapper object,
and delegate the file function calls to the wrapped (private) file object
using __getattr__.
[1] http://docs.python.org/library/os.html#os.fdopen
[2] http://docs.python.org/library/stdtypes.html#file.name
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Mon, 23 May 2011 20:35:10 +0200] rev 14412
bundlerepo: make getremotechanges support filtering of incoming
Extensions can hook discovery.findcommonincoming to filter out unwanted remote
changesets. This patch makes getremotechanges respect the changed remote heads
returned by such extensions.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Mon, 23 May 2011 20:32:29 +0200] rev 14411
tests: add tests for discovery/pull without cgsubset
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Mon, 23 May 2011 20:31:39 +0200] rev 14410
tests: add tests for partial pulls with treediscovery
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Mon, 23 May 2011 20:31:04 +0200] rev 14409
tests: support multiple caps in notcapable
Idan Kamara <idankk86@gmail.com> [Sun, 22 May 2011 16:10:03 +0300] rev 14408
record: use cmdutil.command decorator
Idan Kamara <idankk86@gmail.com> [Sun, 22 May 2011 16:10:02 +0300] rev 14407
record: suggest the right command when running non interactively
Adrian Buehlmann <adrian@cadifra.com> [Sun, 22 May 2011 11:03:15 +0200] rev 14406
applyupdates: audit merged files
protects changing flags on merged files (util.setflags call on line 341)
Adrian Buehlmann <adrian@cadifra.com> [Sat, 21 May 2011 23:21:12 +0200] rev 14405
applyupdates: audit path on flag changes
we're using the auditor of the repo wopener, since this is a path that belongs
to the tree we're updating to
Adrian Buehlmann <adrian@cadifra.com> [Sat, 21 May 2011 23:13:59 +0200] rev 14404
opener: add audit function
Matt Mackall <mpm@selenic.com> [Sat, 21 May 2011 15:09:15 -0500] rev 14403
templatekw: use diffstatsum in diffstat keyword
Matt Mackall <mpm@selenic.com> [Sat, 21 May 2011 15:06:38 -0500] rev 14402
patch: use diffstatsum in diffstat
Matt Mackall <mpm@selenic.com> [Sat, 21 May 2011 15:06:36 -0500] rev 14401
patch: add diffstatsum helper
Matt Mackall <mpm@selenic.com> [Sat, 21 May 2011 15:01:28 -0500] rev 14400
diffstatdata: no longer a generator
This produces a smallish amount of data and all consumers needed to
buffer it anyway.
Adrian Buehlmann <adrian@cadifra.com> [Wed, 18 May 2011 21:31:40 +0200] rev 14399
add new option --all to manifest command
prints a list of all files in all revisions of the repo
obsoletes the cifiles extension
Adrian Buehlmann <adrian@cadifra.com> [Sat, 21 May 2011 02:05:00 +0200] rev 14398
applyupdates: audit unlinking of renamed files and directories
Idan Kamara <idankk86@gmail.com> [Fri, 20 May 2011 21:04:45 +0300] rev 14397
patchbomb: pass --git argument to diffstat
Idan Kamara <idankk86@gmail.com> [Fri, 20 May 2011 21:20:24 +0300] rev 14396
mq: strip all leading slashes from url when importing
When trying to import a url that ends with a slash
os.path.basename() would return an empty string. So
when seeing a leading slash, remove it and infer the
patch name from the remaining url.
e.g. `hg qimport http://paste.pocoo.org/raw/xxx/`
deduced '.' to be the patch name. Now we'll deduce 'xxx'.
Idan Kamara <idankk86@gmail.com> [Fri, 20 May 2011 21:19:33 +0300] rev 14395
mq: check patch name is valid before reading imported file
Matt Mackall <mpm@selenic.com> [Sat, 21 May 2011 15:01:28 -0500] rev 14394
tests: update monotone output for v1.0 changes
Matt Mackall <mpm@selenic.com> [Sat, 21 May 2011 15:01:28 -0500] rev 14393
revlog: stop exporting node.short
Patrick Mezard <pmezard@gmail.com> [Thu, 19 May 2011 22:55:13 +0200] rev 14392
patch: fast-path git case in selectfile()
We avoid a lot of complicated heuristics in git cases, where these heurestics
may even be broken when copies are involved.
Patrick Mezard <pmezard@gmail.com> [Thu, 19 May 2011 22:49:43 +0200] rev 14391
patch: unify backend file access interface
- Rename readlines() into getfile(), return data and mode
- Make setfile() write a data buffer instead of lines, make mode mandatory.
Patrick Mezard <pmezard@gmail.com> [Thu, 19 May 2011 22:44:01 +0200] rev 14390
patch: merge backend setmode() into writelines()
Copy handling will be easier to handle in a single method.
Patrick Mezard <pmezard@gmail.com> [Thu, 19 May 2011 22:44:01 +0200] rev 14389
patch: stop modifying gitpatch objects
gitpatch objects emitted by iterhunks() were referencing file paths unmodified
from the input patch. _applydif() made them usable by modifying the gitpatch
objects in-place with specified path strip level. The same modified objects
were then reused by iterhunks() generator. _applydiff() now copies and update
the paths which completely decouples both routines.
As a side effect, the "git" event now receives only metadata about
copies/renames to perform the necessary copies ahead of time. Other actions are
handled in the "file" event.
Patrick Mezard <pmezard@gmail.com> [Thu, 19 May 2011 22:44:01 +0200] rev 14388
patch: stop handling hunkless git blocks out of stream
Patch changes are emitted by iterhunks() in two separate events: 'file' when
hunks have to be applied and 'git' to describe other modifications like copies
or mode changes. Note that a file which mode is changed and which content is
modified by the same patch will be emitted in both events. It is more
convenient to handle all file modifications in a single event. This patch
"zips" git actions with regular changes so both kinds can be emitted at the
same place.
Patrick Mezard <pmezard@gmail.com> [Thu, 19 May 2011 22:44:01 +0200] rev 14387
patch: reindent code
Patrick Mezard <pmezard@gmail.com> [Thu, 19 May 2011 22:44:01 +0200] rev 14386
patch: unify iterhunks() afile/bfile handling
git afile/bfile are extracted twice, once when reading a 'diff --git', and
again when reading a unified hunk. The problem is not all git blocks have
unified hunks (renames just have metadata) and they were not extracted the same
way. This is what this patch unifies.
Patrick Mezard <pmezard@gmail.com> [Thu, 19 May 2011 22:44:01 +0200] rev 14385
patch: git metadata was ignored if strip > 1
gitpatch objects emitted by iterhunks() are modified in place by applydiff().
Processing them earlier improves iterhunks() isolation. applydiff() modifying
them should still be fixed though.
Patrick Mezard <pmezard@gmail.com> [Thu, 19 May 2011 22:44:01 +0200] rev 14384
patch: construct and parse binary hunks at the same time
Patrick Mezard <pmezard@gmail.com> [Thu, 19 May 2011 22:44:01 +0200] rev 14383
patch: refactor iterhunks() regular and binary files emission
Patrick Mezard <pmezard@gmail.com> [Thu, 19 May 2011 22:44:01 +0200] rev 14382
patch: remove patch.patch() cwd argument
Patrick Mezard <pmezard@gmail.com> [Thu, 19 May 2011 22:44:01 +0200] rev 14381
patch: merge _updatedir() into externalpatch()
Martin Geisler <mg@aragost.com> [Thu, 19 May 2011 18:10:03 +0200] rev 14380
merge with stable
Martin Geisler <mg@aragost.com> [Thu, 19 May 2011 18:09:25 +0200] rev 14379
changelog: convert user and desc from local encoding early
Failing to do so makes it impossible to use the memctx API to create a
changeset with a commit message or username outside of the current
encoding.encoding setting.
Martin Geisler <mg@aragost.com> [Thu, 19 May 2011 16:57:14 +0200] rev 14378
merge crew with main
Brendan Cully <brendan@kublai.com> [Wed, 18 May 2011 23:20:26 -0700] rev 14377
clone: make default path absolute for all local paths
This fixes the default path when cloning local repositories with hg-git, since
hg-git cancopy() is false even for local repositories.
Augie Fackler <durin42@gmail.com> [Tue, 17 May 2011 10:28:03 -0500] rev 14376
httpclient: import revision fc731618702a of py-nonblocking-http
Augie Fackler <durin42@gmail.com> [Mon, 16 May 2011 16:59:45 -0500] rev 14375
httpconnection: improved logging formatting
I had to use this debugging output for the first time recently when
looking for a problem, and the lack of good formatting made things
difficult.
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Tue, 17 May 2011 00:46:52 +0200] rev 14374
bash_completion: enable alias auto-complete
When auto-completing, set HGPLAINEXCEPT=alias to list aliases
in the suggestions.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Tue, 17 May 2011 00:17:52 +0200] rev 14373
ui: enable alias exception when reading config in plain mode
When in plain mode with "alias" present in the exception list,
keep the aliases. This will be used later to enable auto-completion.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Tue, 17 May 2011 00:08:51 +0200] rev 14372
ui: test plain mode against exceptions
Let ui.plain() accept an optional parameter in the form of a feature
name (as a string) to exclude from plain mode.
The result of ui.plain is now:
- False if HGPLAIN is not set or the requested feature is in HGPLAINEXCEPT
- True otherwise
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Matt Mackall <mpm@selenic.com> [Wed, 18 May 2011 17:05:30 -0500] rev 14371
revlog: drop base() again
deltaparent does what's needed, and more "portably".
Patrick Mezard <pmezard@gmail.com> [Wed, 18 May 2011 23:48:17 +0200] rev 14370
patch: add a workingbackend dirstate layer on top of fsbackend
_updatedir() is no longer used by internalpatch()
The change in test-mq-missingfiles.t comes from workingbackend not considering
the missing 'b' file as changed, thus not calling addremove() on it.
Patrick Mezard <pmezard@gmail.com> [Wed, 18 May 2011 23:48:13 +0200] rev 14369
patch: handle binary copies as regular ones
This introduces a performance regression for large files, as they will be
copied just to be clobbered afterwards since binary patching does not use
deltas. But it simplifies the code and the previous optimization will be
reintroduced later in a better way.
Patrick Mezard <pmezard@gmail.com> [Wed, 18 May 2011 23:48:13 +0200] rev 14368
patch: remove files while patching, not in updatedir()
At this point, updatedir() only reads the working directory and update the
dirstate.
Patrick Mezard <pmezard@gmail.com> [Wed, 18 May 2011 23:48:13 +0200] rev 14367
patch: set desired mode when patching, not in updatedir()
This patch and the following aim at merging _updatedir() actions into
_applydiff().
Patrick Mezard <pmezard@gmail.com> [Wed, 18 May 2011 23:48:13 +0200] rev 14366
patch: stop changing current directory before patching
_applydiff() patcher argument was added to help hgsubversion like extension
monkeypatching the patching process. While it could be removed at this point, I
prefer to leave it until patch.py is completely refactored and there is a valid
and tested alternative.
Sune Foldager <cryo@cyanite.org> [Wed, 18 May 2011 23:26:26 +0200] rev 14365
revlog: linearize created changegroups in generaldelta revlogs
This greatly improves the speed of the bundling process, and often reduces the
bundle size considerably. (Although if the repository is already ordered, this
has little effect on both time and bundle size.)
For non-generaldelta clients, the reduced bundle size translates to a reduced
repository size, similar to shrinking the revlogs (which uses the exact same
algorithm). For generaldelta clients the difference is minor.
When the new bundle format comes, reordering will not be necessary since we
can then store the deltaparent relationsships directly. The eventual default
behavior for clients and servers is presented in the table below, where "new"
implies support for GD as well as the new bundle format:
old client new client
old server old bundle, no reorder old bundle, no reorder
new server, non-GD old bundle, no reorder[1] old bundle, no reorder[2]
new server, GD old bundle, reorder[3] new bundle, no reorder[4]
[1] reordering is expensive on the server in this case, skip it
[2] client can choose to do its own redelta here
[3] reordering is needed because otherwise the pull does a lot of extra
work on the server
[4] reordering isn't needed because client can get deltabase in bundle
format
Currently, the default is to reorder on GD-servers, and not otherwise. A new
setting, bundle.reorder, has been added to override the default reordering
behavior. It can be set to either 'auto' (the default), or any true or false
value as a standard boolean setting, to either force the reordering on or off
regardless of generaldelta.
Some timing data from a relatively branch test repository follows. All
bundling is done with --all --type none options.
Non-generaldelta, non-shrunk repo:
-----------------------------------
Size: 276M
Without reorder (default):
Bundle time: 14.4 seconds
Bundle size: 939M
With reorder:
Bundle time: 1 minute, 29.3 seconds
Bundle size: 381M
Generaldelta, non-shrunk repo:
-----------------------------------
Size: 87M
Without reorder:
Bundle time: 2 minutes, 1.4 seconds
Bundle size: 939M
With reorder (default):
Bundle time: 25.5 seconds
Bundle size: 381M
Sune Foldager <cryo@cyanite.org> [Wed, 18 May 2011 23:11:34 +0200] rev 14364
revlogdag: add linearize function
See the docstring for a detailed explanation. The linearizer was originally
written by Benoit Boissinot.
Martin Geisler <mg@lazybytes.net> [Wed, 18 May 2011 19:30:17 +0200] rev 14363
localrepo, sshrepo: use Boolean create argument in __init__
Martin Geisler <mg@lazybytes.net> [Wed, 18 May 2011 19:25:34 +0200] rev 14362
commands: replace 'x = f(); return x' with 'return f()'
Martin Geisler <mg@lazybytes.net> [Wed, 18 May 2011 19:22:55 +0200] rev 14361
merge with stable
Martin Geisler <mg@aragost.com> [Wed, 18 May 2011 15:13:26 +0200] rev 14360
subrepo: respect non-default path for incoming/outgoing
Push and pull set repo._subtoppath before pushing or pulling subrepos.
The incoming and outgoing commands needed to do the same.
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 18 May 2011 15:45:57 +0200] rev 14359
run-tests: print a newline after all warnings
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 18 May 2011 15:41:03 +0200] rev 14358
annotate: fix alignment of columns in front of line numbers (issue2807)
Martin Geisler <mg@aragost.com> [Wed, 18 May 2011 09:56:27 +0200] rev 14357
merge with stable
Martin Geisler <mg@aragost.com> [Wed, 18 May 2011 09:31:19 +0200] rev 14356
revset: the name is optional for the tag predicate
Martin Geisler <mg@aragost.com> [Wed, 18 May 2011 09:28:11 +0200] rev 14355
revset: note case-sensitive match in grep
Martin Geisler <mg@aragost.com> [Wed, 18 May 2011 09:20:52 +0200] rev 14354
revset: note case-insensitive matches in keyword and user
Martin Geisler <mg@aragost.com> [Wed, 18 May 2011 09:15:18 +0200] rev 14353
revset: expand help for contains predicate
Sune Foldager <cryo@cyanite.org> [Wed, 18 May 2011 09:05:18 +0200] rev 14352
patch: remove unused variable to make pyflakes test happy
Patrick Mezard <pmezard@gmail.com> [Tue, 17 May 2011 23:46:38 +0200] rev 14351
patch: add lexists() to backends, use it in selectfile()
At this point, all applydiff() filesystem calls should pass through fsbackend.
Patrick Mezard <pmezard@gmail.com> [Tue, 17 May 2011 23:46:38 +0200] rev 14350
patch: move copyfile() into backends, abstract basedir
Patrick Mezard <pmezard@gmail.com> [Tue, 17 May 2011 23:46:37 +0200] rev 14349
patch: merge makerejlines() into write_rej()
Patrick Mezard <pmezard@gmail.com> [Tue, 17 May 2011 23:46:15 +0200] rev 14348
patch: extract fs access from patchfile into fsbackend
Most filesystem calls are already isolated in patchfile but this is not enough:
renames are performed before patchfile is available and some chmod calls are
even done outside of the applydiff call. Once all these calls are extracted
into a backend class, we can provide cleaner APIs to write to a working
directory context directly into the repository.
Patrick Mezard <pmezard@gmail.com> [Tue, 17 May 2011 23:27:58 +0200] rev 14347
mq: fix qpush changes detection of renamed files
patch.changedfile() was not considering renamed file source as changed.
Augie Fackler <durin42@gmail.com> [Mon, 16 May 2011 16:59:45 -0500] rev 14346
httpconnection: correctly handle redirects from http to https
Previously the connection cache for keepalives didn't keep track of
ssl. This meant that when we connected to an https server after that
same server via http, both on the default port, we'd incorrectly reuse
the non-https connection as the default port meant the connection
cache key was the same.
Adrian Buehlmann <adrian@cadifra.com> [Sun, 15 May 2011 21:33:51 +0200] rev 14345
win32.py: add argtypes and restype
This is a feature of ctypes. Without these, pypy complains with
RuntimeWarning: C function without declared arguments called
RuntimeWarning: C function without declared return type called
As a side effect of specifying restypes, the return value of e.g. CreateFileA
is now implicitly converted to an instance of _HANDLE, so we also need to
change the definition
_INVALID_HANDLE_VALUE = -1
to
_INVALID_HANDLE_VALUE = _HANDLE(-1).value
Otherwise, tests for equality to _INVALID_HANDLE_VALUE in code like
def _getfileinfo(name):
fh = _kernel32.CreateFileA(name, 0,
_FILE_SHARE_READ | _FILE_SHARE_WRITE | _FILE_SHARE_DELETE,
None, _OPEN_EXISTING, 0, None)
if fh == _INVALID_HANDLE_VALUE:
_raiseoserror(name)
would now fail to detect an invalid handle, which in turn would lead to
exceptions raised with wrong errno values, like e.g.
>>> nlinks('missing.txt')
Traceback (most recent call last):
...
OSError: [Errno 9] missing.txt: The handle is invalid.
instead of the correct (as per this patch and before it)
>>> nlinks('missing.txt')
Traceback (most recent call last):
...
OSError: [Errno 2] missing.txt: The system cannot find the file specified.
Adrian Buehlmann <adrian@cadifra.com> [Sun, 15 May 2011 21:27:59 +0200] rev 14344
win32.py: more explicit definition of _STD_ERROR_HANDLE
Matt Mackall <mpm@selenic.com> [Mon, 16 May 2011 17:02:35 -0500] rev 14343
revset: add follow(filename) to follow a filename's history across copies
Matt Mackall <mpm@selenic.com> [Mon, 16 May 2011 17:02:35 -0500] rev 14342
revset: introduce filelog() to emulate log's fast path
filelog() only reports revisions present in the matching filelogs.
Augie Fackler <durin42@gmail.com> [Thu, 12 May 2011 10:48:31 -0500] rev 14341
httpclient: import revision b8c3511a8cae from py-nonblocking-http
Fixes issues with SSL_ERROR_WANT_READ incorrectly breaking the
response read.
Patrick Mezard <pmezard@gmail.com> [Mon, 16 May 2011 21:56:26 +0200] rev 14340
run-tests: replace chdir() with Popen cwd option
Patrick Mezard <pmezard@gmail.com> [Mon, 16 May 2011 21:54:43 +0200] rev 14339
run-tests: make --debug run in the temporary test directory
Patrick Mezard <pmezard@gmail.com> [Mon, 16 May 2011 21:52:28 +0200] rev 14338
run-tests: use the common test path on Windows and Java
The alternate one did not run in the test directory and controlling
the jobs execution with threads instead of process made it harder
to fix.
Patrick Mezard <pmezard@gmail.com> [Mon, 16 May 2011 21:41:46 +0200] rev 14337
run-tests: ignore timeout when Popen.terminate is unavailable
Popen.terminate was introduced in python 2.6
Patrick Mezard <pmezard@gmail.com> [Mon, 16 May 2011 21:26:50 +0200] rev 14336
run-tests: fix hg.bat python reference
hg.bat expects to live in pythonxx/scripts and the python interpreter
to be in pythonxx. run-tests.py file layout is a little different and
python location must be fixed.
Patrick Mezard <pmezard@gmail.com> [Mon, 16 May 2011 21:24:14 +0200] rev 14335
run-tests: fix python executable detection and copy on Windows
Sune Foldager <cryo@cyanite.org> [Mon, 16 May 2011 13:06:48 +0200] rev 14334
changelog: don't use generaldelta
Sune Foldager <cryo@cyanite.org> [Mon, 16 May 2011 12:44:34 +0200] rev 14333
revlog: get rid of defversion
defversion was a property (later option) on the store opener, used to propagate
the changelog revlog format to the other revlogs, so they would be created with
the same format.
This required that the changelog instance was created before any other revlog;
an invariant that wasn't directly enforced (or documented) anywhere.
We now use the revlogv1 requirement instead, which is transfered to the store
opener options. If this option is missing, v0 revlogs are created.
Thomas Arendsen Hein <thomas@intevation.de> [Mon, 16 May 2011 11:52:28 +0200] rev 14332
bash_completion: Use "hg paths -q" instead of piping through sed
Thomas Arendsen Hein <thomas@intevation.de> [Mon, 16 May 2011 11:41:48 +0200] rev 14331
paths: Add support for -q/--quiet
Suppresses output (resolved paths or "not found!") when searching a path,
similar to "grep -q".
Sample usage: hg paths -q foo || echo "there is no foo"
Just prints path names (instead of "name = result") when listing all path
definitions, like "hg bookmarks -q".
Sample usage: hg paths -q | while read i; do hg incoming "$i"; done
Sune Foldager <cryo@cyanite.org> [Mon, 16 May 2011 11:14:06 +0200] rev 14330
fix test broken in merge from stable
Matt Mackall <mpm@selenic.com> [Sun, 15 May 2011 13:15:41 -0500] rev 14329
merge with stable
Steve Borho <steve@borho.org> [Fri, 13 May 2011 19:46:36 -0500] rev 14328
simplemerge: do not allow binary files to abort an entire merge
When used as the default merge tool, or used as a --tool override,
the simplemerge script should not be allowed to raise a util.Abort
just because one of the files being merged is binary. Instead, return
1 and mark the file unresolved.
Javi Merino <cibervicho@gmail.com> [Sun, 15 May 2011 18:00:22 +0100] rev 14327
extdiff: grammar "allows to" -> "allows one to"
The verb to allow requires a direct object.
Lintian, a Debian tool to find common mistakes, reported it. I'm not a
native english speaker but I think this is correct.
Matt Mackall <mpm@selenic.com> [Sun, 15 May 2011 11:50:16 -0500] rev 14326
debugrevlog: add --dump flag to dump graphable per-revision statistics
Matt Mackall <mpm@selenic.com> [Sun, 15 May 2011 11:50:15 -0500] rev 14325
revlog: restore the base method
Brendan Cully <brendan@kublai.com> [Sat, 14 May 2011 22:07:58 -0700] rev 14324
Hardcoding ARCHFLAGS breaks the build against fink's python
Fink's python is either i386 or amd64, but not universal. Setting ARCHFLAGS to the
empty string produces a successful build against both OS X python and fink python.
The modules will no longer be universal -- if that is an issue, we can change the
test to extract ARCHFLAGS from distutils.sysconfig and remove ppc if necessary.
Sune Foldager <cryo@cyanite.org> [Sat, 14 May 2011 00:30:32 +0200] rev 14323
debugindex etc.: add --changelog and --manifest options
These open the changelog and manifest, respectively, directly so you don't
need to specify the path.
The options have been added to debugindex, debugdata and debugrevlog.
The patch also fixes some minor usage-related bugs.
Matt Mackall <mpm@selenic.com> [Fri, 13 May 2011 14:58:24 -0500] rev 14322
scmutil: drop aliases in cmdutil for match functions
Matt Mackall <mpm@selenic.com> [Fri, 13 May 2011 14:48:48 -0500] rev 14321
scmutil: drop some aliases in cmdutil
Matt Mackall <mpm@selenic.com> [Fri, 13 May 2011 14:07:16 -0500] rev 14320
scmutil: fold in wdutil
Matt Mackall <mpm@selenic.com> [Fri, 13 May 2011 14:06:28 -0500] rev 14319
scmutil: move revsingle/pair/range from cmdutil
This allows users at levels below the command layer to avoid import loops.
Matt Mackall <mpm@selenic.com> [Fri, 13 May 2011 12:57:27 -0500] rev 14318
help: consolidate topic hooks in help.py
This removes loops like cmdutil->revset->help->extensions->cmdutil and
simplifies the code.
Matt Mackall <mpm@selenic.com> [Fri, 13 May 2011 11:04:51 -0500] rev 14317
extensions: move moduledoc to break import loop with help
Matt Mackall <mpm@selenic.com> [Fri, 13 May 2011 11:04:51 -0500] rev 14316
extensions: drop maxlength from enabled and disabled
This is a bad/silly API. Instead calculate maxlength in one place in help
it's used and simplify all the callers.
Martin Geisler <mg@aragost.com> [Fri, 13 May 2011 11:26:29 +0200] rev 14315
Makefile: remove pure modules on clean
Cédric Krier <ced@b2ck.com> [Wed, 11 May 2011 18:18:50 +0200] rev 14314
hgcia: Handle URL like in notify (issue2406)
The URL must be composed with baseurl and webroot like in notify
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Thu, 12 May 2011 16:41:56 +0200] rev 14313
util: make str(url) return file:/// for abs paths again
str(url) was recently changed to return only file:/. However, the
canonical way to represent absolute local paths is file:/// [1], which
is also expected by at least hgsubversion.
Relative paths are returned as file:the/relative/path.
[1] http://en.wikipedia.org/wiki/File_URI_scheme
Matt Mackall <mpm@selenic.com> [Thu, 12 May 2011 18:35:04 -0500] rev 14312
subrepo: use a safer revision check for hg repos
This avoids a traceback if the expected revision has been stripped.
Adrian Buehlmann <adrian@cadifra.com> [Thu, 12 May 2011 20:27:35 +0200] rev 14311
graphlog: use cmdutil.command decorator
Adrian Buehlmann <adrian@cadifra.com> [Thu, 12 May 2011 20:14:42 +0200] rev 14310
purge: use cmdutil.command decorator
Adrian Buehlmann <adrian@cadifra.com> [Thu, 12 May 2011 18:27:05 +0200] rev 14309
patchbomb: use cmdutil.command decorator
Adrian Buehlmann <adrian@cadifra.com> [Thu, 12 May 2011 17:50:07 +0200] rev 14308
transplant: use cmdutil.command decorator
Steven Brown <StevenGBrown@gmail.com> [Thu, 12 May 2011 18:06:15 +0800] rev 14307
monoblue: improve readability of the filenolink template
Whitespace changes only. No difference to the rendered page.
Adrian Buehlmann <adrian@cadifra.com> [Thu, 12 May 2011 17:09:56 +0200] rev 14306
rebase: use cmdutil.command decorator
Sune Foldager <cryo@cyanite.org> [Thu, 12 May 2011 22:37:52 +0200] rev 14305
debugrevlog: many improvements
Sune Foldager <cryo@cyanite.org> [Thu, 12 May 2011 18:22:49 +0200] rev 14304
add debugrevlog command
Displays data and statistics about revlogs, including generaldelta details.
Sune Foldager <cryo@cyanite.org> [Thu, 12 May 2011 18:19:28 +0200] rev 14303
check-code: add /= to operator list
Sune Foldager <cryo@cyanite.org> [Thu, 12 May 2011 16:21:01 +0200] rev 14302
order commands alphabetically
Sune Foldager <cryo@cyanite.org> [Thu, 12 May 2011 15:24:33 +0200] rev 14301
revlog: improve delta generation heuristics for generaldelta
Without this change, pulls (and clones) into a generaldelta repository could
generate very inefficient revlogs, the size of which could be at least twice
the original size.
This was caused by the generated delta chains covering too large distances,
causing new chains to be built far too often. This change addresses the
problem by forcing a delta against second parent or against the previous
revision, when the first parent delta is in danger of creating a long chain.
Martin Geisler <mg@aragost.com> [Thu, 12 May 2011 14:31:07 +0200] rev 14300
keyword: use cmdutil.command decorator
Martin Geisler <mg@aragost.com> [Thu, 12 May 2011 14:31:01 +0200] rev 14299
gpg: use cmdutil.command decorator
Martin Geisler <mg@aragost.com> [Thu, 12 May 2011 14:25:08 +0200] rev 14298
mq: use cmdutil.command decorator
Adrian Buehlmann <adrian@cadifra.com> [Thu, 12 May 2011 08:14:04 +0200] rev 14297
commands: use a decorator to build table incrementally
this allows to define the table entries near the command functions
Sune Foldager <cryo@cyanite.org> [Thu, 12 May 2011 13:47:17 +0200] rev 14296
revlog: fix bug in chainbase cache
The bug didn't cause corruption, and thus wasn't caught in hg verify or in
tests. It could lead to delta chains longer than normally allowed, by
affecting the code that decides when to add a full revision. This could,
in turn, lead to performance regression.
Zachary Gramana <zgramana@pottsconsultinggroup.com> [Mon, 09 May 2011 15:16:56 -0400] rev 14295
setup.py: workaround for missing bz2 module in IronPython
IronPython does not provide the bz2 module on its own. This patch skips
importing it to allow setup to continue.
(minor tweaks by mpm)
Augie Fackler <durin42@gmail.com> [Wed, 11 May 2011 08:07:51 -0500] rev 14294
httpconnection: fix debug logging option for httpclient
Augie Fackler <durin42@gmail.com> [Wed, 11 May 2011 08:00:48 -0500] rev 14293
httpclient: import f4c380237fd5 to fix keepalive not working
Sune Foldager <cryo@cyanite.org> [Wed, 11 May 2011 11:04:44 +0200] rev 14292
revlog: add docstring to _addrevision
Matt Mackall <mpm@selenic.com> [Tue, 10 May 2011 16:08:47 -0500] rev 14291
cmdutil: make_file to makefileobj
Matt Mackall <mpm@selenic.com> [Tue, 10 May 2011 16:08:46 -0500] rev 14290
cmdutil: make_filename -> makefilename
Matt Mackall <mpm@selenic.com> [Tue, 10 May 2011 16:08:46 -0500] rev 14289
cmdutil: bail_if_changed to bailifchanged
Adrian Buehlmann <adrian@cadifra.com> [Sun, 08 May 2011 23:27:48 +0200] rev 14288
store: change names to comply with project coding standards
as stated at http://mercurial.selenic.com/wiki/CodingStyle
(see also http://selenic.com/pipermail/mercurial-devel/2011-May/031139.html )
name changes done at module scope:
_build_lower_encodefun -> _buildlowerencodefun
_windows_reserved_filenames -> _winreservednames (see 23cd7eeff678)
MAX_PATH_LEN_IN_HGSTORE -> _maxstorepathlen
DIR_PREFIX_LEN -> _dirprefixlen
_MAX_SHORTENED_DIRS_LEN -> _maxshortdirslen
(no users of these outside the store module)
changed locals:
win_reserved -> winreserved
space_left -> spaceleft
Sune Foldager <cryo@cyanite.org> [Tue, 10 May 2011 17:38:58 +0200] rev 14287
filelog: add file function to open other filelogs
Martin Geisler <mg@aragost.com> [Tue, 10 May 2011 14:42:53 +0200] rev 14286
help: add -c/--command flag to only show command help (issue2799)
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)
Augie Fackler <durin42@gmail.com> [Fri, 29 Apr 2011 08:01:10 -0500] rev 14029
shrink-revlog: update util.opener to scmutil.opener after d13913355390
Augie Fackler <durin42@gmail.com> [Fri, 29 Apr 2011 07:38:12 -0500] rev 14028
shrink-revlog: remove \ from docstring
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sun, 13 Mar 2011 15:02:49 +0100] rev 14027
bookmarks: be more restrictive in our Exception catching
Patrick Mezard <pmezard@gmail.com> [Fri, 29 Apr 2011 14:56:23 +0200] rev 14026
strip: make it clear that --force discards changes (issue310)
Augie Fackler <durin42@gmail.com> [Fri, 29 Apr 2011 03:05:48 -0500] rev 14025
subrepo: tell Subversion when we are non-interactive (issue2759)
$ hg clone repo repo-clone -v
updating to branch default
resolving manifests
getting .hgsub
getting .hgsubstate
abort: svn: OPTIONS of 'https://subversion.srv/project': Server certificate
verification failed: issuer is not trusted (https://subversion.srv)
Thomas Arendsen Hein <thomas@intevation.de> [Fri, 29 Apr 2011 11:10:11 +0200] rev 14024
merge with stable
Thomas Arendsen Hein <thomas@intevation.de> [Fri, 29 Apr 2011 11:04:39 +0200] rev 14023
tests: check for (*/sec) instead of (*B/sec) to match (X bytes/sec)
I just had: transferred 606 bytes in 2.9 seconds (211 bytes/sec)
Patrick Mezard <pmezard@gmail.com> [Fri, 29 Apr 2011 09:43:21 +0200] rev 14022
test-repair-strip: turn into new style test
Patrick Mezard <pmezard@gmail.com> [Fri, 29 Apr 2011 08:04:46 +0200] rev 14021
extdiff: fix broken symlinks handling (issue1909)
Matt Mackall <mpm@selenic.com> [Tue, 26 Apr 2011 10:51:19 -0500] rev 14020
tags: catch more corruption during cache parsing (issue2779)
Matt Mackall <mpm@selenic.com> [Mon, 25 Apr 2011 17:01:34 -0500] rev 14019
run-tests: do chdir for tests under a lock for thread safety
Matt Mackall <mpm@selenic.com> [Mon, 25 Apr 2011 16:17:08 -0500] rev 14018
run-tests: add iolock to vlog
Patrick Mezard <pmezard@gmail.com> [Tue, 26 Apr 2011 21:22:14 +0200] rev 14017
patch: remove redundant variable in iterhunks()
Martin Geisler <mg@aragost.com> [Tue, 26 Apr 2011 13:13:35 +0200] rev 14016
merge with stable
Martin Geisler <mg@aragost.com> [Tue, 26 Apr 2011 12:56:56 +0200] rev 14015
merge default heads
Martin Geisler <mg@aragost.com> [Tue, 26 Apr 2011 12:55:26 +0200] rev 14014
commit: improve --date help text
Patrick Mezard <pmezard@gmail.com> [Mon, 25 Apr 2011 21:20:44 +0200] rev 14013
merge with stable
Patrick Mezard <pmezard@gmail.com> [Mon, 25 Apr 2011 21:11:28 +0200] rev 14012
test-transplant: fix missing file addition
Steven Brown <StevenGBrown@gmail.com> [Mon, 25 Apr 2011 18:00:30 +0800] rev 14011
tests: add script to disable a selected wire protocol capability
This can be used to test that the client and server both fall back to the
previous wire protocol when the capability is not supported.
It is currently used by test-push-http.t and I plan to use it for the HTTP
long argument support tests.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 25 Apr 2011 14:03:12 +0200] rev 14010
mq: prevent traceback when qfinish patches not in series.
When mq status entry referencing a patches that is not in series `hg qfinish
-a` used to issue a traceback. This states is inconsistent but might happen
regularly when people misuse hg up -mq.
This changeset prevent hg from crashing. The faulty entry is finished anyway and
a warning is issued.
Idan Kamara <idankk86@gmail.com> [Mon, 25 Apr 2011 13:03:26 +0300] rev 14009
check-code: separate warnings to avoid repetitive str.startswith
Greg Ward <greg@gerg.ca> [Sun, 24 Apr 2011 17:30:50 -0400] rev 14008
atomictempfile: rewrite docstring to clarify rename() vs. close().
Greg Ward <greg@gerg.ca> [Sun, 24 Apr 2011 19:25:10 -0400] rev 14007
atomictempfile: avoid infinite recursion in __del__().
The problem is that a programmer using atomictempfile directly can
make an innocent everyday mistake -- not enough args to the
constructor -- which escalates badly. You would expect a simple
TypeError crash in that case, but you actually get an infinite
recursion that is surprisingly difficult to kill: it happens between
__del__() and __getattr__(), and Python does not handle infinite
recursion from __del__() well.
The fix is to not implement __getattr__(), but instead assign instance
attributes for the methods we wish to delegate to the builtin file
type: write() and fileno(). I've audited mercurial.* and hgext.* and
found no users of atomictempfile using methods other than write() and
rename(). I audited third-party extensions and found one (snap)
passing an atomictempfile to util.fstat(), so I also threw in
fileno().
The last time I submitted a similar patch, Matt proposed that we make
atomictempfile a subclass of file instead of wrapping it. Rejected on
grounds of unnecessary complexity: for one thing, it would make the
Windows implementation of posixfile quite a bit more complex. It would
have to become a subclass of file rather than a simple function -- but
since it's written in C, this is non-obvious and non-trivial.
Furthermore, there's nothing wrong with wrapping objects and
delegating methods: it's a well-established pattern that works just
fine in many cases. Subclassing is not the answer to all of life's
problems.
Patrick Mezard <pmezard@gmail.com> [Mon, 25 Apr 2011 18:42:31 +0200] rev 14006
run-tests: display diff before prompting with --interactive
Idan Kamara <idankk86@gmail.com> [Sat, 23 Apr 2011 00:52:21 +0300] rev 14005
check-code: warn about naked except clauses
Idan Kamara <idankk86@gmail.com> [Sat, 23 Apr 2011 00:51:25 +0300] rev 14004
eliminate various naked except clauses
Matt Mackall <mpm@selenic.com> [Sun, 24 Apr 2011 17:52:46 -0500] rev 14003
run-tests: fix some missing i/o locks
Matt Mackall <mpm@selenic.com> [Sun, 24 Apr 2011 16:46:37 -0500] rev 14002
run-tests: add a lock for console I/O
Matt Mackall <mpm@selenic.com> [Sun, 24 Apr 2011 16:42:15 -0500] rev 14001
run-tests: switch timeout handling from alarm to helper thread
This should be slightly more portable than signals and be compatible
with threaded dispatch.
Matt Mackall <mpm@selenic.com> [Sun, 24 Apr 2011 16:42:11 -0500] rev 14000
run-tests: add locking on results struct
Patrick Mezard <pmezard@gmail.com> [Sun, 24 Apr 2011 23:33:48 +0200] rev 13999
run-tests: fix --interactive (after 994ad067ac6e)
- Do not prompt if there is no .err file
- Fix source and target paths
Patrick Mezard <pmezard@gmail.com> [Sun, 24 Apr 2011 23:06:19 +0200] rev 13998
color: code simplification
Patrick Mezard <pmezard@gmail.com> [Sun, 24 Apr 2011 23:06:18 +0200] rev 13997
test-status-color: fix terminfo code compatibility problem
On a linux host in xterm mode, 'none' is translated to:
\x1b[m\x1b(B
While it is the following on osx:
\x1b(B\x1b[m
Take advantage of the new color.color.X option to force it to a common value.
Andreas Freimuth <andreas.freimuth@united-bits.de> [Fri, 22 Apr 2011 16:43:06 +0200] rev 13996
hg-ssh: fix duplicate word in docstring
Matt Mackall <mpm@selenic.com> [Fri, 22 Apr 2011 14:04:34 -0500] rev 13995
run-tests: move test loop into a helper function
Matt Mackall <mpm@selenic.com> [Fri, 22 Apr 2011 12:24:22 -0500] rev 13994
run-tests: use a results dict
Matt Mackall <mpm@selenic.com> [Fri, 22 Apr 2011 11:36:40 -0500] rev 13993
run-tests: move blacklist and retest filtering to runone
Matt Mackall <mpm@selenic.com> [Fri, 22 Apr 2011 11:32:05 -0500] rev 13992
run-tests: keep a list of passed tests
Matt Mackall <mpm@selenic.com> [Fri, 22 Apr 2011 11:24:27 -0500] rev 13991
run-tests: move keyword checking into runone
Matt Mackall <mpm@selenic.com> [Fri, 22 Apr 2011 11:22:02 -0500] rev 13990
run-tests: add ignores list
Matt Mackall <mpm@selenic.com> [Thu, 21 Apr 2011 18:38:30 -0500] rev 13989
run-tests: move existence/name format check into runone
Matt Mackall <mpm@selenic.com> [Thu, 21 Apr 2011 18:19:45 -0500] rev 13988
run-tests: move interactive handling into runone
Danek Duvall <duvall@comfychair.org> [Thu, 21 Apr 2011 13:47:45 -0700] rev 13987
color: add support for terminfo-based attributes and color
Using terminfo instead of hard-coding ECMA-48 control sequences provides a
greater assurance that the terminal codes are correct for the current
terminal type; not everything supports the ANSI escape codes.
It also allows us to use a wider range of colors when a terminal emulator
supports it (such as 16- or 256-color xterm), and a few more non-color
attributes, such as the ever-popular blink.
Adrian Buehlmann <adrian@cadifra.com> [Thu, 21 Apr 2011 21:16:54 +0200] rev 13986
move system_rcpath and user_rcpath to scmutil
Adrian Buehlmann <adrian@cadifra.com> [Thu, 21 Apr 2011 20:54:45 +0200] rev 13985
move os_rcpath from util to scmutil
Adrian Buehlmann <adrian@cadifra.com> [Thu, 21 Apr 2011 20:14:29 +0200] rev 13984
move rcpath from util to scmutil
Matt Mackall <mpm@selenic.com> [Thu, 21 Apr 2011 15:11:28 -0500] rev 13983
merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 21 Apr 2011 15:11:19 -0500] rev 13982
merge with i18n
Matt Mackall <mpm@selenic.com> [Thu, 21 Apr 2011 15:10:59 -0500] rev 13981
merge with i18n
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 19 Apr 2011 12:00:22 -0300] rev 13980
i18n-pt_BR: synchronized with 1416b9118540
Martin Geisler <mg@lazybytes.net> [Tue, 19 Apr 2011 09:46:45 +0200] rev 13979
i18n: merge with stable
Martin Geisler <mg@lazybytes.net> [Tue, 19 Apr 2011 09:46:24 +0200] rev 13978
i18n-da: synchronize with 1184bb274cb3
Martin Krüger <martin.krueger@gmx.com> [Tue, 19 Apr 2011 09:30:42 +0200] rev 13977
i18n-de: improve grammar
Matt Mackall <mpm@selenic.com> [Thu, 21 Apr 2011 15:08:48 -0500] rev 13976
win32: Wine doesn't know about hardlinks
Adrian Buehlmann <adrian@cadifra.com> [Thu, 21 Apr 2011 16:06:19 +0200] rev 13975
move walkrepos from util to scmutil
Adrian Buehlmann <adrian@cadifra.com> [Thu, 21 Apr 2011 13:18:52 +0200] rev 13974
move checkfilename from util to scmutil
checkfilename is specific to Mercurial, since it contains the knowledege
that Mercurial can't track files with \n or \r in the name.
Adrian Buehlmann <adrian@cadifra.com> [Thu, 21 Apr 2011 12:10:03 +0200] rev 13973
scmutil: fix erroneous Abort call
This fixes d13913355390 (affected Windows only).
Adrian Buehlmann <adrian@cadifra.com> [Wed, 20 Apr 2011 22:43:31 +0200] rev 13972
move path_auditor from util to scmutil
Adrian Buehlmann <adrian@cadifra.com> [Wed, 20 Apr 2011 21:41:41 +0200] rev 13971
move canonpath from util to scmutil
Adrian Buehlmann <adrian@cadifra.com> [Wed, 20 Apr 2011 19:54:57 +0200] rev 13970
move opener from util to scmutil
Patrick Mezard <pmezard@gmail.com> [Wed, 20 Apr 2011 23:30:07 +0200] rev 13969
merge with stable
Patrick Mezard <pmezard@gmail.com> [Wed, 20 Apr 2011 23:15:18 +0200] rev 13968
convert: make filemap prune useless branch closing revs (issue2774)
A branch closing revision only applies if one of its parents belongs to the
branch being closed. Otherwise the filemap can prune it too.
Matt Mackall <mpm@selenic.com> [Wed, 20 Apr 2011 14:28:40 -0500] rev 13967
dispatch: improve repository not found message
This should help clarify what the problem is in various problematic
cases like ssh.
Steven Stallion <sstallion@gmail.com> [Wed, 20 Apr 2011 00:01:50 -0400] rev 13966
hgweb: support disabling page cache
By default, hgweb_mod supports caching via the ETag header. This can
cause some confusion with browsers which cache aggressively. This change
preserves existing behavior while giving the administrator a knob to
disable the ETag header.
Matt Mackall <mpm@selenic.com> [Wed, 20 Apr 2011 12:44:32 -0500] rev 13965
merge with stable
Steven Stallion <sstallion@gmail.com> [Tue, 19 Apr 2011 23:37:06 -0400] rev 13964
hgweb: support alternate logo url
Clicking on the logo image/text in the hgweb interface brings the
user to the Mercurial project page. The majority of users expect that
this would bring them to the top level index. I have added a new template
variable named `logourl' which allows an administrator to change this
behavior. To stay compatible with existing behavior, `logourl' will
default to http://mercurial.selenic.com/. This change is very useful in
large installations where jumping to the index is common.
Kevin Bullock <kbullock@ringworld.org> [Tue, 19 Apr 2011 13:33:43 -0500] rev 13963
identify: further clarification of help
Following on to 1416b9118540, correct a minor grammar issue, re-wrap to
72 columns, and further clarify wording.
Adrian Buehlmann <adrian@cadifra.com> [Tue, 19 Apr 2011 12:42:53 +0200] rev 13962
add: introduce a warning message for non-portable filenames (issue2756) (BC)
On POSIX platforms, the 'add', 'addremove', 'copy' and 'rename' commands now
warn if a file has a name that can't be checked out on Windows.
Example:
$ hg add con.xml
warning: filename contains 'con', which is reserved on Windows: 'con.xml'
$ hg status
A con.xml
The file is added despite the warning.
The warning is ON by default. It can be suppressed by setting the config option
'portablefilenames' in section 'ui' to 'ignore' or 'false':
$ hg --config ui.portablefilenames=ignore add con.xml
$ hg sta
A con.xml
If ui.portablefilenames is set to 'abort', then the command is aborted:
$ hg --config ui.portablefilenames=abort add con.xml
abort: filename contains 'con', which is reserved on Windows: 'con.xml'
On Windows, the ui.portablefilenames config setting is irrelevant and the
command is always aborted if a problematic filename is found.
Adrian Buehlmann <adrian@cadifra.com> [Tue, 19 Apr 2011 14:56:47 +0200] rev 13961
paper: use monospace font for description
Idan Kamara <idankk86@gmail.com> [Tue, 19 Apr 2011 14:56:46 +0300] rev 13960
update: fix check for no rev when a date is given
The previous check caught a corner case in which rev
was pointing to 0.
Martin Geisler <mg@lazybytes.net> [Tue, 19 Apr 2011 15:19:54 +0200] rev 13959
merge with stable
Martin Geisler <mg@lazybytes.net> [Tue, 19 Apr 2011 15:15:56 +0200] rev 13958
hgweb: detect change based on changelog size too
Before, there was a race between an access and a modification made
within the same second.
Martin Geisler <mg@lazybytes.net> [Tue, 19 Apr 2011 13:25:19 +0200] rev 13957
rollback: lower-case warning issued when branch cannot be reset
Also improved the word order.
Martin Geisler <mg@lazybytes.net> [Tue, 19 Apr 2011 12:04:44 +0200] rev 13956
tests: remove redundant mkdir
There are still many tests that check that a bare 'hg init'
initializes the current directory.
Martin Geisler <mg@lazybytes.net> [Mon, 18 Apr 2011 13:57:22 +0200] rev 13955
help config: explain that config files do not exist by default
Inspired by critique given on StackOverflow where a user writes:
I can have a good guess at what "%USERPROFILE%" might signify but
none of the files listed in the "hg help config" output exist after
running the installer. Previous experience would suggest that
missing files mean something somewhere has gone seriously wrong.
http://stackoverflow.com/questions/2329023/2351139#2351139
Matt Mackall <mpm@selenic.com> [Mon, 18 Apr 2011 20:52:08 -0500] rev 13954
merge with stable
Idan Kamara <idankk86@gmail.com> [Tue, 19 Apr 2011 01:08:35 +0300] rev 13953
identify: restructure code to make it more readable
Idan Kamara <idankk86@gmail.com> [Tue, 19 Apr 2011 00:41:47 +0300] rev 13952
identify/help: say what the command does first, mention bookmarks
Adrian Buehlmann <adrian@cadifra.com> [Sun, 17 Apr 2011 21:34:25 +0200] rev 13951
templatefilters: improve person() for john.doe@example.com
BEFORE: person('john.doe@example.com') -> 'john'
AFTER: person('john.doe@example.com') -> 'john doe'
Adrian Buehlmann <adrian@cadifra.com> [Sun, 17 Apr 2011 11:37:11 +0200] rev 13950
help: do not show full help text for command on option errors
Example
$ hg clone --jump foo bar
hg clone: option --jump not recognized
hg clone [OPTION]... SOURCE [DEST]
make a copy of an existing repository
options:
-U --noupdate the clone will include an empty working copy (only a
repository)
-u --updaterev REV revision, tag or branch to check out
-r --rev REV [+] include the specified changeset
-b --branch BRANCH [+] clone only the specified branch
--pull use pull protocol to copy metadata
--uncompressed use uncompressed transfer (fast over LAN)
-e --ssh CMD specify ssh command to use
--remotecmd CMD specify hg command to run on the remote side
--insecure do not verify server certificate (ignoring
web.cacerts config)
[+] marked option can be specified multiple times
use "hg help clone" to show the full help text
Motivation for this change
If the user already has specified the command, he probably already knows
the command to some extent. Apparently, he has a problem with the options,
so we show him just the synopsis with the short help and the details about
the options, with a hint on the last line how to get the full help text.
Why is Mercurial better with this change?
Experts who just forgot about the details of an option don't get that
much text thrown at them, while the newbies still get a hint on the last
line how to get the full help text.
Adrian Buehlmann <adrian@cadifra.com> [Sun, 17 Apr 2011 17:55:34 +0200] rev 13949
store: add some doctests
Adrian Buehlmann <adrian@cadifra.com> [Sun, 17 Apr 2011 01:44:09 +0200] rev 13948
paper: don't add breaks on the remaining instances of desc
fixes ebe1ddbbefd7
Adrian Buehlmann <adrian@cadifra.com> [Sat, 16 Apr 2011 20:08:43 +0200] rev 13947
checkwinfilename: use %r in format string
Steven Brown <StevenGBrown@gmail.com> [Sun, 17 Apr 2011 02:15:47 +0800] rev 13946
tests: new test cases for the unbundlehash capability
Adrian Buehlmann <adrian@cadifra.com> [Fri, 15 Apr 2011 16:15:32 +0200] rev 13945
copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com> [Fri, 15 Apr 2011 16:15:30 +0200] rev 13944
util: new function checkfilename
checkfilename checks for restrictions on filenames imposed by Mercurial
itself, irrespective of on what platform it is run.
Adrian Buehlmann <adrian@cadifra.com> [Fri, 15 Apr 2011 16:15:28 +0200] rev 13943
opener: use %r in format string for abort
Shuhei Takahashi <takahashi.shuhei@gmail.com> [Sat, 16 Apr 2011 01:05:56 +0900] rev 13942
wireproto: allow unbundle with hashed heads parameter (issue2126)
Current wire protocol of unbundle sends the list of all heads in the remote
repository to avoid race condition. This causes "URL too long" error on HTTP
server when the repository has many heads.
This change allows clients to send SHA1 hash of sorted head hashes instead.
Also, this introduces "unbundlehash" capability to inform them that the server
accepts hashed heads parameter.
Matt Mackall <mpm@selenic.com> [Fri, 15 Apr 2011 23:46:59 -0500] rev 13941
merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 15 Apr 2011 23:45:41 -0500] rev 13940
encoding: avoid localstr when a string can be encoded losslessly (issue2763)
localstr's hash method exists to prevent bogus matching on lossy local
encodings. For instance, we don't want 'caf?' to match 'café' in an
ASCII locale.
But when café can be losslessly encoded in the local charset, we can
simply use a normal string and avoid the hashing trick.
This avoids using localstr's hash method, which would prevent a match between
Matt Mackall <mpm@selenic.com> [Fri, 15 Apr 2011 20:35:59 -0500] rev 13939
merge with stable
Idan Kamara <idankk86@gmail.com> [Fri, 15 Apr 2011 20:07:44 +0300] rev 13938
revset: optimize stringset when subset == entire repo
if range(len(repo)) is passed to stringset and x is a valid rev
(checked before) then x is guaranteed to be in subset, we can check
for that by comparing the lengths of the sets
Idan Kamara <idankk86@gmail.com> [Fri, 15 Apr 2011 16:35:32 +0300] rev 13937
help/revset: fix grammar
timeless <timeless@mozdev.org> [Thu, 14 Apr 2011 10:00:15 +0200] rev 13936
qrecord: provide help when mq is not enabled
timeless <timeless@mozdev.org> [Thu, 14 Apr 2011 10:00:14 +0200] rev 13935
record: improve help test coverage
Adrian Buehlmann <adrian@cadifra.com> [Fri, 15 Apr 2011 10:56:26 +0200] rev 13934
paper: preserve whitespace on description instead of adding breaks
This preserves the indentation of text in the changeset description.
This is useful for example for descriptions containing command line
use case examples like:
$ hg -q heads
13934:648a834cca14
13912:71ea5b2b9517
Without this patch, such space-char indented text was just left aligned.
Augie Fackler <durin42@gmail.com> [Wed, 13 Apr 2011 13:06:35 -0500] rev 13933
compact style: show bookmarks in the same manner as tags
Augie Fackler <durin42@gmail.com> [Wed, 13 Apr 2011 12:30:41 -0500] rev 13932
revsets: preserve ordering with the or operator
This is valuable because now revsets like 'bookmarks() or tip' will
always show tip after bookmarks unless tip was itself a bookmark. This
is a somewhat contrived example, but this behavior is useful for
"where am I" type aliases that use log and revsets.
Md. O. Shayan <mdoshayan@gmail.com> [Wed, 13 Apr 2011 07:40:24 +0530] rev 13931
hgweb: set minimum number of revision to display to 1 when revcount is 0
When revcount goes to 0 nothing is displayed in hgweb. This patch sets revcount to max(revcount, 1).
Matt Mackall <mpm@selenic.com> [Wed, 13 Apr 2011 12:57:24 -0500] rev 13930
zeroconf: clean up naked exceptions
Idan Kamara <idankk86@gmail.com> [Mon, 11 Apr 2011 21:44:22 +0300] rev 13929
localrepo: don't add deleted files to list of modified/added files (issue2761)
If a file is deleted (rm, not 'hg rm') from the working dir
an attempt to run 'hg diff -r X', with the file being present in X will
cause an abort.
We didn't check if the file has been deleted from the working dir
and later on tried to open it to compare with the one from X, causing the abort.
This fix adds that check. Consequently, no output will be returned.
Adrian Buehlmann <adrian@cadifra.com> [Mon, 11 Apr 2011 10:06:57 +0200] rev 13928
path_auditor: eliminate local function 'check' in __call__
Augie Fackler <durin42@gmail.com> [Mon, 11 Apr 2011 07:34:40 -0500] rev 13927
subrepo: trailing whitespace cleanup
Adrian Buehlmann <adrian@cadifra.com> [Sun, 10 Apr 2011 19:31:49 +0200] rev 13926
util: move checkosfilename call from path_auditor to opener
path_auditor is used for checking patterns too, but a pattern is not a valid
filename.
This patch fixes 98ee3dd5bab4, which introduced the bug:
$ hg log -l3 glob:**.py
abort: filename contains '*', which is reserved on Windows: mercurial\**.py
Idan Kamara <idankk86@gmail.com> [Sun, 10 Apr 2011 11:30:53 +0300] rev 13925
tests: add tests for non-existant branch/tag/bookmark
Yuya Nishihara <yuya@tcha.org> [Sun, 10 Apr 2011 10:01:42 +0900] rev 13924
hgweb: add bookmarks listing to summary page of gitweb/monoblue styles
Yuya Nishihara <yuya@tcha.org> [Sun, 10 Apr 2011 10:01:39 +0900] rev 13923
hgweb: remove useless notip handling from bookmarks listing
Yuya Nishihara <yuya@tcha.org> [Sun, 10 Apr 2011 10:01:37 +0900] rev 13922
hgweb: sort bookmarks in the same manner as console command
Yuya Nishihara <yuya@tcha.org> [Sun, 10 Apr 2011 06:37:20 +0900] rev 13921
hgweb: add bookmarks listing to raw style with test case
Md. O. Shayan <mdoshayan@gmail.com> [Sat, 09 Apr 2011 23:13:17 +0530] rev 13920
grep: don't print data from binary files for matches (issue2614)
Idan Kamara <idankk86@gmail.com> [Sat, 09 Apr 2011 23:53:23 +0300] rev 13919
color: reset win32 console color in a finally block
Matt Mackall <mpm@selenic.com> [Sat, 09 Apr 2011 15:52:19 -0500] rev 13918
tests: better output on timeouts
Formerly, timeouts would generate huge scrollback-destroying diffs and
weird -15 return codes in the summary. Now we simply report "timed
out".
John Mulligan <phlogistonjohn@asynchrono.us> [Mon, 07 Feb 2011 16:37:03 -0500] rev 13917
acl: add branch tests for the current behavior of acl extension
Adds simple tests for the acl.allow.branches and acl.deny.branches
configuration options of the acl extension.
Adrian Buehlmann <adrian@cadifra.com> [Wed, 06 Apr 2011 18:09:43 +0200] rev 13916
path_auditor: check filenames for basic platform validity (issue2755)
Example (on Windows):
$ hg parents
$ hg manifest tip
con.xml
$ hg update
abort: filename contains 'con', which is reserved on Windows: con.xml
Before this patch, update produced (as explained in issue2755):
$ hg update
abort: No usable temporary filename found
I've added the new function checkwinfilename to util.py and not to windows.py,
so that we can later call it when running on posix platforms too, for when we
decide to implement a (configurable) warning message on 'hg add'.
As per this patch, checkwinfilename is currently only used when running
on Windwows.
path_auditor calls checkosfilename, which is a NOP on posix and an alias for
checkwinfilename on Windows.
Idan Kamara <idankk86@gmail.com> [Fri, 08 Apr 2011 17:47:58 +0300] rev 13915
revset: rearrange code so functions are sorted alphabetically
Idan Kamara <idankk86@gmail.com> [Thu, 07 Apr 2011 19:24:16 +0300] rev 13914
revset: abort when tag or bookmark doesn't exist
Matt Mackall <mpm@selenic.com> [Thu, 07 Apr 2011 15:08:15 -0500] rev 13913
merge with stable
Thomas Arendsen Hein <thomas@intevation.de> [Thu, 07 Apr 2011 12:33:47 +0200] rev 13912
subrepo: prevent url normalization from removing // in ssh paths (issue2556)
Idan Kamara <idankk86@gmail.com> [Thu, 07 Apr 2011 17:57:38 +0300] rev 13911
bookmarks: change error messages to match those given by 'hg tag' commands
Matt Mackall <mpm@selenic.com> [Thu, 07 Apr 2011 14:43:19 -0500] rev 13910
audit: improve nested repo message
Idan Kamara <idankk86@gmail.com> [Thu, 07 Apr 2011 17:16:17 +0300] rev 13909
tags: remove another check for valid nodes
see 1aea86673dee
Idan Kamara <idankk86@gmail.com> [Thu, 07 Apr 2011 16:20:40 +0300] rev 13908
revset: replace for-loop with list comprehension
Matt Mackall <mpm@selenic.com> [Thu, 07 Apr 2011 09:47:30 -0500] rev 13907
subrepo: fix up svn test output
Martin Geisler <mg@aragost.com> [Thu, 07 Apr 2011 11:40:54 +0200] rev 13906
merge with stable
Md. O. Shayan <mdoshayan@gmail.com> [Thu, 07 Apr 2011 13:23:07 +0530] rev 13905
hgweb: fix inconsistant display of graphlog (issue1706)
Martin Geisler <mg@aragost.com> [Thu, 07 Apr 2011 11:17:55 +0200] rev 13904
hgrc.5: drop 'hgext.' prefix when talking about extensions
The first paragraph apply to all extensions, not just those in hgext.
The second paragraph can just use the simpler form to load mq.
Matt Mackall <mpm@selenic.com> [Wed, 06 Apr 2011 15:15:06 -0500] rev 13903
merge with crew
Matt Mackall <mpm@selenic.com> [Wed, 06 Apr 2011 15:14:51 -0500] rev 13902
merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 06 Apr 2011 15:13:49 -0500] rev 13901
merge with crew
Matt Mackall <mpm@selenic.com> [Wed, 06 Apr 2011 15:10:47 -0500] rev 13900
url: use a regex to hide unsupported ssh passwords (issue2754)
Martin Geisler <mg@aragost.com> [Wed, 06 Apr 2011 16:21:12 +0200] rev 13899
commit: note when files are missing
Before, you could experience the following strange interaction:
$ hg commit
nothing changed
$ hg merge
abort: outstanding uncommitted changes
which confused at least one user in #mercurial.
Martin Geisler <mg@aragost.com> [Wed, 06 Apr 2011 15:26:49 +0200] rev 13898
relink: correct unusual indentation
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 06 Apr 2011 12:48:59 +0200] rev 13897
hg: make parseurl() consistently return normalised path
Before this the path was only normalised when a fragment was used.
Jim Hague <jim.hague@acm.org> [Wed, 06 Apr 2011 11:30:08 +0100] rev 13896
bugzilla: more documentation formatting fixups
Correct typo in numbering list of access methods.
Convert a section reference and a template parameter reference into
literal text, for consistency with other use.
Matt Mackall <mpm@selenic.com> [Tue, 05 Apr 2011 16:11:40 -0500] rev 13895
merge with stable
Stefano Tortarolo <stefano.tortarolo@gmail.com> [Sun, 27 Mar 2011 13:34:20 +0200] rev 13894
rebase: don't mark file as removed if missing in parent's manifest (issue2725)
Idan Kamara <idankk86@gmail.com> [Mon, 04 Apr 2011 23:43:22 +0300] rev 13893
tags: no need to check for valid nodes
_findtags in localrepo checks that nodes exist in the revlog so we
can't get a LookupError here.
The output of 'hg tags' stays the same since tags to unknown nodes
didn't get printed before anyway due to ae3089cefaab.
Idan Kamara <idankk86@gmail.com> [Mon, 04 Apr 2011 22:51:10 +0300] rev 13892
localrepo: ignore tags to unknown nodes (issue2750)
Arne Babenhauserheide <bab@draketo.de> [Tue, 05 Apr 2011 19:48:44 +0200] rev 13891
merge: added info that hg help merge-tools shows the options for --tool
Adrian Buehlmann <adrian@cadifra.com> [Tue, 05 Apr 2011 11:55:52 +0200] rev 13890
util: move checklink() to posix.py and return False on Windows
Python added support for Windows 6.0 (Vista) symbolic links in 3.2 [1], but
even these symbolic links aren't what we can expect from a canonical
symbolic link, since creation requires SeCreateSymbolicLinkPrivilege,
which typically only admins have.
So we can safely assume that we don't have symbolic links on Windows.
[1] http://docs.python.org/py3k/library/os.html#os.symlink
Yun Lee <yunlee.bj@gmail.com> [Tue, 05 Apr 2011 16:55:47 +0800] rev 13889
util: make 'hg log -d --2' abort (issue2734)
Yun Lee <yunlee.bj@gmail.com> [Tue, 05 Apr 2011 12:40:47 +0800] rev 13888
help: sort help topics to make the output more readable (issue2751)
Martin Geisler <mg@aragost.com> [Tue, 05 Apr 2011 11:09:08 +0200] rev 13887
merge with stable
Martin Geisler <mg@aragost.com> [Tue, 05 Apr 2011 10:01:39 +0200] rev 13886
help/dates: use DATE as place-holder in help and abort texts
The use of "{datetime}" was unfortunate since I as a user never knew
if I was expected to do
hg log -d '>{2011-04-01}'
or
hg log -d '>2011-04-01'
The word "datetime" is also confusing -- calling it a date it much
simpler.
Martin Geisler <mg@aragost.com> [Tue, 05 Apr 2011 11:07:25 +0200] rev 13885
keyword: convert a verbatim block to a field list
Martin Geisler <mg@aragost.com> [Tue, 05 Apr 2011 10:22:58 +0200] rev 13884
bugzilla: convert a verbatim block to a field list
Martin Geisler <mg@aragost.com> [Tue, 05 Apr 2011 10:20:59 +0200] rev 13883
bugzilla: fix reST error introduced in 22d200e49b10
All blocks must be indented. Here we can use a field list instead of a
verbatim block for a real list layout.
Martin Geisler <mg@aragost.com> [Tue, 05 Apr 2011 10:04:19 +0200] rev 13882
help/dates: rephrase explanation of internal format
The old explanation referred to the two numbers as "unixtime" and
"offset" without really defining those terms.
Matt Mackall <mpm@selenic.com> [Mon, 04 Apr 2011 23:14:03 -0500] rev 13881
rebase: drop ancestor import
Matt Mackall <mpm@selenic.com> [Mon, 04 Apr 2011 16:58:24 -0500] rev 13880
rebase: drop unused p2 arg from rebasenode
Adrian Buehlmann <adrian@cadifra.com> [Mon, 04 Apr 2011 11:41:54 +0200] rev 13879
util: move checkexec() to posix.py and return False on Windows
Matt Mackall <mpm@selenic.com> [Mon, 04 Apr 2011 16:21:59 -0500] rev 13878
misc: replace .parents()[0] with p1()
Matt Mackall <mpm@selenic.com> [Mon, 04 Apr 2011 16:21:57 -0500] rev 13877
filectx: introduce p1/p2 convenience methods
Matt Mackall <mpm@selenic.com> [Mon, 04 Apr 2011 15:52:55 -0500] rev 13876
dirstate: add p1/p2 convenience methods
Matt Mackall <mpm@selenic.com> [Mon, 04 Apr 2011 15:30:54 -0500] rev 13875
rebase: use merge's ancestor parameter
Matt Mackall <mpm@selenic.com> [Mon, 04 Apr 2011 15:25:20 -0500] rev 13874
merge: add ancestor to the update function
This makes it easier to do rebase-like operations.
Matt Mackall <mpm@selenic.com> [Mon, 04 Apr 2011 14:21:54 -0500] rev 13873
revset: teach optimizer that closed is slowish
Idan Kamara <idankk86@gmail.com> [Mon, 04 Apr 2011 18:05:14 +0300] rev 13872
localrepo: tighten except clause when looking rev
Jim Hague <jim.hague@acm.org> [Mon, 04 Apr 2011 17:37:18 +0100] rev 13871
bugzilla: more documentation fixes
Correct formatting of the possible values of bugzilla.version.
Fix typo and polish XMLRPC/email mode description.
Jim Hague <jim.hague@acm.org> [Mon, 04 Apr 2011 13:31:37 +0100] rev 13870
bugzilla: correct sample configurations
Use consistent sample domains and wording in all configuration examples.
Add missing template and strip parameters to XMLRPC examples and correct
Bugzilla URL key in XMLRPC+email.
Matt Mackall <mpm@selenic.com> [Mon, 04 Apr 2011 09:39:22 -0500] rev 13869
date: fixup breakage from ">" fix
Matt Mackall <mpm@selenic.com> [Mon, 04 Apr 2011 08:26:08 -0500] rev 13868
merge with stable
Yun Lee <yunlee.bj@gmail.com> [Mon, 04 Apr 2011 00:23:21 +0800] rev 13867
log: abort for -d '>' or -d '<' (issue2749)
Edouard Gomez <ed.gomez@free.fr> [Mon, 04 Apr 2011 00:05:41 +0200] rev 13866
convert: add hg source bookmark test
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2011 23:47:17 +0900] rev 13865
hgweb: add missing bookmarks definition to coal/map
It shares most templates with paper style.
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2011 23:47:05 +0900] rev 13864
hgweb: add separate bookmarks listing to gitweb theme (based on 38c9837b1f75)
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2011 23:44:28 +0900] rev 13863
hgweb: add bookmark labels to gitweb theme (based on 270f57d35525)
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2011 23:42:05 +0900] rev 13862
hgweb: format page_nav of gitweb/error.tmpl and add missing links
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2011 22:53:20 +0900] rev 13861
hgweb: fix typo and inactive link in page_nav and page_header of gitweb's help
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2011 22:53:20 +0900] rev 13860
hgweb: add separate bookmarks listing to monoblue theme (based on 38c9837b1f75)
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2011 22:53:19 +0900] rev 13859
hgweb: fix typo in page-header of monoblue's help template
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2011 22:53:19 +0900] rev 13858
hgweb: add missing bookmarks templates to atom/rss styles
It's already referenced from paper style.
Adrian Buehlmann <adrian@cadifra.com> [Sun, 03 Apr 2011 01:57:17 +0200] rev 13857
subrepo: process merge substate in sorted order in submerge()
This ensures that subrepositories are pulled in a well defined
order when cloning the parent repository.
BEFORE:
$ hg clone http://hg.gerg.ca/allextensions
destination directory: allextensions
requesting all changes
adding changesets
adding manifests
adding file changes
added 10 changesets with 20 changes to 6 files
updating to branch default
pulling subrepo caseguard from http://bitbucket.org/alexandru/caseguard
real URL is https://bitbucket.org/alexandru/caseguard
requesting all changes
adding changesets
adding manifests
adding file changes
added 81 changesets with 100 changes to 13 files
pulling subrepo hg-prompt from http://bitbucket.org/sjl/hg-prompt
real URL is https://bitbucket.org/sjl/hg-prompt
requesting all changes
adding changesets
adding manifests
adding file changes
added 114 changesets with 176 changes to 35 files
pulling subrepo hgpaste from http://bitbucket.org/birkenfeld/hgpaste
real URL is https://bitbucket.org/birkenfeld/hgpaste
requesting all changes
adding changesets
adding manifests
adding file changes
added 18 changesets with 18 changes to 2 files
...
AFTER:
$ hg clone http://hg.gerg.ca/allextensions
destination directory: allextensions
requesting all changes
adding changesets
adding manifests
adding file changes
added 10 changesets with 20 changes to 6 files
updating to branch default
pulling subrepo Artemis from http://hg.mrzv.org/Artemis
requesting all changes
adding changesets
adding manifests
adding file changes
added 55 changesets with 108 changes to 47 files
...
Stefano Tortarolo <stefano.tortarolo@gmail.com> [Sat, 02 Apr 2011 11:07:05 +0200] rev 13856
rebase: add --tool argument for specifying merge tool
Adrian Buehlmann <adrian@cadifra.com> [Fri, 01 Apr 2011 22:44:58 +0200] rev 13855
revert: note that added files are left as is
Patrick Mezard <pmezard@gmail.com> [Fri, 01 Apr 2011 20:40:27 +0200] rev 13854
bugzilla: fix documentation typo
Matt Mackall <mpm@selenic.com> [Fri, 01 Apr 2011 13:25:44 -0500] rev 13853
merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 01 Apr 2011 13:25:26 -0500] rev 13852
merge with i18n
Wagner Bruna <wbruna@softwareexpress.com.br> [Fri, 01 Apr 2011 14:35:04 -0300] rev 13851
i18n-pt_BR: synchronized with 8d960240faac
Kevin Gessner <kevin@fogcreek.com> [Thu, 31 Mar 2011 15:49:53 -0400] rev 13850
hgweb: add base link to file log for paper and coal styles (issue2452)
Brodie Rao <brodie@bitheap.org> [Wed, 05 Jan 2011 00:18:36 +1100] rev 13849
HGPLAIN: allow exceptions to plain mode, like i18n, via HGPLAINEXCEPT
This makes it possible to gain the benefits of HGPLAIN for scripting
while preserving different behaviors like internationalization.
Brodie Rao <brodie@bitheap.org> [Thu, 31 Mar 2011 17:37:33 -0700] rev 13848
url: be stricter about detecting schemes
While the URL parser is very forgiving about what characters are
allowed in each component, it's useful to be strict about the scheme
so we don't accidentally interpret local paths with colons as URLs.
This restricts schemes to containing alphanumeric characters, dashes,
pluses, and dots (as specified in RFC 2396).
Matt Mackall <mpm@selenic.com> [Fri, 01 Apr 2011 12:42:02 -0500] rev 13847
Added signature for changeset b032bec2c0a6
Matt Mackall <mpm@selenic.com> [Fri, 01 Apr 2011 12:41:56 -0500] rev 13846
Added tag 1.8.2 for changeset b032bec2c0a6
Matt Mackall <mpm@selenic.com> [Fri, 01 Apr 2011 11:45:29 -0500] rev 13845
merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 01 Apr 2011 11:45:07 -0500] rev 13844
merge with i18n
Wagner Bruna <wbruna@yahoo.com> [Fri, 01 Apr 2011 07:53:15 -0300] rev 13843
i18n-pt_BR: synchronized with 794f4476b974
Martin Geisler <mg@aragost.com> [Fri, 01 Apr 2011 12:30:40 +0200] rev 13842
bugzilla: fix bad reST markup
The indented second line turned the first line into a description
header.
Martin Geisler <mg@aragost.com> [Fri, 01 Apr 2011 12:27:12 +0200] rev 13841
bugzilla: markup literal text as such
Martin Geisler <mg@aragost.com> [Fri, 01 Apr 2011 12:21:59 +0200] rev 13840
merge with stable
Martin Geisler <mg@aragost.com> [Fri, 01 Apr 2011 12:18:37 +0200] rev 13839
help/hgweb: add pointer to hgrc(5) location
Martin Geisler <mg@aragost.com> [Fri, 01 Apr 2011 12:14:42 +0200] rev 13838
patchbomb, help/hgweb: do not refer to config files as hgrc files
Martin Geisler <mg@aragost.com> [Fri, 01 Apr 2011 12:09:11 +0200] rev 13837
bugzilla: refer to hgrc(5) man page with normal notation
Martin Geisler <mg@aragost.com> [Fri, 01 Apr 2011 12:07:37 +0200] rev 13836
bugzilla: markup section names as literal text
Martin Geisler <mg@aragost.com> [Fri, 01 Apr 2011 12:05:19 +0200] rev 13835
bugzilla: show usermap syntax more clearly
Martin Geisler <mg@aragost.com> [Fri, 01 Apr 2011 12:03:23 +0200] rev 13834
bugzilla: use standard section.name notation
Martin Geisler <mg@aragost.com> [Fri, 01 Apr 2011 12:00:57 +0200] rev 13833
bugzilla: prefix each config option with section
Martin Geisler <mg@aragost.com> [Fri, 01 Apr 2011 11:59:18 +0200] rev 13832
bugzilla: fix reStructuredText errors introduced in 60256f7f30c1
Matt Mackall <mpm@selenic.com> [Thu, 31 Mar 2011 15:24:06 -0500] rev 13831
changegroup: introduce bundler objects
This makes the bundler pluggable at lower levels.
Matt Mackall <mpm@selenic.com> [Thu, 31 Mar 2011 14:25:26 -0500] rev 13830
changegroup: combine lookup functions
Matt Mackall <mpm@selenic.com> [Thu, 31 Mar 2011 13:56:05 -0500] rev 13829
changegroup: unnest flookup
Matt Mackall <mpm@selenic.com> [Thu, 31 Mar 2011 12:04:54 -0500] rev 13828
changegroup: unnest clookup and mlookup like changegroupsubset
Matt Mackall <mpm@selenic.com> [Thu, 31 Mar 2011 10:43:53 -0500] rev 13827
url: nuke some newly-introduced underbars in identifiers
Brodie Rao <brodie@bitheap.org> [Wed, 30 Mar 2011 20:03:05 -0700] rev 13826
url: refactor util.drop_scheme() and hg.localpath() into url.localpath()
This replaces util.drop_scheme() with url.localpath(), using url.url for
parsing instead of doing it on its own. The function is moved from
util to url to avoid an import cycle.
hg.localpath() is removed in favor of using url.localpath(). This
provides more consistent behavior between "hg clone" and other
commands.
To preserve backwards compatibility, URLs like bundle://../foo still
refer to ../foo, not /foo.
If a URL contains a scheme, percent-encoded entities are decoded. When
there's no scheme, all characters are left untouched.
Comparison of old and new behaviors:
URL drop_scheme() hg.localpath() url.localpath()
=== ============= ============== ===============
file://foo/foo /foo foo/foo /foo
file://localhost:80/foo /foo localhost:80/foo /foo
file://localhost:/foo /foo localhost:/foo /foo
file://localhost/foo /foo /foo /foo
file:///foo /foo /foo /foo
file://foo (empty string) foo /
file:/foo /foo /foo /foo
file:foo foo foo foo
file:foo%23bar foo%23bar foo%23bar foo#bar
foo%23bar foo%23bar foo%23bar foo%23bar
/foo /foo /foo /foo
Windows-related paths on Windows:
URL drop_scheme() hg.localpath() url.localpath()
=== ============= ============== ===============
file:///C:/foo C:/C:/foo /C:/foo C:/foo
file:///D:/foo C:/D:/foo /D:/foo D:/foo
file://C:/foo C:/foo C:/foo C:/foo
file://D:/foo C:/foo D:/foo D:/foo
file:////foo/bar //foo/bar //foo/bar //foo/bar
//foo/bar //foo/bar //foo/bar //foo/bar
\\foo\bar //foo/bar //foo/bar \\foo\bar
Windows-related paths on other platforms:
file:///C:/foo C:/C:/foo /C:/foo C:/foo
file:///D:/foo C:/D:/foo /D:/foo D:/foo
file://C:/foo C:/foo C:/foo C:/foo
file://D:/foo C:/foo D:/foo D:/foo
file:////foo/bar //foo/bar //foo/bar //foo/bar
//foo/bar //foo/bar //foo/bar //foo/bar
\\foo\bar //foo/bar //foo/bar \\foo\bar
For more information about file:// URL handling, see:
http://www-archive.mozilla.org/quality/networking/testing/filetests.html
Related issues:
- issue1153: File URIs aren't handled correctly in windows
This patch should preserve the fix implemented in
2770d03ae49f. However, it goes a step further and "promotes"
Windows-style drive letters from being interpreted as host names to
being part of the path.
- issue2154: Cannot escape '#' in Mercurial URLs (#1172 in THG)
The fragment is still interpreted as a revision or a branch, even in
paths to bundles. However, when file: is used, percent-encoded
entities are decoded, so file:test%23bundle.hg can refer to
test#bundle.hg ond isk.
Brodie Rao <brodie@bitheap.org> [Wed, 30 Mar 2011 20:02:17 -0700] rev 13825
url: use url.url in ui.expandpath()
Brodie Rao <brodie@bitheap.org> [Wed, 30 Mar 2011 20:02:09 -0700] rev 13824
hg: use url.url to parse branch names in parseurl()
Brodie Rao <brodie@bitheap.org> [Wed, 30 Mar 2011 20:02:07 -0700] rev 13823
hg: look up schemes using url.url
Brodie Rao <brodie@bitheap.org> [Wed, 30 Mar 2011 20:01:47 -0700] rev 13822
schemes: prevent one letter schemes from being interpreted as drive letters
To allow one letter schemes, this makes the extension override
url.has_drive_letter() to return False for any schemes defined.
On Windows, the extension will raise util.Abort for any schemes that
conflict with existing drive letters.
Brodie Rao <brodie@bitheap.org> [Wed, 30 Mar 2011 20:01:46 -0700] rev 13821
hgweb: use url.url when setting CGI environment variables
Brodie Rao <brodie@bitheap.org> [Wed, 30 Mar 2011 20:01:44 -0700] rev 13820
url: use url.url in proxyhandler
Brodie Rao <brodie@bitheap.org> [Wed, 30 Mar 2011 20:01:35 -0700] rev 13819
httprepo/sshrepo: use url.url
Like the previous patch to getauthinfo(), this also makes
username/password parsing more forgiving for SSH URLs.
This also opens up the possibility of allowing non-numeric ports,
since the URL parser has no problem handling them.
Related issues:
- issue851: @ in password in http url
- issue2055: nonnumeric port bug with https protocol
Brodie Rao <brodie@bitheap.org> [Wed, 30 Mar 2011 20:01:34 -0700] rev 13818
url: use url.url in url.open()
Brodie Rao <brodie@bitheap.org> [Wed, 30 Mar 2011 20:01:31 -0700] rev 13817
url: abort on file:// URLs with non-localhost hosts
Brodie Rao <brodie@bitheap.org> [Wed, 30 Mar 2011 20:00:24 -0700] rev 13816
url: special case bundle URL parsing to preserve backwards compatibility
This allows bundle://../foo to continue to refer to the relative path
../foo (bundle URLs do not take host names).
Brodie Rao <brodie@bitheap.org> [Wed, 30 Mar 2011 20:00:23 -0700] rev 13815
url: add trailing slashes to URLs with hostnames that don't have one
This works around a potential issue in Python 2.4 where cloning a repo
with a URL like http://foo:8080 would cause urllib2 to query on
http://foo:8080?cmd=capabilities instead of
http://foo:8080/?cmd=capabilities.
In the past, this issue has been masked by the fact that
url.getauthinfo() added a trailing slash when it was missing.
Brodie Rao <brodie@bitheap.org> [Wed, 30 Mar 2011 19:50:56 -0700] rev 13814
url: move drive letter checking into has_drive_letter() for extensions
This will let the schemes extension override drive letter detection to
allow single letter schemes.
Matt Mackall <mpm@selenic.com> [Thu, 31 Mar 2011 10:03:24 -0500] rev 13813
changegroup: unnest some lookup functions
Matt Mackall <mpm@selenic.com> [Thu, 31 Mar 2011 09:59:56 -0500] rev 13812
changegroup: minor ordering and renaming changes for similarity
This eliminates some needless differences between the two changegroup variants
Matt Mackall <mpm@selenic.com> [Thu, 31 Mar 2011 09:56:27 -0500] rev 13811
changegroup: remove nodeiter temporary
Matt Mackall <mpm@selenic.com> [Wed, 30 Mar 2011 17:50:34 -0500] rev 13810
changegroup: refactor prune as a filter
Matt Mackall <mpm@selenic.com> [Wed, 30 Mar 2011 17:50:27 -0500] rev 13809
changegroup: add first logic to send file header
This will allow us to later change how we filter needed file nodes
Matt Mackall <mpm@selenic.com> [Wed, 30 Mar 2011 14:42:41 -0500] rev 13808
url: fix tests
Matt Mackall <mpm@selenic.com> [Wed, 30 Mar 2011 13:34:39 -0500] rev 13807
url: deal with drive letters
David Soria Parra <dsp@php.net> [Mon, 14 Mar 2011 23:50:28 +0100] rev 13806
bookmarks: do not forward merged bookmark (issue1877)
Matt Mackall <mpm@selenic.com> [Wed, 30 Mar 2011 13:23:24 -0500] rev 13805
merge with stable
Kevin Berridge <kevin.w.berridge@gmail.com> [Mon, 28 Mar 2011 20:56:56 -0400] rev 13804
pull: new output message when there are multiple branches
Pull outputs a slightly new message when there are multiple branches and
the current branch has many heads:
(run 'hg heads .' to see heads, 'hg merge' to merge)
This message adds the "." in hg heads to encourage you to consider only the
current branch's heads.
Kevin Berridge <kevin.w.berridge@gmail.com> [Fri, 11 Mar 2011 20:43:12 -0500] rev 13803
pull: don't suggest running hg merge when new heads are on different branches
After a pull when new heads are added but no head is added on the current
branch, the "run 'hg merge'" message can be misleading. This patch doesn't
output the merge message in that scenario.
Jim Hague <jim.hague@acm.org> [Wed, 30 Mar 2011 09:49:45 +0100] rev 13802
bugzilla: add modified XMLRPC mode that uses email to send bug comments.
If Bugzilla has its email interface configured, an email can be used
to update bugs. If the From: address in the email matches a valid user
email, Bugzillas make the update as that user. So comments attached to a
bug appear under the name of the user making the change, and the user
does not receive email about the change, exactly as if they had made
the change via the web interface.
So add a modified XMLRPC mode that uses email to modify bugs. The format
of the mails is documented in the Bugzilla email_in.pl specification.
Briefly, initial non-blank lines in the message body starting
'@<field> = <value> modify bug fields. A blank line signals the end of
the command lines, and the rest of the message is used as bug comment.
Invoke the same Mercurial user to Bugzilla user email mapping
currently used in the MySQL mode.
All other processing - checking the bug numbers, checking user ids, etc.
continues to be done via XMLRPC.
Jim Hague <jim.hague@acm.org> [Wed, 30 Mar 2011 09:49:45 +0100] rev 13801
bugzilla: add XMLRPC interface.
Add support for access to Bugzilla via the XMLRPC interface.
This requires a single username and password used to log in to Bugzilla,
plus the URL of the Bugzilla installation. Commit messages are added to
bugs as before, but security only permits them to be added as the
username used to log in.
Jim Hague <jim.hague@acm.org> [Wed, 30 Mar 2011 09:49:45 +0100] rev 13800
bugzilla: localise all MySQL direct access inside access class.
Prepare for the addition of other Bugzilla access methods by localising
direct MySQL database access inside an access class.
Provide a base access class largely to document the methods required for
a class implementing a particular access method.
Rename the 'bugzilla_<version>' classes to 'bzmysql_<version>' to
emphasise that they are doing access via direct manipulation of a
MySQL database.
Jim Hague <jim.hague@acm.org> [Wed, 30 Mar 2011 09:49:45 +0100] rev 13799
bugzilla: keep bug IDs in set.
Bug IDs are collected into a set, and then silently converted in
filter_real_bug_ids() into a list. For consistency, keep them in
a set throughout and update the docstrings to say that.
Jim Hague <jim.hague@acm.org> [Wed, 30 Mar 2011 09:49:45 +0100] rev 13798
bugzilla: rename filter_unknown_bug_ids to reflect its actual purpose.
The method really removes from the list of bugs any that already have
comment text referencing the changeset in question. Rename it to
filter_cset_known_bug_ids().
Adrian Buehlmann <adrian@cadifra.com> [Tue, 29 Mar 2011 19:20:28 +0200] rev 13797
test-paths.t: 'file:' disables [paths] entries for clone dest
timeless@gmail.com [Tue, 29 Mar 2011 16:33:10 +0000] rev 13796
hgwebdir: handle IOErrors from localrepo while enumerating
Repository() raises a number of IOErrors in addition to RepoErrors.
these are just as uninteresting as RepoErrors and should be ignored
The easiest case of this is a repo whose .hg/ directory is -rx
Adrian Buehlmann <adrian@cadifra.com> [Mon, 28 Mar 2011 15:54:22 +0200] rev 13795
set NOT_CONTENT_INDEXED on .hg dir (issue2694)
when running on Windows
Yuya Nishihara <yuya@tcha.org> [Wed, 30 Mar 2011 02:22:15 +0900] rev 13794
hgweb: add bookmark labels to monoblue theme (based on 270f57d35525)
Martin Geisler <mg@aragost.com> [Tue, 29 Mar 2011 16:25:48 +0200] rev 13793
merge with stable
Daniel Atallah <daniel.atallah@gmail.com> [Mon, 28 Mar 2011 23:16:20 -0400] rev 13792
convert/mtn: Fix conversion of large files from mtn (broken in ed97955e0c04)
"mtn automate stdio" will break output larger than 32kB into several packets.
This ensures that we are processing all the output on the main stream and not
only the last packet.
timeless@gmail.com [Tue, 29 Mar 2011 16:45:23 +0300] rev 13791
mq: fix qselect help for qguard
Brendan Cully <brendan@kublai.com> [Mon, 28 Mar 2011 21:36:29 -0700] rev 13790
Fix transplant error message to correspond with test
Luke Plant <L.Plant.98@cantab.net> [Mon, 28 Mar 2011 21:17:32 +0100] rev 13789
transplant: fix crash if filter script munges log file
This fixes an UnboundLocalError crash if the filter script removes the
'User' or 'Date' lines from the log file.
Matt Mackall <mpm@selenic.com> [Mon, 28 Mar 2011 11:18:56 -0500] rev 13788
changegroup: fold linkrev helper into lookup functions
Matt Mackall <mpm@selenic.com> [Mon, 28 Mar 2011 11:18:56 -0500] rev 13787
changegroup: fold filenode collector into mlookup
Matt Mackall <mpm@selenic.com> [Mon, 28 Mar 2011 11:18:56 -0500] rev 13786
changegroup: roll changegroup.collector into lookup functions
Matt Mackall <mpm@selenic.com> [Mon, 28 Mar 2011 11:18:56 -0500] rev 13785
changegroup: add revlog to the group callback
Matt Mackall <mpm@selenic.com> [Mon, 28 Mar 2011 11:18:56 -0500] rev 13784
changegroup: move sorting down into group
Matt Mackall <mpm@selenic.com> [Mon, 28 Mar 2011 11:18:56 -0500] rev 13783
changegroup: fold progress meter into callbacks
progress meters now start at 1 rather than 0
Matt Mackall <mpm@selenic.com> [Mon, 28 Mar 2011 11:18:56 -0500] rev 13782
changegroup: combine infocollect and lookup callbacks
Matt Mackall <mpm@selenic.com> [Thu, 24 Mar 2011 17:16:30 -0500] rev 13781
changegroup: drop unused fullrev
This is unfinished and unused and complicates expanding the wire protocol.
Idan Kamara <idankk86@gmail.com> [Sun, 27 Mar 2011 23:48:58 +0200] rev 13780
util: dates cannot consist entirely of whitespace (issue2732)
Daniel Atallah <daniel.atallah@gmail.com> [Fri, 25 Mar 2011 15:49:43 -0400] rev 13779
convert/mtn: convert suspended branches as closed branches
Monotone treats branch closing ("suspending") in a similar manner to how we do
in mercurial - a cert is added to a revision that marks the branch to be hidden.
If a subsequent commit is made, the branch is effectively reopened.
Stefano Tortarolo <stefano.tortarolo@gmail.com> [Sun, 27 Mar 2011 13:34:20 +0200] rev 13778
rebase: don't mark file as removed if missing in parent's manifest (issue2725)
Adrian Buehlmann <adrian@cadifra.com> [Sun, 27 Mar 2011 12:22:07 +0200] rev 13777
windows: use win32.unlink in unlinkpath()
os.unlink fails to remove files with READONLY attribute
Adrian Buehlmann <adrian@cadifra.com> [Sun, 27 Mar 2011 01:47:58 +0100] rev 13776
win32: remove READONLY attribute on unlink
Adrian Buehlmann <adrian@cadifra.com> [Sun, 27 Mar 2011 01:17:48 +0100] rev 13775
windows: move unlink to win32.py
no code change
Martin Geisler <mg@lazybytes.net> [Sun, 27 Mar 2011 12:59:25 +0200] rev 13774
ui: label prompts, default to yellow prompts
Martin Geisler <mg@lazybytes.net> [Sun, 27 Mar 2011 12:41:55 +0200] rev 13773
record: replace poor man's if-statement with real if-statement
Brodie Rao <brodie@bitheap.org> [Fri, 25 Mar 2011 22:59:09 -0700] rev 13772
url: use url.url in hidepassword() and removeauth()
Brodie Rao <brodie@bitheap.org> [Fri, 25 Mar 2011 22:59:04 -0700] rev 13771
subrepos: use url.url when normalizing repo paths
This works around an issue in older versions of Python that would
strip double slashes from SSH URLs when using urlunparse() on a parsed
URL.
Related issues:
- issue1755: WinXP: cmd line hg 1.3 clone of subrepo fails, due to %5C
'\'? (originally fixed by f783bb979fb3).
Brodie Rao <brodie@bitheap.org> [Fri, 25 Mar 2011 22:58:56 -0700] rev 13770
url: provide url object
This adds a url object that re-implements urlsplit() and
unsplit(). The implementation splits out usernames, passwords, and
ports.
The implementation is based on the behavior specified by RFC
2396[1]. However, it is much more forgiving than the RFC's
specification; it places no specific restrictions on what characters
are allowed in each segment of the URL other than what is necessary to
split the URL into its constituent parts.
[1]: http://www.ietf.org/rfc/rfc2396.txt
Adrian Buehlmann <adrian@cadifra.com> [Wed, 23 Feb 2011 23:30:48 +0100] rev 13769
cmdutil: fix mode handling in make_file
Matt Mackall <mpm@selenic.com> [Sat, 26 Mar 2011 17:12:02 -0500] rev 13768
revlog: change variable name to avoid reuse
Adrian Buehlmann <adrian@cadifra.com> [Sat, 26 Mar 2011 10:59:33 +0100] rev 13767
debugstate: add new --datesort option
sorts the output lines by mtime, then by filename
Stefano Tortarolo <stefano.tortarolo@gmail.com> [Sat, 26 Mar 2011 13:05:17 +0100] rev 13766
rebase: restore mq guards after rebasing (issue2107)
Guards on rebased mq patches were lost.
This patch restores them after the qimporting step.
Idan Kamara <idankk86@gmail.com> [Fri, 25 Mar 2011 22:18:05 +0200] rev 13765
tests: no need to explicitly export HOME in test files
the test runner ensures that HOME is set to a temp dir
Idan Kamara <idankk86@gmail.com> [Fri, 25 Mar 2011 22:15:37 +0200] rev 13764
tests: set HOME to the test temp dir (issue2707)
Adrian Buehlmann <adrian@cadifra.com> [Fri, 25 Mar 2011 15:03:53 +0100] rev 13763
dirstate: eliminate _lastnormal set
We can get rid of the _lastnormal set by using the filesystem mtimes to
identify the problematic "lastnormal" files on status(), forcing a file
content-comparison if the file's mtime timeslot is equal to _lastnormaltime.
Patrick Mezard <pmezard@gmail.com> [Fri, 25 Mar 2011 16:46:19 +0100] rev 13762
test-extdiff: fix 5c0e1222e7c0 temporary dir output
Daniel Atallah <daniel.atallah@gmail.com> [Fri, 25 Mar 2011 10:13:46 -0400] rev 13761
convert/mtn: avoid unnecessary initial test of mtn repo
As soon as before() is called, we'll know if there is a problem (and get a
better error message).
Daniel Atallah <daniel.atallah@gmail.com> [Wed, 23 Mar 2011 14:26:56 -0400] rev 13760
convert/mtn: add support for using monotone's "automate stdio" when available
Currently the convert extension spawns a new mtn process for each
operation. For a large repository, this ends up being hundreds of
thousands of processes. The following enables usage of monotone's
"automate stdio" functionality - documented at:
http://www.monotone.ca/docs/Automation.html#index-mtn-automate-stdio-188
The effect is that (after determining that a new enough mtn executable
is available) a single long-running mtn process is used for all the
operations, using stdin/stdout to send commands and read output.
This has a pretty significant effect on the performance of some parts
of the conversion process.
Daniel Atallah <daniel.atallah@gmail.com> [Thu, 24 Mar 2011 16:54:09 -0400] rev 13759
convert: add support to common commandline to access stdin of the process
jfh <jason@jasonfharris.com> [Mon, 21 Mar 2011 17:03:16 +0100] rev 13758
extdiff: use absolute paths for any temporary files
This allows the use of p4merge amongst possible other external tools.
Edouard Gomez <ed.gomez@free.fr> [Fri, 25 Mar 2011 01:38:47 +0100] rev 13757
convert: add bookmark support to hg source
Edouard Gomez <ed.gomez@free.fr> [Fri, 25 Mar 2011 01:38:43 +0100] rev 13756
convert: add bookmarks reading support to git backend
Matt Mackall <mpm@selenic.com> [Thu, 24 Mar 2011 15:12:51 -0500] rev 13755
ssh: fix password test
We don't support passwords in ssh URLs, and neither do some versions
of Python's urllib. Since we don't actually care much here, punt with
a glob in the test.
Adrian Buehlmann <adrian@cadifra.com> [Thu, 24 Mar 2011 18:39:54 +0100] rev 13754
dirstate: check mtime when adding to _lastnormal
- consistently use mtime as mapped to dirstate granularity (needed for
filesystems like NTFS, which have sub-second resolution)
- no need to add files with mtime < _lastnormaltime
- improve comments
Martin Geisler <mg@aragost.com> [Thu, 24 Mar 2011 18:17:49 +0100] rev 13753
subrepo: simplify hgsubrepo._get a little
Lee Cantey <lcantey@gmail.com> [Thu, 24 Mar 2011 08:51:58 -0700] rev 13752
Fix expected url to match test.
Patrick Mezard <pmezard@gmail.com> [Thu, 24 Mar 2011 10:28:29 +0100] rev 13751
patch: deprecate ui.patch / external patcher feature
Why?
- Mercurial internal patcher works correctly for regular patches and git
patches, is much faster at least on Windows and is more extensible.
- In theory, the external patcher can be used to handle exotic patch formats. I
do not know any and have not heard about any such use in years.
- Most patch programs cannot handle git format patches, which makes the API
caller to decide either to ignore ui.patch by calling patch.internalpatch()
directly, or take the risk of random failures with valid inputs.
- One thing a patch program could do Mercurial patcher cannot is applying with
--reverse. Apparently several shelve like extensions try to use that,
including passing the "reverse" option to Mercurial patcher, which has been
removed mid-2009. I never heard anybody complain about that, and would prefer
reimplementing it anyway.
And from the technical perspective:
- The external patcher makes everything harder to maintain and implement. EOL
normalization is not implemented, and I would bet file renames, if supported
by the patcher, are not correctly recorded in the dirstate.
- No tests.
How?
- Remove related documentation
- Clearly mark patch.externalpatch() as private
- Remove the debuginstall check. This deprecation request was actually
triggered by this last point. debuginstall is the only piece of code patching
without a repository. When migrating to an integrated patch() + updatedir()
call, this was really a showstopper, all workarounds were either ugly or
uselessly complicated to implement. If we do not support external patcher
anymore, the debuginstall check is not useful anymore.
- Remove patch.externalpatch() after 1.9 release.
Matt Mackall <mpm@selenic.com> [Wed, 23 Mar 2011 19:28:16 -0500] rev 13750
# User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
# Date 1289564504 -3600
# Node ID b75264c15cc888cf38c3c7b8f619801e3c2589c7
# Parent 89b2e5d940f669e590096c6be70eee61c9172fff
revsets: overload the branch() revset to also take a branch name.
This should only change semantics in the specific case of a tag/branch
conflict where the tag wasn't done on the branch with the same
name. Previously, branch(whatever) would resolve to the branch of the
tag in that case, whereas now it will resolve to the branch of the
name. The previous behaviour, while documented, seemed very
counter-intuitive to me.
An alternate approach would be to introduce a new revset such as
branchname() or namedbranch(). While this would retain backwards
compatibility, the distinction between it and branch() would not be
readily apparent to users. The most intuitive behaviour would be to
have branch(x) require 'x' to be a branch name, and something like
branchof(x) or samebranch(x) do what branch(x) currently
does. Unfortunately, our backwards compatibility guarantees prevent us
from doing that.
Please note that while 'hg tag' guards against shadowing a branch, 'hg
branch' does not. Besides, even if it did, that wouldn't solve the
issue of conversions with such tags and branches...
Adrian Buehlmann <adrian@cadifra.com> [Wed, 23 Mar 2011 22:58:40 +0100] rev 13749
test-commit-multiple.t: improve committwice.py
- fix bug in replacebyte: parameter fn wasn't used (no harm done)
- remove unneeded matcher
- remove unused local n
- increase test coverage a bit with a second file and some sleeping
- show files changed in revisions
- move print statements out of racy path to make sure it's as racy as possible
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Wed, 23 Mar 2011 23:05:32 +0100] rev 13748
osutil: replace #import with #include, and add a check for it
Patrick Mezard <pmezard@gmail.com> [Wed, 23 Mar 2011 23:33:14 +0100] rev 13747
code indentation fixes
Edouard Gomez <ed.gomez@free.fr> [Wed, 07 Jul 2010 00:06:59 +0200] rev 13746
convert: add bookmark support to the hg sink
Edouard Gomez <ed.gomez@free.fr> [Wed, 07 Jul 2010 00:06:59 +0200] rev 13745
convert: add bookmark support to main command
During conversion, read bookmarks from source repo, filter them and push the
resulting set of bookmarks to destination sink.
Edouard Gomez <ed.gomez@free.fr> [Wed, 07 Jul 2010 00:06:59 +0200] rev 13744
convert: add bookmark support to common sink/source implementation
Adrian Buehlmann <adrian@cadifra.com> [Wed, 23 Mar 2011 11:22:29 +0100] rev 13743
dirstate: reset _lastnormal and _lastnormaltime
on write, invalidate, and clear
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Wed, 23 Mar 2011 16:06:55 +0100] rev 13742
discovery: avoid discovery when local graph is a subset of remote
Immediately sends local's heads to the server to check whether the server knows them all.
If it does, we can call getbundle immediately.
Interesting test output changes are:
- added 1 changesets with 0 changes to 1 files (+1 heads)
+ added 1 changesets with 0 changes to 0 files (+1 heads)
-> The new getbundle() actually fixes a bug vs. changegroupsubset() in that it no longer
returns unnecessary files when file revs are reused.
warning: repository is unrelated
+ requesting all changes
-> The new use of common instead of bases correctly indicates that an unrelated pull
gets all changes from the server.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Wed, 23 Mar 2011 16:02:11 +0100] rev 13741
wireproto: add getbundle() function
getbundle(common, heads) -> bundle
Returns the changegroup for all ancestors of heads which are not ancestors of common. For both
sets, the heads are included in the set.
Intended to eventually supercede changegroupsubset and changegroup. Uses heads of common region
to exclude unwanted changesets instead of bases of desired region, which is more useful and
easier to implement.
Designed to be extensible with new optional arguments (which will have to be guarded by
corresponding capabilities).
Matt Mackall <mpm@selenic.com> [Wed, 23 Mar 2011 12:38:36 -0500] rev 13740
merge with stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Wed, 23 Mar 2011 13:58:33 -0300] rev 13739
i18n-pt_BR: synchronized with 6783f47d90dd
Wagner Bruna <wbruna@softwareexpress.com.br> [Wed, 23 Mar 2011 11:57:10 -0300] rev 13738
merge with i18n
Stefano Tortarolo <stefano.tortarolo@gmail.com> [Mon, 14 Mar 2011 23:48:17 +0100] rev 13737
i18n-it: synchronized with adf3c4401c5d
Matt Mackall <mpm@selenic.com> [Wed, 23 Mar 2011 09:41:58 -0500] rev 13736
osutil: fix up check-code issues
Matt Mackall <mpm@selenic.com> [Wed, 23 Mar 2011 09:34:22 -0500] rev 13735
dirstate: flush _lastnormal when we see newer filesystem times
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Wed, 23 Mar 2011 09:43:34 +0100] rev 13734
util: add Mac-specific check whether we're in a GUI session (issue2553)
The previous test assumed that 'os.name' was "mac" on Mac OS X. This
is not the case; 'mac' was classic Mac OS, whereas Mac OS X has 'os.name'
be 'posix'.
Please note that this change will break Mercurial on hypothetical
non-Mac OS X deployments of Darwin.
Credit to Brodie Rao for thinking of CGSessionCopyCurrentDictionary()
and Kevin Bullock for testing.
Stefano Tortarolo <stefano.tortarolo@gmail.com> [Wed, 23 Mar 2011 01:14:43 +0100] rev 13733
rebase: allow for rebasing descendants onto ancestors on different named branches
So far we've been denying rebasing descendants onto ancestors, but there are
situations in which this kind of operation makes perfect sense to me.
Let's say we have made a commit (or more), that belongs to branch 'dev', on
top of the named branch 'stable':
... a (stable) - b (dev)
but then we realize that b should belong to branch 'stable'.
In these cases a rebase means: "move these csets from named branch A to named
branch B" and there isn't a valid reason to deny it.
This patch basically doesn't block it, if source and destination are
on different named branches.
The old behaviour still applies for rebases across the same named branch.
Can you think of any tricky corner cases in which this new behaviour could
lead to problems? (I bet there are tons of them...)
By the way, I created a brand new .t because I feel there should be more
tests I can't think of at the moment.
Markus F.X.J. Oberhumer <markus@oberhumer.com> [Wed, 23 Mar 2011 02:33:24 +0100] rev 13732
bdiff.c: rename all variables which hold a hash value to "hash"
Markus F.X.J. Oberhumer <markus@oberhumer.com> [Wed, 23 Mar 2011 02:33:23 +0100] rev 13731
bdiff.c: use unsigned arithmetic for hash computation
Signed integer overflow is undefined in C.
Markus F.X.J. Oberhumer <markus@oberhumer.com> [Wed, 23 Mar 2011 02:33:22 +0100] rev 13730
bdiff.c: cast to unsigned char when computing hash value
Markus F.X.J. Oberhumer <markus@oberhumer.com> [Wed, 23 Mar 2011 02:33:21 +0100] rev 13729
bdiff.c: make all local functions static
Matt Mackall <mpm@selenic.com> [Wed, 23 Mar 2011 09:20:40 -0500] rev 13728
merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 22 Mar 2011 21:27:51 -0500] rev 13727
debugbundle: fix up long line caught by check-code
Matt Mackall <mpm@selenic.com> [Tue, 22 Mar 2011 21:26:19 -0500] rev 13726
wireproto: avoid naked excepts
Stefano Tortarolo <stefano.tortarolo@gmail.com> [Tue, 15 Mar 2011 14:55:16 +0100] rev 13725
mq: fix typo in docstring
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Tue, 22 Mar 2011 09:22:29 +0100] rev 13724
commands: add debugbundle command
Lists ids contained in a bundle file. Useful for testing bundle-related commands.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Tue, 22 Mar 2011 09:22:21 +0100] rev 13723
wireproto: add known([id]) function
known([Node]) -> [1/0]
Returns 1/0 for each node, indicating whether it's known by the server.
Needed for new discovery protocols introduced in later patches.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Tue, 22 Mar 2011 07:40:02 +0100] rev 13722
wireproto: fix decodelist to properly return empty list
Needed by tests for next patch introducing known().
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Tue, 22 Mar 2011 07:38:32 +0100] rev 13721
wireproto: fix handling of '*' args for HTTP and SSH
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Tue, 22 Mar 2011 07:38:32 +0100] rev 13720
debug: add debugwireargs to test argument passing over the wire
Tests argument passing locally, via HTTP, and via SSH. This is mainly preparation
for the next patch.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Tue, 22 Mar 2011 07:37:56 +0100] rev 13719
sshserver: drop unnecessary line
Matt Mackall <mpm@selenic.com> [Tue, 22 Mar 2011 12:00:38 -0500] rev 13718
merge: avoid unlinking destination of merge when case changes (issue2715)
Matt Mackall <mpm@selenic.com> [Tue, 22 Mar 2011 11:59:43 -0500] rev 13717
dirstate: introduce a public case normalizing method
Matt Mackall <mpm@selenic.com> [Sun, 20 Mar 2011 20:25:41 -0500] rev 13716
changegroup: minor cleanups
Matt Mackall <mpm@selenic.com> [Sun, 20 Mar 2011 20:21:19 -0500] rev 13715
repair: revlog has an iterator
Matt Mackall <mpm@selenic.com> [Sun, 20 Mar 2011 20:17:57 -0500] rev 13714
changegroup: fix leftover from delta read
Matt Mackall <mpm@selenic.com> [Sun, 20 Mar 2011 20:16:51 -0500] rev 13713
changegroup: drop expensive redundant usage of readdelta for progress
Matt Mackall <mpm@selenic.com> [Sun, 20 Mar 2011 19:43:28 -0500] rev 13712
changegroupsubset: use manifest.readfast to simplify collector
Matt Mackall <mpm@selenic.com> [Sun, 20 Mar 2011 19:43:28 -0500] rev 13711
manifest: add readfast method
Matt Mackall <mpm@selenic.com> [Sun, 20 Mar 2011 19:43:28 -0500] rev 13710
changegroupsubset: simplify filenode_collector
Matt Mackall <mpm@selenic.com> [Sun, 20 Mar 2011 19:43:28 -0500] rev 13709
changegroupsubset: more renaming
Matt Mackall <mpm@selenic.com> [Sun, 20 Mar 2011 19:43:28 -0500] rev 13708
changegroupsubset: simplify prune
Ancestors of nodes linked to commonrevs can be expected to be linked
to commonrevs. Walking graphs of each revlog looking for rare/nonexistent outliers is overkill.
Matt Mackall <mpm@selenic.com> [Sun, 20 Mar 2011 19:43:28 -0500] rev 13707
changegroupsubset: more minor cleanups
- remove more excessive comments
- simplify some sorting operations
- rename some variables
- replace identity with a lambda
Matt Mackall <mpm@selenic.com> [Sun, 20 Mar 2011 19:43:28 -0500] rev 13706
changegroupsubset: minor cleanups
- move some variable declarations
- drop some excessive comments
- use standard variable naming
Matt Mackall <mpm@selenic.com> [Sun, 20 Mar 2011 19:43:28 -0500] rev 13705
strip: simplify collectone
Greg Ward <greg@gerg.ca> [Sun, 20 Mar 2011 17:41:09 -0400] rev 13704
dirstate: avoid a race with multiple commits in the same process
(issue2264, issue2516)
The race happens when two commits in a row change the same file
without changing its size, *if* those two commits happen in the same
second in the same process while holding the same repo lock. For
example:
commit 1:
M a
M b
commit 2: # same process, same second, same repo lock
M b # modify b without changing its size
M c
This first manifested in transplant, which is the most common way to
do multiple commits in the same process. But it can manifest in any
script or extension that does multiple commits under the same repo
lock. (Thus, the test script tests both transplant and a custom script.)
The problem was that dirstate.status() failed to notice the change to
b when localrepo is about to do the second commit, meaning that change
gets left in the working directory. In the context of transplant, that
means either a crash ("RuntimeError: nothing committed after
transplant") or a silently inaccurate transplant, depending on whether
any other files were modified by the second transplanted changeset.
The fix is to make status() work a little harder when we have
previously marked files as clean (state 'normal') in the same process.
Specifically, dirstate.normal() adds files to self._lastnormal, and
other state-changing methods remove them. Then dirstate.status() puts
any files in self._lastnormal into state 'lookup', which will make
localrepository.status() read file contents to see if it has really
changed. So we pay a small performance penalty for the second (and
subsequent) commits in the same process, without affecting the common
case. Anything that does lots of status updates and checks in the
same process could suffer a performance hit.
Incidentally, there is a simpler fix: call dirstate.normallookup() on
every file updated by commit() at the end of the commit. The trouble
with that solution is that it imposes a performance penalty on the
common case: it means the next status-dependent hg command after every
"hg commit" will be a little bit slower. The patch here is more
complex, but only affects performance for the uncommon case.
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sun, 20 Mar 2011 01:16:57 +0100] rev 13703
changegroupsubset: extranodes are no longer needed
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sun, 20 Mar 2011 00:50:22 +0100] rev 13702
strip: remove usage of extranodes
Instead of computing the exact set of missing revlog revisions, we only
compute the set of missing/broken changesets. The resulting bundle can be
slightly bigger but we will be able to get rid of the ugly extranodes handling
in changegroupsubset.
Patrick Mezard <pmezard@gmail.com> [Sun, 20 Mar 2011 00:22:47 +0100] rev 13701
patch: move closefile() into patchfile.close()
Patrick Mezard <pmezard@gmail.com> [Sun, 20 Mar 2011 00:09:44 +0100] rev 13700
patch: inline patchfile.hashlines()
Patrick Mezard <pmezard@gmail.com> [Sun, 20 Mar 2011 00:08:44 +0100] rev 13699
patch: fix hunk newlines when parsing hunks, not in iterhunks()
Patrick Mezard <pmezard@gmail.com> [Sat, 19 Mar 2011 19:50:55 +0100] rev 13698
i18n: register new template keywords for translation
Matt Mackall <mpm@selenic.com> [Sat, 19 Mar 2011 01:34:49 -0500] rev 13697
annotate: catch nonexistent files using match.bad callback (issue1590)
Steve Borho <steve@borho.org> [Fri, 18 Mar 2011 13:01:18 -0500] rev 13696
merge with stable
Steve Borho <steve@borho.org> [Fri, 18 Mar 2011 11:36:36 -0500] rev 13695
wix: add new file templates/paper/bookmarks.tmpl
This file was snuck onto the stable branch with 38c9837b1f75
Matt Mackall <mpm@selenic.com> [Thu, 17 Mar 2011 17:08:13 -0500] rev 13694
merge with stable
Miloš Hadžić <milos.hadzic@gmail.com> [Thu, 17 Mar 2011 22:55:02 +0100] rev 13693
push/outgoing: print remote target path even if there's an error (issue2561)
This is a simple patch to make hg push/hg outgoing print their remote target
path even if the operation fails. I'm not sure if the original behavior was by
design.
This patch also changes one test to reflect the changed behaviour.
Eric Eisner <ede@mit.edu> [Thu, 17 Mar 2011 16:29:09 -0400] rev 13692
subrepo: recognize scp-style paths as git URLs
Patrick Mezard <pmezard@gmail.com> [Thu, 17 Mar 2011 22:17:27 +0100] rev 13691
convert: add svnrev, svnpath and svnuuid template keywords
$ hg -R A-hg log --template '{rev} {svnuuid}{svnpath}@{svnrev}\n'
10 644ede6c-2b81-4367-9dc8-d786514f2cde/trunk@10
Patrick Mezard <pmezard@gmail.com> [Thu, 17 Mar 2011 22:17:27 +0100] rev 13690
convert/svn: extract revsplit() in a function
Patrick Mezard <pmezard@gmail.com> [Thu, 17 Mar 2011 22:17:27 +0100] rev 13689
transplant: add "transplanted" keyword
$ hg log --template '{rev} {transplanted}\n'
7 a53251cdf717679d1907b289f991534be05c997a
Matt Mackall <mpm@selenic.com> [Thu, 17 Mar 2011 12:00:49 -0500] rev 13688
merge with i18n
Martin Geisler <mg@lazybytes.net> [Wed, 16 Mar 2011 17:43:43 +0100] rev 13687
i18n: merge with stable
Martin Geisler <mg@lazybytes.net> [Wed, 16 Mar 2011 17:42:42 +0100] rev 13686
i18n-da: synchronize with e9628665b670
Martin Geisler <mg@lazybytes.net> [Wed, 16 Mar 2011 17:38:25 +0100] rev 13685
i18n: don't mark trivial string for translation
Martin Geisler <mg@lazybytes.net> [Wed, 16 Mar 2011 17:34:13 +0100] rev 13684
i18n: merge with mpm
David Soria Parra <dsp@php.net> [Tue, 15 Mar 2011 10:39:19 +0100] rev 13683
i18n-de: correct translation for some fuzzy strings
David Soria Parra <dsp@php.net> [Tue, 15 Mar 2011 10:20:55 +0100] rev 13682
i18n-de: synchronize with 994510694b1d
thron7 <thron7@users.sourceforge.net> [Sun, 13 Mar 2011 15:35:23 +0100] rev 13681
i18n-de: added translations concerning hardlinks