Bryan O'Sullivan <bryano@fb.com> [Wed, 11 Jul 2012 15:03:10 -0700] rev 17132
tests: reduce spurious failures when run with generaldelta
Quite a few tests fail in noisy but meaningless ways when the test suite
is run with generaldelta enabled:
./run-tests.py --extra-config-opt=format.generaldelta=1
This reduces the amount of noise introduced by the debugindex command,
the main source of differences. In my environment, when testing with
generaldelta enabled, this change reduces the number of completely
failing tests from 21 to 8.
Augie Fackler <raf@durin42.com> [Fri, 06 Jul 2012 12:17:53 -0500] rev 17131
histedit: add extension docstring from external README
Made a couple of tweaks to try and fit better with the hg docstring
style and fix up some ReST errors in the README.
Augie Fackler <raf@durin42.com> [Fri, 06 Jul 2012 11:39:02 -0500] rev 17130
histedit: don't crash if the result of fixing up a fold is empty
Augie Fackler <raf@durin42.com> [Fri, 06 Jul 2012 11:06:57 -0500] rev 17129
histedit: replace hexshort lambda with node.short
Bryan O'Sullivan <bryano@fb.com> [Mon, 25 Jun 2012 13:56:13 -0700] rev 17128
revlog: make compress a method
This allows an extension to optionally use a new compression type based
on the options applied by the repo to the revlog's opener.
(decompress doesn't need the same treatment, as it can be replaced using
extensions.wrapfunction, and can figure out which compression algorithm
is in use based on the first byte of the compressed payload.)
Na'Tosha Bard <natosha@unity3d.com> [Sun, 24 Jun 2012 20:36:22 +0200] rev 17127
largefiles: batch statlfile requests when pushing a largefiles repo (
issue3386)
This implements a part of issue 3386. It batches the request for the status of
all largefiles in the revisions that are about to be pushed into a single
request, instead of doing N separate requests.
In a real world test case, this change was verified to save 1,116 round-trips to
the server. It only requires a client-side change; it is backwards-compatible
with an older version of the server.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 04 Jul 2012 02:21:04 +0200] rev 17126
obsolete: write obsolete marker inside a transaction
Marker are now written as soon as possible but within a transaction. Using a
transaction ensure a proper behavior on error and rollback compatibility.
Flush logic are not necessary anymore and are dropped from lock release.
With this changeset, the obsstore is open, written and closed for every single
added marker. This is expected to be highly inefficient and batched write should
be implemented "quickly".
Another issue is that every flush of the file will invalidate the obsstore
filecache and trigger a full re instantiation of the repo.obsstore attribute
(including, reading and parsing entry). This is also expected to be highly
inefficient and proper filecache operation should be implemented "quickly" too.
A side benefit of the filecache issue is that repo.obsstore object is properly
invalidated on transaction abortion.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 04 Jul 2012 02:02:48 +0200] rev 17125
obsolete: append new markers to obsstore file instead of rewriting everything
This is the second step toward incremental writing of marker inside a
transaction. The obsstore file is now handled append only.
Header writing have been extracted from _writemarkers.
Because the _writemarkers method have been dropped, the push code
directly reuse the serialised content of local repo `listkeys`. This
is not very pretty, but this part of the protocol still need major
improvement anyway.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 04 Jul 2012 02:00:36 +0200] rev 17124
obsolete: move obsolete markers read/write logic to obsstore object
This is the first step toward incremental writing of obsolete marker within a
transaction.
For this purpose, obsstore is now given its repo sopener. This make it able to
handles read and write to the obsstore file itself. Most IO logic is removed
from localrepo and handled by obsstore object directly.
Matt Mackall <mpm@selenic.com> [Wed, 11 Jul 2012 18:35:14 -0500] rev 17123
debugobsolete: remove spurious ctx from variable name
'contexts' are objects like the ones described in context.py, not
anything that describes a situation.
Bryan O'Sullivan <bryano@fb.com> [Fri, 06 Jul 2012 20:28:32 -0700] rev 17122
Merge
Bryan O'Sullivan <bryano@fb.com> [Fri, 06 Jul 2012 20:19:55 -0700] rev 17121
setup: disable -mno-cygwin if building under mingw32
This gcc option has been deprecated since at least 2009 (gcc 4.4),
and it causes compilations to fail entirely with gcc 4.6.x.
Upstream distutils bug: http://bugs.python.org/
issue12641
Mads Kiilerich <mads@kiilerich.com> [Fri, 06 Jul 2012 00:30:18 +0200] rev 17120
graphlog: don't truncate template value at last \n
Most uses of templates requires a trailing newline to get vertical output.
Graphlog with a template without trailing newline did however not just create
horisontal output like other commands would but truncated the output at the
last \n. Template values without any \n were ignored completely.
Graphlog will now only eat one trailing newline before it lets the flow of the
graph add the necessary vertical space.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 04 Jul 2012 17:29:49 +0200] rev 17119
graphlog: display obsolete changeset as "x"
Changeset detected as obsolete will be displayed as "x" instead of 'o':
o new rewritten changeset
|
| x old obsolete changeset
|/
|
o base
This will be useful even when some obsolete changeset will be "hidden" because
not all obsolete changeset can be hidden. If an obsolete changeset have
non-obsolete descendant we can't simply hide it. And having a clear visual hint
that the changeset is obsolete is useful.
The main reason to make this minor change right now is to:
1) introduce an officiel user of the `ctx.obsolete()` method that will detect
breakage earlier than third party code (mutable, hgview)
2) Do not display any vocabulary related to obsolete. Such vocabulary will
require discussion.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 04 Jul 2012 17:26:51 +0200] rev 17118
obsolete: fix context.obsolete() method
- obsstore attribut name changed.
- public changeset can't be obsolete
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 04 Jul 2012 16:37:00 +0200] rev 17117
obsolete: fix error message at marker creation
precursors content where printed for invalid successor.
Adrian Buehlmann <adrian@cadifra.com> [Mon, 02 Jul 2012 00:31:22 +0200] rev 17116
help: explain effect of .hgignore on tracked files
Adrian Buehlmann <adrian@cadifra.com> [Sun, 01 Jul 2012 10:06:16 +0200] rev 17115
hgignore: simply ignore all *.exe's everywhere
it's not like we're going to add any exe anywhere ever
Mads Kiilerich <mads@kiilerich.com> [Thu, 05 Jul 2012 02:25:49 +0200] rev 17114
tests: ignore pax_global_header in test-subrepo-git.t
Failure seen on hgbuildbot 2.4 and 2.5 after
1894dac619de.
Hide '../archive_x/s/pax_global_header' with same strange trick as in
5dda6c708138.
Mads Kiilerich <mads@kiilerich.com> [Thu, 05 Jul 2012 01:47:17 +0200] rev 17113
tests: remove GNU quoting in test-subrepo-deep-nested-change.t
Test failure on non-GNU systems introduced in
1894dac619de.
Mads Kiilerich <mads@kiilerich.com> [Thu, 05 Jul 2012 00:51:05 +0200] rev 17112
tests: add '(glob)' for Windows paths in test-subrepo-deep-nested-change.t
Test failure was introduced in
1894dac619de.
Mads Kiilerich <mads@kiilerich.com> [Thu, 05 Jul 2012 00:49:26 +0200] rev 17111
check-code: verify that 'saved backup bundle to ...' is '(glob)'ed
This is the most frequent trivial reason tests fail on Windows.
Mads Kiilerich <mads@kiilerich.com> [Thu, 05 Jul 2012 00:35:42 +0200] rev 17110
tests: fix test markup in test-merge-types.t
ca5cc2976574 introduced some tests that because of incorrect indentation wasn't
run.
Adrian Buehlmann <adrian@cadifra.com> [Wed, 04 Jul 2012 12:43:13 +0200] rev 17109
test-hgweb-diffs: partially adapt for Windows
Since chmod isn't supported on Windows (or vfat), I'm importing a here-doc
instead (<<EOF ..).
Option --bypass on import of the here-doc is required on Windows (or vfat) to
bypass the working directory (see hg help import). Not using --bypass would
lose the mode changing bits.
I've had to insert a --bypass on the preexisting import call futher down in the
test, because importing a patch with --exact and mode changes will fail on
Windows (and vfat).
As the point of this test is not to test commit, I'm using the import
procedure for all platforms unconditionally, that is, I'm intentionally not
keeping the original sequence of hg and chmod calls for platforms that support
exec either, which saves us having to insert an #if exec ... #else ... #endif.
Matt Harbison <matt_harbison@yahoo.com> [Sat, 16 Jun 2012 22:34:06 -0400] rev 17108
subrepo: propagate matcher to subrepos when archiving
Add a match object to subrepo.archive(). This will allow the -X and -I
options to be honored inside subrepos when archiving. They formerly
only affect the top level repo.
Matt Harbison <matt_harbison@yahoo.com> [Mon, 18 Jun 2012 22:45:21 -0400] rev 17107
largefiles: remove a standin check that could never be true
Matt Harbison <matt_harbison@yahoo.com> [Mon, 18 Jun 2012 23:02:51 -0400] rev 17106
largefiles: fix the directory structure when archiving a subrepo in a subrepo
Previously, a repo consisting of main/sub/subsub archived sub and subsub as
siblings under main.
Matt Harbison <matt_harbison@yahoo.com> [Sun, 17 Jun 2012 21:57:48 -0400] rev 17105
largefiles: fix a traceback when archiving a subrepo in a subrepo
This regression was introduced in
43fb170a23bd.
Mads Kiilerich <mads@kiilerich.com> [Thu, 21 Jun 2012 12:50:15 +0200] rev 17104
help: improve hgweb help
The existing help only walked through an example.
Now we first explain the basic rules and then show an example.
The 'collections' example and description only cause confusion and is removed.
Bikeshedded by Patrick Mezard <patrick@mezard.eu>
Patrick Mezard <patrick@mezard.eu> [Mon, 18 Jun 2012 18:19:28 +0200] rev 17103
convert: keep branch switching merges with ancestors (
issue3340)
When running convert with a filemap, merge parents which are ancestors
of other parents are ignored. This is hardly a problem when parents
belong to the same branch, but the result could be confusing when named
branches are involved. With:
-o-a1-a2-a3... <- A
\ \
b1-b2-b3...-m- <- B
If all b* revisions are discarded, it is useful to preserve 'm' even if
it is empty after filtering to record the branch switch.
This patch makes filemap preserve "ancestor parents" if there is no
"non-ancestor parent" on the same branch than the merge revision.
Remarks:
- I am not completely convinced by the reasons given above and those
detailed by Matt in this thread:
http://selenic.com/pipermail/mercurial-devel/2012-May/040627.html
The properties we try to preserve are not clearly defined. That said,
I know this patch already helped someone on IRC and the tests output
look reasonable.
- This is a new version of the original "convert: filemap must preserve
fast-forward merges" patch. It has exactly the same output for 2
parents merges, the additional complexity is here to handle more than
two parents.
Angel Ezquerra <angel.ezquerra@gmail.com> [Wed, 13 Jun 2012 23:32:58 +0200] rev 17102
revset: add "diff" field to "matching" keyword
The new "diff" field lets you use the matching revset keyword to find revisions
that apply the same change as the selected revisions.
The match must be exact (i.e. same additions, same deletions, same modified
lines and same change context, same file renames and copies).
Two revisions matching their diff must also match their files. Thus, to match
the diff much faster we will always check that the 'files' match first, and only
then check that the 'diff' matches as well.
Matt Harbison <matt_harbison@yahoo.com> [Fri, 08 Jun 2012 23:27:59 -0400] rev 17101
mq: defer command wrapping to extsetup (API)
mq wraps all commands that are not in commands.norepo, which is now performed in
this second phase of the extensions setup process. This goes against the
current best practices on the wiki [1] as far as where command wrapping is
performed, but follows it regarding where global options are injected.
mq needs to be the first layer called when command dispatching in order to
consistently retarget to the patch repo, regardless of the load order of the
extensions. This means being the last to wrap the command table. Previously,
'hg <extdiff> --mq' would diff the main repo unless mq was enabled after
extdiff.
[1] http://mercurial.selenic.com/wiki/WritingExtensions
Bryan O'Sullivan <bryano@fb.com> [Wed, 04 Jul 2012 09:38:07 -0700] rev 17100
revset: ensure we are reversing a list (
issue3530)
Adrian Buehlmann <adrian@cadifra.com> [Tue, 03 Jul 2012 18:02:07 +0200] rev 17099
test-keyword: adapt for Windows
Mads Kiilerich <mads@kiilerich.com> [Wed, 04 Jul 2012 02:04:58 +0200] rev 17098
tests: don't use dates before epoch in test-keyword.t
Timezone offsets of less than a minute is not shown but can cause displayed
dates to be before epoch start - and dates before epoch start is not shown
correctly on Windows (see also
4d5b12a5517b).
These 'negative' dates could be considered undefined behaviour so we don't care
and swap the tests values for timestamp and timezone.
Mads Kiilerich <mads@kiilerich.com> [Wed, 04 Jul 2012 01:45:28 +0200] rev 17097
tests: make test-convert-bzr.t more stable
The test would occasionally fail because datesort don't have sub-second
granularity and thus can't sort commits made in the same second.
The test is made more stable by adding 1 second of sleep to make sure the bzr
commits are done with different timestamps.
Joshua Redstone <joshua.redstone@fb.com> [Wed, 27 Jun 2012 12:37:01 -0700] rev 17096
casecollision: add tests
Add more tests to exercise the case collion detection code
Joshua Redstone <joshua.redstone@fb.com> [Wed, 27 Jun 2012 12:28:26 -0700] rev 17095
dirstate: add dir/file collision test
Add a test exercising collisions in add between files and directories of the
same name.
Joshua Redstone <joshua.redstone@fb.com> [Mon, 18 Jun 2012 08:06:42 -0700] rev 17094
dirstate: factor common update code into _addpath
Factor update code common to all callers of _addpath into _addpath.
By centralizing the update code here, it provides one place to put
updates to new data structures - in a future patch. It also removes
a few lines of duplicate code.
Adrian Buehlmann <adrian@cadifra.com> [Mon, 02 Jul 2012 16:54:01 +0200] rev 17093
test-subrepo-relative-path: partially adapt for Windows
Mads Kiilerich <mads@kiilerich.com> [Tue, 03 Jul 2012 01:49:51 +0200] rev 17092
tests: make rm of usercache in test-largefiles.t more robust
Recursive removal of a different path could be fatal - better avoid recursive
rm completely.
Matt Mackall <mpm@selenic.com> [Sun, 01 Jul 2012 21:20:30 -0500] rev 17091
merge with stable
Matt Mackall <mpm@selenic.com> [Sun, 01 Jul 2012 21:19:57 -0500] rev 17090
merge with crew
Mads Kiilerich <mads@kiilerich.com> [Mon, 02 Jul 2012 01:48:12 +0200] rev 17089
tests: enable test-largefiles.t on Windows MSYS
The 'serve' requirement is moved to the sections that really need it.
$USERCACHE needs quoting.
Adrian Buehlmann <adrian@cadifra.com> [Sat, 30 Jun 2012 19:31:03 +0200] rev 17088
test-largefiles: partially adapt for Windows
The adaption is partial, because "serve" is not yet officially supported in
tests on Windows.
The test passes on Windows with an experimental testbed that supports
hg serve in tests on Windows - except for some USERCACHE issues.
The added (glob)'s are needed because of backslash <-> shlash issues in paths.
Mads Kiilerich <mads@kiilerich.com> [Mon, 02 Jul 2012 01:47:59 +0200] rev 17087
tests: make histedit pass on Windows MSYS
The command file will now be named with $TESTTMP (with '\') instead of `pwd`
(with '/') to avoid wrong path conversions.
Mads Kiilerich <mads@kiilerich.com> [Sat, 30 Jun 2012 03:34:50 +0200] rev 17086
tests: make histedit tests more resilient to filesystem variation
Better quoting of odd filesystem paths and no dependency to execute bit.
Mads Kiilerich <mads@kiilerich.com> [Sat, 30 Jun 2012 03:34:44 +0200] rev 17085
tests: convert histedit tests to .t
Mostly a trivial conversion.