Laurent Charignon <lcharignon@fb.com> [Mon, 16 Mar 2015 15:35:50 -0700] rev 24357
record: refactor the filtering code
Laurent Charignon <lcharignon@fb.com> [Mon, 16 Mar 2015 15:30:33 -0700] rev 24356
record: consolidate ui.write wrapping in a function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 17 Mar 2015 18:20:24 +0900] rev 24355
bookmarks: reuse @number bookmark, if it refers changeset referred remotely
Before this patch, "@number" suffixed bookmark may be newly created at
each "hg pull" from the remote repository, if the bookmark in remote
repository diverges from one in local one.
This causes unexpected increase of "@number" suffixed bookmarks.
This patch reuses "@number" suffixed bookmark, if it refers the
changeset which is referred by the same bookmark in the remote
repository.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 17 Mar 2015 18:20:24 +0900] rev 24354
bookmarks: check @pathalias suffix before available @number for efficiency
Before this patch, available "@number" suffix is searched before
"@pathalias" suffix, even though the latter has higher priority than
the former if the latter exits.
This patch checks "@pathalias" suffix before available "@number" for
efficiency.
When an URL has multiple path definitions, the first one is used for
"pathalias" after this patch, even though the last one is used before
this patch, because:
- this choice can terminate loop immediately for efficiency
- such case seems to be rare
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 17 Mar 2015 18:20:24 +0900] rev 24353
bookmarks: prevent divergent bookmark from being updated unexpectedly
Before this patch, "@99" suffixed bookmark may be updated unexpectedly
by the bookmark value on the remote side at "hg pull", if all of "@1"
to "@99" suffixed bookmarks exist in the local repository, because
variable "n" still refers "@99" suffixed bookmark after the loop to
examine "@num" suffixes, even though it already exists in the local
repository.
This patch prevents divergent bookmark from being updated
unexpectedly, and shows warning message in such situation.
This patch uses original python script "seq.py" instead of "seq"
command to create sequence numbers in the test, because "seq" command
may not be available: it isn't defined in recent POSIX specification
(POSIX.1-2001 2013 Edition or XPG7)
Drew Gottlieb <drgott@google.com> [Wed, 18 Mar 2015 11:41:36 -0700] rev 24352
manifest: include Python.h before standard headers
Python.h should be included before any standard headers according to the
python docs: https://docs.python.org/2/c-api/intro.html#include-files
Matt Mackall <mpm@selenic.com> [Wed, 18 Mar 2015 13:38:06 -0500] rev 24351
crecord: use colwidth instead of ucolwidth
Matt Mackall <mpm@selenic.com> [Wed, 18 Mar 2015 13:37:18 -0500] rev 24350
manifest: speed up matches for large sets of files
If the number of files being matched is large, the bisection overhead
can dominate, which caused a performance regression for revert --all
and histedit. This introduces a (fairly arbitrary) cross-over from
using bisections to bulk search.
Matt Mackall <mpm@selenic.com> [Wed, 18 Mar 2015 12:03:44 -0500] rev 24349
perf: add methods for timing changeset file list reading
Mike Edgar <adgar@google.com> [Sun, 15 Mar 2015 21:52:35 -0400] rev 24348
censor: add exchange tests, via local push/pull and bundle/unbundle
These tests exercise the edge cases of exchanging censored commits between
censor-aware Mercurial clients. These tests do not extend to cover
backwards-compatible exchange; such tests require a script which builds older
versions of Mercurial.
For more background on the censorship feature design, see:
http://mercurial.selenic.com/wiki/CensorPlan
Mike Edgar <adgar@google.com> [Sun, 15 Mar 2015 21:52:17 -0400] rev 24347
censor: add censor command to hgext with basic client-side tests
The censor command is a core extension which can replace the contents of a
historical file revision with a censor "tombstone" which can be exchanged
with older clients in place of the real revision data. The command rewrites
the filelog by copying revision-by-revision.
Care must be taken to expand the fulltext of the children of the censored
revision before copying them to the new filelog; they might be stored as
deltas against the uncensored revision, and those deltas will be invalidated.
For more background on the censorship feature design, see:
http://mercurial.selenic.com/wiki/CensorPlan
Laurent Charignon <lcharignon@fb.com> [Fri, 13 Mar 2015 14:08:30 -0700] rev 24346
record: add comparison methods for recordhunk class
Laurent Charignon <lcharignon@fb.com> [Thu, 12 Mar 2015 17:50:23 -0700] rev 24345
record: minor refactoring of dorecord
It prepares the way for introducing the flag to reverse hunk selection
Laurent Charignon <lcharignon@fb.com> [Thu, 12 Mar 2015 14:42:55 -0700] rev 24344
record: add tests for the curses recording interface
Laurent Charignon <lcharignon@fb.com> [Thu, 12 Mar 2015 14:24:48 -0700] rev 24343
record: enable curses recording logic with experimental flag
Laurent Charignon <lcharignon@fb.com> [Fri, 13 Mar 2015 10:51:25 -0700] rev 24342
record: change arguments of curses recording function
This way the arguments are the same for both curses and non-curses versions.
Laurent Charignon <lcharignon@fb.com> [Thu, 12 Mar 2015 17:51:37 -0700] rev 24341
record: change interface of the filtering function
This way filtering functions accept chunks and return chunks
Matt Harbison <matt_harbison@yahoo.com> [Thu, 12 Mar 2015 23:15:06 -0400] rev 24340
hgweb: replace 'ctx._repo' with 'ctx.repo()'
Matt Harbison <matt_harbison@yahoo.com> [Thu, 12 Mar 2015 23:18:20 -0400] rev 24339
pvec: replace 'ctx._repo' with 'ctx.repo()'
Matt Harbison <matt_harbison@yahoo.com> [Thu, 12 Mar 2015 23:16:26 -0400] rev 24338
scmutil: replace 'ctx._repo' with 'ctx.repo()'
Matt Harbison <matt_harbison@yahoo.com> [Thu, 12 Mar 2015 23:11:15 -0400] rev 24337
templater: replace 'ctx._repo' with 'ctx.repo()'
Matt Harbison <matt_harbison@yahoo.com> [Thu, 12 Mar 2015 23:08:16 -0400] rev 24336
largefiles: replace 'ctx._repo' with 'ctx.repo()'
Matt Harbison <matt_harbison@yahoo.com> [Thu, 12 Mar 2015 23:05:25 -0400] rev 24335
obsolete: replace 'ctx._repo' with 'ctx.repo()'
Matt Harbison <matt_harbison@yahoo.com> [Thu, 12 Mar 2015 23:02:19 -0400] rev 24334
fileset: replace 'ctx._repo' with 'ctx.repo()'
Matt Harbison <matt_harbison@yahoo.com> [Fri, 13 Mar 2015 20:34:52 -0400] rev 24333
filectx: add a repo accessor
This is similar to a07314472a80 in motivation. All contexts now have this
method, so the rest of the 'ctx._repo' uses can be converted without worrying
about what type of context it is.
Augie Fackler <augie@google.com> [Fri, 13 Mar 2015 13:03:55 -0400] rev 24332
run-tests: ignore ENOENT failures when removing old .err results
When the same test runs in multiple threads and the previous run was a
failure, the threads can race to delete the error output. This fixes
that.
Augie Fackler <augie@google.com> [Fri, 13 Mar 2015 12:50:53 -0400] rev 24331
run-tests: stop storing start/stop times in a dict by test name
This resolves the last breakage in run-tests that prevented me from
running a single test many times in several threads in parallel. This
will be useful for testing potential fixes to flaky tests.
Augie Fackler <augie@google.com> [Fri, 13 Mar 2015 12:47:16 -0400] rev 24330
run-tests: avoid running the same test instance concurrently
There's a fair amount of mutable state stored on test case
instances. That causes many weird failures if you try to do something
like `run-tests.py -j16 --loop test-help.t`. The quick fix is this
slightly weird test-reloading dance, which ensures that every time a
test is executed it runs on a fresh instance of the TestCase subclass.
Augie Fackler <augie@google.com> [Fri, 13 Mar 2015 11:21:53 -0400] rev 24329
run-tests: add --runs-per-test flag
This is useful when you're working with a flaky test and want to run
it (for example) 500 times to see if it'll false-fail. This currently
breaks if you use it with more than one thread, but I'm looking into
that now.
Augie Fackler <augie@google.com> [Thu, 12 Mar 2015 21:41:50 -0400] rev 24328
convert: adjust progress bar for octopus merges (issue4169)
For merges, we walk the files N-1 times, where N is the number of
parents. This means that for an octopus merge with 3 parents and 2
changed files, we actually fetch 6 files. This corrects the progress
output of the convert command when such commits are encountered.