David Schleimer <dschleimer@fb.com> [Fri, 08 Feb 2013 05:36:08 -0800] rev 18661
commit: factor out post-commit cleanup into workingctx
This pulls some of the logic for the cleanup that needs to happen
after a commit has been made otu of localrepo.commit and into
workingctx. This is part of a larger refactoring effort that will
eventually allow us to perform some types of merges in-memory.
David Schleimer <dschleimer@fb.com> [Fri, 08 Feb 2013 05:36:08 -0800] rev 18660
localrepo: use workingctx for validation in commit
This changes localrepo.commit to use the workingctx it creates form
the munged output of localrepo.status while running some precommit
validation. Specifically, it uses functions that were already present
on the workingctx. I believe this is a net readabilty improvement,
and that this makes these lines consistent with the refactoring in a
subsequent patch that pulls some of the validation logic into
workingctx so that it can be reused elsewhere.
David Schleimer <dschleimer@fb.com> [Fri, 08 Feb 2013 05:36:07 -0800] rev 18659
localrepo: create context used for actual commit earlier
localrepo.commit creates a workingctx, calls self.status, does some
munging on the changes status returns, does some validation on those
changes, and then creates a new workingctx from the changes. This
moves the creation of the new workginctx ahead of some validation,
with the intention of refactoring some of that validation logic into
the workingctx, so that it can be reused elsewhere.
Thomas Arendsen Hein <thomas@intevation.de> [Mon, 11 Feb 2013 16:57:46 +0100] rev 18658
merge with crew-stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 09 Feb 2013 23:28:42 +0000] rev 18657
debugobsolete: improve command help
The behavior without argument was not documented.
Kevin Bullock <kbullock@ringworld.org> [Sun, 10 Feb 2013 23:01:12 +0000] rev 18656
import: don't rollback on failed import --exact (
issue3616)
The checkexact() helper function was calling repo.rollback() from inside
an open transaction. In addition to being insane, this is unnecessary
because import will release the transaction on an exception.
It turns out that this has been broken since the feature was first
introduced, first released in v1.0:
changeset: 4263:
47ba52121433
user: Brendan Cully <brendan@kublai.com>
date: Thu Mar 22 10:44:59 2007 -0700
files: mercurial/commands.py mercurial/patch.py
description:
Add import --exact.
When this option is set, import will apply the patch (which must
be generated by export) to the parents specified in the patch,
and check that the node produced by the patch matches the node
ID in the patch.
Bryan O'Sullivan <bryano@fb.com> [Sun, 10 Feb 2013 16:22:32 -0800] rev 18655
Merge
Bryan O'Sullivan <bryano@fb.com> [Sun, 10 Feb 2013 16:21:30 -0800] rev 18654
Merge
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Mon, 11 Feb 2013 01:21:24 +0100] rev 18653
merge crew and main
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Mon, 11 Feb 2013 01:17:50 +0100] rev 18652
merge crew and main
Siddharth Agarwal <sid0@fb.com> [Sun, 10 Feb 2013 16:55:01 +0000] rev 18651
manifestmerge: fix order in which manifests are fetched
If the manifest of an earlier revision on the same delta chain is read before
that of a later revision, the revlog remembers that we parsed the earlier
revision and continues applying deltas from there onwards. If manifests are
parsed the other way round, we have to start over from the fulltext.
For a fresh clone of mozilla-central, updating from
29dd80c95b7d to its parent
aab96936a177 requires approximately 400 fewer zlib.decompress calls, which
results in a speedup from 1.10 seconds to 1.05.
Siddharth Agarwal <sid0@fb.com> [Sun, 10 Feb 2013 12:16:46 +0000] rev 18650
merge: run _forgetremoved after manifestmerge
_forgetremoved can trigger manifest construction, but we only want it to
happen after manifestmerge, so that our attempt to read the manifests in the
right order in an upcoming patch actually works.
Siddharth Agarwal <sid0@fb.com> [Sun, 10 Feb 2013 16:23:14 +0000] rev 18649
dirstate: disable gc while parsing the dirstate
This prevents a performance regression an upcoming patch would otherwise
introduce because it indirectly delays parsing the dirstate a bit.
Mads Kiilerich <mads@kiilerich.com> [Fri, 08 Feb 2013 22:54:17 +0100] rev 18648
export: show 'Date' header in a format that also is readable for humans
'export' is the official export format and used by patchbomb, but it would only
show date as a timestamp that most humans might find it hard to relate to. It
would be very convenient when reviewing a patch to be able to see what
timestamp the patch will end up with.
Mercurial has always used util.parsedate for parsing these headers. It can
handle 'all' date formats, so we could just as well use a readable one.
'export' will now use the format used by 'log' - which is the format described
as 'Unix date format' in the templating help. We assume that all parsers of '#
HG changeset patch'es can handle that.
Mads Kiilerich <mads@kiilerich.com> [Sun, 10 Feb 2013 18:26:04 +0100] rev 18647
factotum: fix urllib2 import so it no longer relies on a demandimport bug
demandimport will do that urllib2 can be imported 'from mercurial' even though
it doesn't exist there.
Mads Kiilerich <mads@kiilerich.com> [Sun, 27 Jan 2013 03:32:09 +0100] rev 18646
hgweb: make the test suite use hgweb in a more WSGI compliant way
- as checked by wsgiref.validate.
This makes sure that we don't optimize hgweb for invalid use cases.
Mads Kiilerich <mads@kiilerich.com> [Sun, 10 Feb 2013 18:24:29 +0100] rev 18645
hgweb: simplify internal staticfile return codes
Mads Kiilerich <mads@kiilerich.com> [Sun, 10 Feb 2013 18:24:29 +0100] rev 18644
spelling: fix some minor issues found by spell checker
Mads Kiilerich <mads@kiilerich.com> [Fri, 08 Feb 2013 23:26:00 +0100] rev 18643
bundlerepo: replace basemap with the base field in the index
Bundle revisions had some info in their fake revlog intries and some info in a
dict with all the bundle revisions. This dict was used to get the stored data
and to distinguish repo revisions from bundle revisions.
Real repo revisions and bundle revisions will now be distinguished by comparing
with the tip revision of the original repo. This reintroduces something similar
to disktiprev which was unused and removed in
a928865b4a4f and let that replace
the O(reposize) dict.
Mads Kiilerich <mads@kiilerich.com> [Fri, 08 Feb 2013 22:54:48 +0100] rev 18642
profiling: replace '+' markup of nested lines with indentation
The display of nested lines for hg --profile was very non-obvious and made it
look like sort didn't work.
The '+' immediately before CallCount was not related to the CallCount and did
not mean plus in any integer sense.
The '+' before module looked like a part of the module name and not like ascii
art.
Instead we now indent the subordinate module names to clearly show the
structure.
Augie Fackler <raf@durin42.com> [Sun, 10 Feb 2013 04:04:22 -0600] rev 18641
Merge crew and main.
Bryan O'Sullivan <bryano@fb.com> [Sat, 09 Feb 2013 15:51:32 -0800] rev 18640
merge: don't fiddle with name lookups or i18n in hot loops
We perform attribute dereferences and i18n lookups before looping.
Bryan O'Sullivan <bryano@fb.com> [Sat, 09 Feb 2013 15:51:32 -0800] rev 18639
merge: apply non-interactive working dir updates in parallel
This has a big effect on the performance of working dir updates.
Here are the results of update from null to the given rev in several
repos, on a Linux 3.2 system with 32 cores running ext4, with the progress
extension enabled.
repo rev plain parallel speedup
hg
7068089c95a2 0.9 0.3 3
mozilla-central
fe1600b22c77 42.8 7.7 5.5
linux-2.6
9ef4b770e069 31.4 4.9 6.4
Bryan O'Sullivan <bryano@fb.com> [Sat, 09 Feb 2013 15:51:32 -0800] rev 18638
worker: allow a function to be run in multiple worker processes
If we estimate that it will be worth the cost, we run the function in
multiple processes. Otherwise, we run it in-process.
Children report progress to the parent through a pipe.
Not yet implemented on Windows.
Bryan O'Sullivan <bryano@fb.com> [Sat, 09 Feb 2013 15:51:32 -0800] rev 18637
worker: partition a list (of tasks) into equal-sized chunks
Bryan O'Sullivan <bryano@fb.com> [Sat, 09 Feb 2013 15:51:26 -0800] rev 18636
worker: estimate whether it's worth running a task in parallel
Not implemented for Windows yet.
Bryan O'Sullivan <bryano@fb.com> [Sat, 09 Feb 2013 15:22:12 -0800] rev 18635
worker: count the number of CPUs
This works on the major platforms, and falls back to a safe guess of
1 elsewhere.
Bryan O'Sullivan <bryano@fb.com> [Sat, 09 Feb 2013 15:22:10 -0800] rev 18634
tests: getremove test output changes (fold into previous patch)