Wagner Bruna <wbruna@yahoo.com> [Sun, 01 Aug 2010 01:51:21 -0300] rev 11721
Merge with stable
Wagner Bruna <wbruna@yahoo.com> [Sun, 01 Aug 2010 01:46:58 -0300] rev 11720
i18n-pt_BR: synchronized with
0e789549271d
Jens Bäckman <jens@titv.se> [Sun, 25 Jul 2010 10:51:05 +0200] rev 11719
i18n-sv: synchronized with
c47cb3193c53
Matt Mackall <mpm@selenic.com> [Sat, 31 Jul 2010 18:27:03 -0500] rev 11718
help: fix bytes/digit confusion for hashes
spotted by FUJIWARA Katsunori <fujiwara@ascade.co.jp>
Matt Mackall <mpm@selenic.com> [Sat, 31 Jul 2010 18:12:50 -0500] rev 11717
Merge with stable
timeless <timeless@gmail.com> [Fri, 30 Jul 2010 10:32:24 +0300] rev 11716
progress: use gerund (updating) for merge progress
Gilles Moris <gilles.moris@free.fr> [Sat, 10 Jul 2010 21:23:00 +0200] rev 11715
qpush --move: move the right patch even with comment lines
88fc876a4833 caused that we find the index of the moving patch in self.series
but look it up in self.full_series. The difference between these is that
full_series also contains comment lines, and we thus moved the wrong patch.
Use back self.full_series to find the moving patch, but take care of striping
the patch guard markers before comparing the patch name. Test cases have been
added for comments and empty lines in self.full_series, and for the case of
guarded patches.
Original patch contributed by Mads Kiilerich <mads@kiilerich.com>
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sat, 31 Jul 2010 11:41:58 +0900] rev 11714
merge with stable
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sat, 31 Jul 2010 11:41:42 +0900] rev 11713
perf: break down long line
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sat, 31 Jul 2010 11:36:24 +0900] rev 11712
dispatch: trailing whitespace
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sat, 31 Jul 2010 11:05:11 +0900] rev 11711
merge crew and main
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sat, 31 Jul 2010 11:04:33 +0900] rev 11710
merge crew and main
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sat, 31 Jul 2010 10:50:29 +0900] rev 11709
mq: clarify the fact that qimport is trying to read a file
"hg qimport tip" would throw "abort: unable to read tip" before this.
Nicolas Dumazet <nicdumz.commits@gmail.com> [Fri, 30 Jul 2010 10:07:46 +0900] rev 11708
revset: add min function
Nicolas Dumazet <nicdumz.commits@gmail.com> [Fri, 30 Jul 2010 14:41:47 +0900] rev 11707
runrst: try to be more helpful if docutils is not installed
Nicolas Dumazet <nicdumz.commits@gmail.com> [Thu, 29 Jul 2010 17:18:17 +0900] rev 11706
mq: correct qimport documentation
Nicolas Dumazet <nicdumz.commits@gmail.com> [Thu, 29 Jul 2010 12:10:22 +0900] rev 11705
merge with stable
Idan Kamara <idankk86@gmail.com> [Sat, 24 Jul 2010 11:20:21 +0300] rev 11704
bookmarks: don't allow name to contain whitespaces only
Nicolas Dumazet <nicdumz.commits@gmail.com> [Thu, 29 Jul 2010 10:39:59 +0900] rev 11703
context: reuse filecontext.cmp in workingfilecontext.cmp
Same code path should mean less mistakes, and hopefully, better
caching.
Nicolas Dumazet <nicdumz.commits@gmail.com> [Tue, 27 Jul 2010 23:40:46 +0900] rev 11702
filectx: use cmp(self, fctx) instead of cmp(self, text)
This allows more flexibility in implementation, and in particular,
lets the context decide if revision text has to be loaded or not.
Patrick Mezard <pmezard@gmail.com> [Wed, 28 Jul 2010 11:07:20 +0200] rev 11701
mq: fix qimport --name --existing --force on win32
os.rename() does not overwrite existing targets on Windows.
Nicolas Dumazet <nicdumz.commits@gmail.com> [Fri, 23 Jul 2010 23:43:43 +0900] rev 11700
mq: document possible combination of -e and -n for qimport
Nicolas Dumazet <nicdumz.commits@gmail.com> [Wed, 21 Jul 2010 11:53:09 +0900] rev 11699
mq: support "qimport --existing --name renametothis thatexistingpatch"
Before this change, the command would abort with a not too clear "patch
renametothis does not exist" error.
This change makes:
qimport --existing --name renametothis thatexistingpatch
equivalent to:
qimport --existing thatexistingpatch; qrename thatexistingpatch renametothis
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sat, 24 Jul 2010 00:28:20 +0900] rev 11698
localrepo: refactor filter computation
Separate loading part from access part to be able to tell with:
repo._loadfilter(name)
bool(name in repo.filterpats)
if there is a 'name' filter available.
Matt Mackall <mpm@selenic.com> [Tue, 27 Jul 2010 16:04:00 -0500] rev 11697
Merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 27 Jul 2010 16:03:42 -0500] rev 11696
Merge with crew
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Tue, 27 Jul 2010 14:43:40 +0200] rev 11695
alias: improved diagnostic when arguments include --cwd, etc.
The logic pre-emptively checks for -R, --repo, --repository and --cwd
in order to give the user a more helpful error message. In addition,
each option is handled invididually, which avoids listing them all in
the error.
Before:
% hg --config alias.broken='push --cwd /dev/null' broken
abort: Option --cwd may not be abbreviated!
After:
% hg --config alias.broken='push --cwd /dev/null' broken
error in definition for alias 'broken': --cwd may only be given on the command line
Pradeepkumar Gayam <in3xes@gmail.com> [Tue, 27 Jul 2010 20:50:09 +0530] rev 11694
perf: add perfrevlog function to check performance of revlog
Pradeepkumar Gayam <in3xes@gmail.com> [Tue, 27 Jul 2010 01:16:38 +0530] rev 11693
revlog: add a flags method that returns revision flags
Benjamin Pollack <benjamin@bitquabit.com> [Tue, 27 Jul 2010 14:40:25 -0400] rev 11692
tag: do not allow tag names to consist solely of whitespace (
issue2307)
(simplification and test by mpm)
Matt Mackall <mpm@selenic.com> [Sun, 25 Jul 2010 21:20:05 -0500] rev 11691
Merge with stable
Mads Kiilerich <mads@kiilerich.com> [Tue, 20 Jul 2010 15:49:28 +0200] rev 11690
convert: warn on superfluous / in paths
shlex is really a bad parser for this line-based format ...
David Soria Parra <dsp@php.net> [Sat, 24 Jul 2010 22:15:22 +0200] rev 11689
inotify: remove unused variable
Matt Mackall <mpm@selenic.com> [Sun, 25 Jul 2010 17:18:35 -0500] rev 11688
convert: handle closed branch heads in hg-hg conversion (
issue2185)
Matt Mackall <mpm@selenic.com> [Sun, 25 Jul 2010 17:10:32 -0500] rev 11687
check-code: add warning on lines over 80 characters
Patrick Mezard <pmezard@gmail.com> [Mon, 26 Jul 2010 23:26:15 +0200] rev 11686
debugbuilddag: build repository content in binary mode
Patrick Mezard <pmezard@gmail.com> [Mon, 26 Jul 2010 22:29:49 +0200] rev 11685
cleanup: typos
Patrick Mezard <pmezard@gmail.com> [Mon, 26 Jul 2010 22:29:17 +0200] rev 11684
revsets.txt: minor improvements
Patrick Mezard <pmezard@gmail.com> [Mon, 26 Jul 2010 22:28:37 +0200] rev 11683
dispatch: write Abort hint to stderr too
Patrick Mezard <pmezard@gmail.com> [Mon, 26 Jul 2010 22:26:12 +0200] rev 11682
bookmarks: sort diffbookmarks() output
Matt Mackall <mpm@selenic.com> [Sun, 25 Jul 2010 21:20:05 -0500] rev 11681
Merge with stable
Mads Kiilerich <mads@kiilerich.com> [Tue, 20 Jul 2010 15:49:28 +0200] rev 11680
convert: warn on superfluous / in paths
shlex is really a bad parser for this line-based format ...
David Soria Parra <dsp@php.net> [Sat, 24 Jul 2010 22:15:22 +0200] rev 11679
inotify: remove unused variable
Christian Ebert <blacktrash@gmx.net> [Sun, 25 Jul 2010 20:01:33 -0500] rev 11678
keyword: move collecting of [keyword] patterns to reposetup (
issue2303)
When cloning, prevent [keyword] filename patterns configured locally
in the source directory to persist during the update in the destination.
a) move [keyword] retrieval (back) to reposetup
b) remove the corresponding global kwtools attributes
Add test cases.
Mads Kiilerich <mads@kiilerich.com> [Wed, 21 Jul 2010 22:22:28 +0200] rev 11677
hgwebdir: allow pure relative globs in paths
This allows the (to me, in some setups) obvious configuration:
[paths]
/ = *
or
/ = **
Relative paths used to work with [collections] even though it isn't documented.
Perhaps it should be documented?
Brodie Rao <brodie@bitheap.org> [Thu, 22 Jul 2010 15:26:26 -0400] rev 11676
alias: ensure checksignature() is applied directly to the command (
issue2286)
Aliased commands that received bad arguments would raise TypeError instead of
SignatureError. This only affected commands that weren't wrapped by extensions.
Using util.checksignature() in cmdalias.__call__() ensures SignatureError is
raised correctly.
Mads Kiilerich <mads@kiilerich.com> [Sat, 24 Jul 2010 00:38:08 +0200] rev 11675
dispatch: give better error message when cwd doesn't exist (
issue2293)
Previous behavior wasn't very helpful:
$ hg st foo
abort: No such file or directory
Now we tell more about what failed:
abort: error getting current working directory: No such file or directory
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 22 Jul 2010 23:18:38 +0900] rev 11674
i18n: safety writing into non-ASCII named files on any shell implementation
some shell implementation (e.g.: dash) can not handle redirection into
non-ASCII UTF-8 named file correctly.
Matt Mackall <mpm@selenic.com> [Sun, 25 Jul 2010 17:18:35 -0500] rev 11673
convert: handle closed branch heads in hg-hg conversion (
issue2185)
Matt Mackall <mpm@selenic.com> [Sun, 25 Jul 2010 17:10:32 -0500] rev 11672
check-code: add warning on lines over 80 characters
Lee Cantey <lcantey@gmail.com> [Sun, 25 Jul 2010 08:22:03 -0700] rev 11671
Remove variable output affected by length of TMPDIR.
If the temporary directory is longer than /tmp then it's possible that
the Subject line will get wrapped by the headencode function.
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sun, 25 Jul 2010 13:10:57 +0200] rev 11670
chunkbuffer: split big strings directly in chunkbuffer
Nicolas Dumazet <nicdumz.commits@gmail.com> [Sun, 25 Jul 2010 10:05:38 +0900] rev 11669
localrepo.status: move fixup concatenation inside if block for clarity
clean += fixup only makes sense if fixup is not empty; it should
be inside the "if fixup" test.
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sat, 24 Jul 2010 17:23:08 +0200] rev 11668
chunkbuffer: targetsize isn't used outside of read()
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sat, 24 Jul 2010 15:21:39 +0200] rev 11667
chunkbuffer: use list instead of cStringIO
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sat, 24 Jul 2010 15:20:29 +0200] rev 11666
chunkbuffer: use for/else to detect end of iteration
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sat, 24 Jul 2010 00:15:29 +0200] rev 11665
changegroup*(): use enumerate when possible
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.
Matt Mackall <mpm@selenic.com> [Fri, 16 Jul 2010 13:26:39 -0500] rev 11604
check-code: add --blame switch
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Fri, 16 Jul 2010 18:35:15 +0200] rev 11603
changegroupsubset: remove unneeded cast to list
Martin Geisler <mg@lazybytes.net> [Fri, 16 Jul 2010 14:48:52 +0200] rev 11602
check-code: catch dict.has_key