Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 04 Jan 2013 03:15:44 +0100] rev 18276
performance: speedup computation of suspended revisions
In their current state, revset calls can be very costly, as we test
predicates on the entire repository.
This change drops a revset call in favor of direct testing of the
phase of changesets.
Performance test on my Mercurial checkout
- 19857 total changesets,
- 1584 obsolete changesets,
- 13310 obsolescence markers.
Before:
! suspended
! wall 0.014319
After:
! suspended
! wall 0.009559
Performance test on a Mozilla central checkout:
- 117293 total changesets,
- 1 obsolete changeset,
- 1 obsolescence marker.
Before:
! suspended
! wall 0.033373
After:
! suspended
! wall 0.000053
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 04 Jan 2013 03:15:21 +0100] rev 18275
performance: speedup computation of unstable revisions
In their current state, revset calls can be very costly, as we test
predicates on the entire repository.
This change drops revset call in favor of direct testing of the
phase of changesets.
Performance test on my Mercurial checkout
- 19857 total changesets,
- 1584 obsolete changesets,
- 13310 obsolescence markers.
Before:
! unstable
! wall 0.017366
After this changes:
! unstable
! wall 0.008093
Performance test on a Mozilla central checkout:
- 117293 total changesets,
- 1 obsolete changeset,
- 1 obsolescence marker.
Before:
! unstable
! wall 0.045190
After:
! unstable
! wall 0.000032
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 07 Jan 2013 15:50:25 +0100] rev 18274
performance: speedup computation of mutable revisions
In their current state, revset calls can be very costly, as we test
predicates on the entire repository. The "mutable" filter is used
during branch cache loading operation. We need to make it fast.
This change drops revset calls in favor of direct testing of the
phase of a changeset.
Performance test on my Mercurial checkout
- 19857 total changesets,
- 1646 mutable revision
Before:
! mutable
! wall 0.032405
After:
! mutable
! wall 0.001469
Performance test on a Mozilla central checkout:
- 117293 total changesets,
- 1 mutable changeset,
Before:
! mutable
! wall 0.188636
After:
! mutable
! wall 0.000022
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 04 Jan 2013 20:19:05 +0100] rev 18273
performance: speedup computation of unserved revisions
In their current state, revset calls can be very costly, as we test
predicates on the entire repository. The "unserved" filter is used
in multiple applications, and in particular in some branch cache
loading operations. We need to make it fast.
This change drops revset calls in favor of direct testing of the
phase of a changeset.
Performance test on my Mercurial checkout
- 19857 total changesets,
- 1584 obsolete changesets,
- 13310 obsolescence markers.
Before:
! unserved
! wall 0.030477
After:
! unserved
! wall 0.011844
Performance test on a Mozilla central checkout:
- 117293 total changesets,
- 1 obsolete changeset,
- 1 obsolescence marker.
Before:
! unserved
! wall 0.111259
After:
! unserved
! wall 0.000084
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 04 Jan 2013 05:44:01 +0100] rev 18272
performance: speedup computation of hidden revisions
In their current state, revset calls can be very costlys, as we
test predicates on the entire repository. The hidden filter is very
widely used, and needs to be very fast.
This change drops revset calls in favor of direct revision manipulation.
Performance test on my Mercurial checkout
- 19857 total changesets,
- 1584 obsolete changesets,
- 13310 obsolescence markers.
Before:
! hidden
! wall 0.077553
After this changes:
! hidden
! wall 0.011230
Performance test on a Mozilla central checkout:
- 117293 total changesets,
- 1 obsolete changeset,
- 1 obsolescence marker.
Before:
! hidden
! wall 0.389472
After:
! hidden
! wall 0.000079
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 04 Jan 2013 03:14:54 +0100] rev 18271
performance: speedup computation of obsolete revisions
In their current state, revset calls can be very costly as we test
predicates on the entire repository. As obsolete computation is used
by the "hidden" filter, it needs to be very fast.
This changet drops the revset call in favor of direct testing of
the phase of a changeset.
Performance test on my Mercurial checkout
- 19857 total changesets,
- 1584 obsolete changesets,
- 13310 obsolescence markers.
Before:
! obsolete
! wall 0.047041
After:
! obsolete
! wall 0.004590
Performance test on a Mozilla central checkout:
- 117293 total changesets,
- 1 obsolete changeset,
- 1 obsolescence marker.
Before:
! obsolete
! wall 0.001539
After:
! obsolete
! wall 0.000017
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 24 Dec 2012 12:00:08 +0100] rev 18270
clfilter: drop unnecessary explicit filtering on histedit
Hidden changeset filtering is now done at repo level. The orphaned
children computation will not include any (unless you add --hidden).
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 04 Dec 2012 14:58:19 +0100] rev 18269
clfilter: drop unnecessary explicit filtering on rebase
Hidden changeset filtering is now done at repo level. The rebaseset
computation will not include any (unless you add --hidden).
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 08 Jan 2013 20:02:53 +0100] rev 18268
clfilter: ensure that hidden filtering is working on all commands
Now that hidden changeset are filtered for all commands, we test
the behavior of `heads` and `summary` regarding hidden changeset.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 08 Jan 2013 20:37:37 +0100] rev 18267
clfilter: enforce hidden changeset globally
The dispatch code now enables filtering of "hidden" changesets globally. The
filter is installed before command and extension invocation. The `--hidden`
switch is now global and disables this filtering for any command.
Code in log dedicated to changeset exclusion is removed as this global filtering
has the same effect.
Denis Laxalde <denis@laxalde.org> [Tue, 08 Jan 2013 21:16:39 +0100] rev 18266
record: use patch.diffopts to account for user diffopts
This allows user defined diff options (e.g. showfunc) to be accounted for
when using record. A test has been updated accordingly.
Bryan O'Sullivan <bos@serpentine.com> [Tue, 08 Jan 2013 16:26:52 -0800] rev 18265
convert: fix most test-check-code-hg violations in cvsps code
Bryan O'Sullivan <bryano@fb.com> [Tue, 08 Jan 2013 16:16:29 -0800] rev 18264
tests: update hgweb tests to include breadcrumbs
Angel Ezquerra <angel.ezquerra@gmail.com> [Thu, 03 Jan 2013 17:35:58 +0100] rev 18263
subrepo: add subrepo property to SubrepoAbort exceptions
This new property contains the path of the subrepo that generated the exception.
This information can then be used by GUI tools such as TortoiseHg.
Bryan O'Sullivan <bos@serpentine.com> [Tue, 08 Jan 2013 15:43:48 -0800] rev 18262
tests: update test-convert-cvs*.t
The preceding commit caused their outputs to change.
Frank Kingswood <frank@kingswood-consulting.co.uk> [Tue, 08 Jan 2013 20:11:20 +0000] rev 18261
cvsps: use commitids (when present) to detect changesets
Simplify core logic by no longer attempting to work around missing
class attributes. Instead always generate the attributes and ignore
the cache if the attributes are missing
Angel Ezquerra <angel.ezquerra at gmail.com> [Fri, 21 Dec 2012 02:41:07 +0100] rev 18260
hgweb, spartan: link from manifest title to changeset page
Angel Ezquerra <angel.ezquerra at gmail.com> [Fri, 21 Dec 2012 02:40:12 +0100] rev 18259
hgweb, spartan: add "URL breadcrumbs"
This change adds a "URL breadcrumb" to the "title" of the pages on the spartan
template. By title I mean the first line that is shown right below the page
selection row, which shows the name of the page that is being viewed, along with
some additional information.
In doing so it standarizes those "titles" which now follow the pattern:
URL breadcumb / page details
Angel Ezquerra <angel.ezquerra at gmail.com> [Wed, 28 Nov 2012 20:21:26 +0100] rev 18258
hgweb: add a "URL breadcrumb" to the index and repository pages
The purpose of this change is to make it much easier to navigate up the
repository tree when the hg web server is used to serve more than one
repository.
A "URL breadcrumb" is a path where each of the path items can be clicked to go
to the corresponding path page.
This lets you go up the folder hierarchy very quickly. For example, when showing
the list of repositories in http://myserver/myteams/myprojects, the following
"breadcrumb" will be shown:
Mercurial > myteams > myprojects
Clicking on "myprojects" reloads the page. Clicking on "myteams" goes up one
folder. Clicking on the leftmost "Mercurial" goes to the server root.
This "breadcrumb" also appears on all repository pages. For example on the
summary page of the repository at http://myserver/myteams/myprojects/myrepo the
following will be shown:
Mercurial > myteams > myprojects > myrepo / summary
This change has been applied to all templates that already had a link to the
main repository page (i.e. gitweb, monoblue, paper and coal) plus to the index
page of the spartan template.
In order to make the breadcumb links stand out the some of the template styles
have been customized.
Mads Kiilerich <mads@kiilerich.com> [Tue, 08 Jan 2013 04:15:46 +0100] rev 18257
merge: never do premerge on symlinks
Simplemerge is not symlink aware and will never do the right thing on symlinks.
Mads Kiilerich <mads@kiilerich.com> [Tue, 08 Jan 2013 04:15:41 +0100] rev 18256
merge: make internal merge fail cleanly on symlinks
Simplemerge is not symlink aware and will never do the the right thing on
symlinks. It would read the symlink as a file and abort with 'No such file or
directory' on dangling symlinks.
Instead, internal:merge now simply fails to merge symlinks.
Mads Kiilerich <mads at kiilerich.com> [Sun, 16 Dec 2012 20:50:57 +0100] rev 18255
debugpushkey: list keys sorted
Mads Kiilerich <mads at kiilerich.com> [Wed, 12 Dec 2012 02:38:14 +0100] rev 18254
debugdiscovery: report heads in sorted order
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 03 Jan 2013 18:52:59 +0100] rev 18253
hidden: drop of the repo.hiddenrevs property
It does not have any user left
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 03 Jan 2013 18:51:16 +0100] rev 18252
context: retrieve hidden from filteredrevs
This prepare the dropping of the repo.hiddenrevs property
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 03 Jan 2013 18:48:14 +0100] rev 18251
revset: retrieve hidden from filteredrevs
This prepare the dropping of the `repo.hiddenrevs` property
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 08 Jan 2013 17:31:00 +0100] rev 18250
hidden: use both parents of working directory
If we are merging with and extinct revision, this extinct revision should not be
hidden.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 08 Jan 2013 14:16:49 +0100] rev 18249
hidden: drop cache on hiddenrevs property
The `filteredrevs` function already have a cache mechanism. And this cache in
invalidated at the same time than the current property cache. So we drop the
cache on the property.
The property itself is going to be dropped soon.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 08 Jan 2013 14:10:29 +0100] rev 18248
hidden: move computation in filter function
There is not good reason for this computation to be handle in a different way
from the other. We are moving the computation of hidden revs in the filter
function. In later changesets, code that access to `repo.hiddenrevs` will be
updated and the property dropped.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 08 Jan 2013 12:41:51 +0100] rev 18247
branchcache: add note about cache invalidation to test-keyword.t
[Should've been included in
aff706b3a21c.]
--Kevin Bullock <kbullock@ringworld.org>