Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sat, 24 Jul 2010 00:03:19 +0200] rev 11664
changegroupsubset(): with the fix, prune() is actually useful in the testsuite
Martin Geisler <mg@aragost.com> [Thu, 22 Jul 2010 13:48:34 +0200] rev 11663
test-permissions: echo commands to make output readable
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Fri, 23 Jul 2010 00:04:18 +0200] rev 11662
changegroupsubset: simplify knownheads/has_cl_set computation
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Thu, 22 Jul 2010 23:54:57 +0200] rev 11661
changegroupsubset(): ancestors() is not inclusive, we need to remove the "heads"
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Thu, 22 Jul 2010 23:44:14 +0200] rev 11660
changegroupsubset(): move comment at the right place
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Thu, 22 Jul 2010 23:13:03 +0200] rev 11659
changegroupsubset(): refactor the prune() functions
Martin Geisler <mg@lazybytes.net> [Thu, 22 Jul 2010 22:23:54 +0200] rev 11658
Merge with stable
Martin Geisler <mg@lazybytes.net> [Thu, 22 Jul 2010 21:43:45 +0200] rev 11657
help: make helptable a list instead of a tuple
The table should always have been a list so that extensions can append
their own help topics -- hgsubversion would like to do this now.
Jason Harris <jason@jasonfharris.com> [Sat, 03 Jul 2010 08:28:23 +0200] rev 11656
test-command-template: test 'children' template keyword
Jason Harris <jason@jasonfharris.com> [Sat, 03 Jul 2010 05:24:16 +0200] rev 11655
templates: 'children' keyword
The template keyword 'parents' is already present and this just
provides the complimentary template keyword.
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Thu, 22 Jul 2010 16:51:45 +0200] rev 11654
changegroupsubset(): change variable names, simplify lookup logic
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Thu, 22 Jul 2010 16:18:33 +0200] rev 11653
changegroup(): used "linkrev" instead of "revlink"
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Thu, 22 Jul 2010 15:32:26 +0200] rev 11652
fix comment
Matt Mackall <mpm@selenic.com> [Thu, 22 Jul 2010 08:24:56 -0500] rev 11651
Merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 22 Jul 2010 08:17:38 -0500] rev 11650
revset: fix ancestor subset handling (issue2298)
Christian Fischer <christian@fi12.de> [Mon, 12 Jul 2010 16:07:58 +0200] rev 11649
hgwebdir: use template paths configured in the hgrc (issue2281)
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Thu, 22 Jul 2010 14:34:37 +0200] rev 11648
changegroup*(): use set instead of dict
Martin Geisler <mg@aragost.com> [Thu, 22 Jul 2010 10:49:55 +0200] rev 11647
Merge with stable
Brodie Rao <brodie@bitheap.org> [Wed, 21 Jul 2010 17:06:00 -0400] rev 11646
bash/zsh completion: use HGPLAIN when invoking hg (issue2297)
Dan Drake <drake@kaist.edu> [Thu, 22 Jul 2010 14:30:27 +0900] rev 11645
patch: fix extract() docstring, it returns branch as well
Nicolas Dumazet <nicdumz.commits@gmail.com> [Thu, 22 Jul 2010 15:14:22 +0900] rev 11644
merge with stable
Nicolas Dumazet <nicdumz.commits@gmail.com> [Thu, 22 Jul 2010 14:33:50 +0900] rev 11643
doc: remove has_key usage in hgmanpage
Nicolas Dumazet <nicdumz.commits@gmail.com> [Thu, 22 Jul 2010 14:30:29 +0900] rev 11642
gendoc: remove callable usage (check-code)
Nicolas Dumazet <nicdumz.commits@gmail.com> [Wed, 21 Jul 2010 12:41:18 +0900] rev 11641
bookmarks: rewrite _bookmarks method documentation
Mads Kiilerich <mads@kiilerich.com> [Wed, 21 Jul 2010 19:29:57 +0200] rev 11640
init: create target directory recursively
Subrepos with relative paths must often be cloned to locations deep in the
directory structure. This allows clone over ssh (init+push) work.
Mads Kiilerich <mads@kiilerich.com> [Wed, 21 Jul 2010 17:51:37 +0200] rev 11639
doc: make sure we use our own code for generating man pages
docutils would in some situations pick up its own manpage.py instead of
doc/manpage.py. Renaming to hgmanpage.py makes it less ambiguous.
Greg Ward <greg-hg@gerg.ca> [Sun, 18 Jul 2010 21:29:29 -0400] rev 11638
transplant: crash if repo.commit() finds nothing to commit
(makes issue2135, issue2264 more obvious, but does nothing to fix
either one)
This seems to happen in two distinct cases:
* patch.patch() claims success but changes nothing (e.g.
the transplanted changeset adds an empty file that already
exists)
* patch.patch() makes changes, but repo.status() fails to report them
Both of these seem like bugs in other parts of Mercurial, so arguably
it's not transplant's job to detect the failure to commit. However:
* detecting the problem as soon as possible is desirable
* it prevents a more obscure crash later, in transplants.write()
* there might be other lurking (or future) bugs that cause
repo.commit() to do nothing
Also, in the case of issue2264 (source changesets silently dropped by
transplant), the only way to spot the problem currently is the crash
in transplants.write(). Failure to transplant a patch should abort
immediately, whether it's user error (patch does not apply) or a
Mercurial bug (e.g. repo.status() failing to report changes).
Vishakh H <vsh426@gmail.com> [Tue, 20 Jul 2010 20:37:29 +0530] rev 11637
mq: cleanup status if applied mq is stripped (issue1881)
stripping of applied mq patches leads to wrong state recorded in status
file. find all mq patches that will be affected and clean up status file
before strip.
Nicolas Dumazet <nicdumz.commits@gmail.com> [Tue, 20 Jul 2010 18:29:00 +0900] rev 11636
bundle: lookup revisions after addbranchrevs
When addbranchrevs extends revs, it adds changeset hashes, and not node ids.
Which means that we have to lookup for revisions _after_ the addbranchrevs
call, instead of before.
Nicolas Dumazet <nicdumz.commits@gmail.com> [Tue, 20 Jul 2010 14:42:05 +0900] rev 11635
log: do not redefine cachefunc in walkchangerevs
The same variable is defined a few blocks earlier. The first phases in
walkchangerevs should in fact fill that cache, and allow faster lookups
in the last phase. Redefining and overriding this cached function, (knowing
that it will be called with the same arguments) defeats the caching purpose.
Martin Geisler <mg@aragost.com> [Wed, 21 Jul 2010 09:43:45 +0200] rev 11634
cmdutils: fix code style
Vishakh H <vsh426@gmail.com> [Tue, 20 Jul 2010 23:29:49 +0530] rev 11633
contrib: add debugshell extension
Nicolas Dumazet <nicdumz.commits@gmail.com> [Tue, 20 Jul 2010 14:32:33 +0900] rev 11632
log: document the different phases in walkchangerevs
Nicolas Dumazet <nicdumz.commits@gmail.com> [Tue, 20 Jul 2010 14:13:33 +0900] rev 11631
log: slowpath: only walk specified revision range during preparation
Even with --removed, it does not make sense to examine changesets outside
of the revision range that was specified by the user: the last phase only
yields a subset of (revs), preparation phase hence only has to examine
(revs) to fill correctly fncache.
Matt Mackall <mpm@selenic.com> [Tue, 20 Jul 2010 15:07:10 -0500] rev 11630
Merge with stable
Mads Kiilerich <mads@kiilerich.com> [Tue, 13 Jul 2010 03:04:14 +0200] rev 11629
revert: rename original to .orig instead of copying (issue2282)
By renaming before reverting the content of the file we ensure that we handle
and break hardlinks properly.
Handling of other hardlinks to .orig is somebody elses problem.
Greg Ward <greg-hg@gerg.ca> [Tue, 20 Jul 2010 14:00:47 -0400] rev 11628
inotify: make inotifydirstate.status() returns a tuple of lists.
This makes it consistent with dirstate.status(), which is important if
there are other extensions messing with the output of status(). Those
extensions can safely assume that dirstate.status() returns a tuple of
lists, because its docstring says it does. But
inotifystatus.dirstate() returns a list of lists, which can break
those other extensions.
Dirkjan Ochtman <dirkjan@ochtman.nl> [Tue, 20 Jul 2010 20:52:23 +0200] rev 11627
protocol: move the streamclone implementation into wireproto
Dirkjan Ochtman <dirkjan@ochtman.nl> [Tue, 20 Jul 2010 09:56:37 +0200] rev 11626
protocol: use generators instead of req.write() for hgweb stream responses
Dirkjan Ochtman <dirkjan@ochtman.nl> [Tue, 20 Jul 2010 20:53:33 +0200] rev 11625
protocol: wrap non-string protocol responses in classes
Dirkjan Ochtman <dirkjan@ochtman.nl> [Fri, 16 Jul 2010 22:20:19 +0200] rev 11624
protocol: convert StreamException to generated error code
This makes it much easier to handle these errors at the transport level.
Dirkjan Ochtman <dirkjan@ochtman.nl> [Fri, 16 Jul 2010 22:20:10 +0200] rev 11623
protocol: extract compression from streaming mechanics
Dirkjan Ochtman <dirkjan@ochtman.nl> [Fri, 16 Jul 2010 18:18:35 +0200] rev 11622
protocol: rename send methods to get grouping by prefix
Dirkjan Ochtman <dirkjan@ochtman.nl> [Fri, 16 Jul 2010 18:16:15 +0200] rev 11621
protocol: shuffle server methods to group send methods
Dirkjan Ochtman <dirkjan@ochtman.nl> [Fri, 16 Jul 2010 23:02:46 +0200] rev 11620
protocol: do not translate error messages on the remote side
Dirkjan Ochtman <dirkjan@ochtman.nl> [Fri, 16 Jul 2010 19:02:30 +0200] rev 11619
protocol: use return shortcut instead of respond function
Dirkjan Ochtman <dirkjan@ochtman.nl> [Fri, 16 Jul 2010 19:01:34 +0200] rev 11618
protocol: command must be checked before passing in
Dirkjan Ochtman <dirkjan@ochtman.nl> [Tue, 20 Jul 2010 10:05:30 +0200] rev 11617
tests: rename some tests to help grouping
Christian Ebert <blacktrash@gmx.net> [Thu, 15 Jul 2010 10:24:31 +0200] rev 11616
keyword: add extra datefilters in a single update call
Martin Geisler <mg@lazybytes.net> [Mon, 19 Jul 2010 00:43:34 +0200] rev 11615
Merge with stable
Martin Geisler <mg@lazybytes.net> [Mon, 19 Jul 2010 00:43:24 +0200] rev 11614
Merge with main
Martin Geisler <mg@lazybytes.net> [Mon, 19 Jul 2010 00:41:41 +0200] rev 11613
cmdutil: fix accidental name clash with revrange function
The revrange function was used further up, and when a local variable
is defined with the same name, the earlier call to revrange becomes a
'local variable used before assignment' error.
The clash was introduced in 890ad9d6a169.
Steve Losh <steve@stevelosh.com> [Wed, 14 Jul 2010 18:28:12 -0400] rev 11612
commands: fix update's help to be more accurate
Branches can have multiple heads, so it doesn't make sense to speak of "the
head of the current branch". What update really does is try to update to the
*tip* of the current branch.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sun, 18 Jul 2010 01:06:50 +0900] rev 11611
i18n: use encoding.colwidth() for correct column width
Some encoding and language combinations (e.g.: UTF-8 and Japanese)
cause encoding characters into sequence of bytes more than column
width of them.
So, encoding.colwidth() should be applied instread of len() on i18n
strings.
In addition to it, formatting by '%*s'/'%-*s' also uses "number of
bytes" to calculate space padding size, and should be fixed, too.
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sun, 18 Jul 2010 18:11:59 +0900] rev 11610
merge with stable
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sun, 04 Jul 2010 18:07:30 +0900] rev 11609
log: slowpath: do not read the full changelog
When in the slowpath, we are examining _all_ changesets in revs.
We need to order reads so they happen increasingly for I/O performance.
Increasing windows were used to read changelog backwards in a windowed manner,
reading the changelog forward inside each window. But since no revision range
was specified, it was equivalent to reading the full changelog, even if a
single revision was passed to the commandline.
When --removed is used, we _need_ to scan all changesets, but if we're only
looking for file patterns, this is not necessary and we can stick to
the revspec that was given to us.
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sat, 03 Jul 2010 18:11:15 +0900] rev 11608
log: remove increasing windows usage in fastpath
The purpose of increasing windows is to allow backwards iteration on the
filelog at a reasonable cost.
But is it needed?
- if follow is False, we have no reason to iterate backwards.
We basically just want to walk the complete filelog and yield all revisions
within the revision range. We can do this forward or
backwards, as it only reads the index.
- when follow is True, we need to examine the contents of the filelog, and to
do this efficiently we need to read the filelog forward.
And on the other hand, to track ancestors and copies, we need to process
revisions backwards. But is it necessary to use increasing windows
for this?
We can iterate over the complete filelog forward, stack the revisions, and
read the reversed(pile), it does the same thing with a more readable code.
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sat, 03 Jul 2010 18:01:54 +0900] rev 11607
log: refactor: test for ranges inside filerevgen
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sat, 03 Jul 2010 17:58:48 +0900] rev 11606
log: refactor: compute the value of last outside of filerevgen
Nicolas Dumazet <nicdumz.commits@gmail.com> [Fri, 16 Jul 2010 16:33:55 +0900] rev 11605
context: use os.lstat instead of os.stat to fetch file size
When file is a link, we want the size of the link itself, not the size
of the file it points to.