[PATCH 00 of 27 clfilter V2] (README) newer and cleaner version of changelog level filtering (repo side)
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Mon Oct 8 16:37:51 CDT 2012
This is a newer and much cleaner version of the repo side of the changelog filtering.
Matt and I will discuss this series tomorrow (Tuesday) at 19:00 GMT. If you
want to take part in the phone call, let me know in advance.
Summary
============
The goal of this series is to define and deploy an API that make use of "changelog
level filtering of revision" at localrepository. The goal is to have a
changelog (and it's repo) pretend that filtered revision does not exist in the
repo at all.
Changelog part of this feature is already in core. This series introduce a repo
proxy class that will behave exactly like a proxy but with a filtered
changelog.
This requires both:
(1) update of existing code to run some section with or without filtering
(2) handling of the possible proxy object between repo user and the repo itself.
I know this series is very HUGE but it can hardly be smaller:
- Each changeser try to be as small as possible therefor there is many of them
- The first changeset does not have much sense without the final filtering but
the final filtering need them.
Changesets of particular interested are:
========================================
20: clfilter: add actual repo filtering mechanism
21: clfilter: add a cache on repo for set of revision to filter for a given set.
They are the core of this series.
22: clfilter: use filtering in `visibleheads` and `visiblebranchmap`
23: clfilter: set "unserved" filter on all repo used as server
25: clfilter: enforce hidden changeset globally
They are practical usage of the previous series.
05: clfilter: introduce an "unfiltered" method on localrepo
06: clfilter: decorate several repository methods as unfiltered
07: clfilter: unfilter computation of obsolescence related computation
Give a good view of preliminary changes needed.
Detailled series
========================================
part 0
--------
Small fix not directly related to the new API. Either changes related to
changelog iteration or test details that would broke later.
01: clfilter: remove usage of `range` and `xrange` in `scmutil.revrange`
02: test: use proper subclassing in `test-issue2137.t`.
03: largefile: use `self` in repo method instead of `repo`
04: clfilter: remove use of xrange in revset
part 1
--------
Introduction of the concept of "unfiltered repo" and disabling of filtering in
all part of the code who will require it.
05: clfilter: introduce an "unfiltered" method on localrepo
06: clfilter: decorate several repository methods as unfiltered
07: clfilter: unfilter computation of obsolescence related computation
08: clfilter: phases logic should be unfiltered
09: clfilter: verify logic should be unfiltered
10: clfilter: strip logic should be unfiltered
11: clfilter: prevent unwanted warning about filtered parents as unknown
12: clfilter: unfilter some part of the push logic
13: clfilter: `bookmark.validdest` should run on unfiltered repo
14: clfilter: use unfiltered repo for push bookmarks logic
15: clfilter: ensure mq do commit on unfiltered repo.
16: clfilter: mq should not warn about filtered mq patch
17: largefile: status is buggy on repoproxy. Run it unfiltered
part 2
--------
Prepare cache used by repo for the existence of repo proxy object.
18: clfilter: ensure filecache on localrepo are computed and store unfiltered
19: clfilter: distinct propertycache that must be unfiltered from the other
part 3
--------
introduce repo proxy object
20: clfilter: add actual repo filtering mechanism
21: clfilter: add a cache on repo for set of revision to filter for a given set.
part 4
--------
Use filtering during exchange with other repo
22: clfilter: use filtering in `visibleheads` and `visiblebranchmap`
23: clfilter: set "unserved" filter on all repo used as server
24: clfilter: remove the last usage of `visibleheads`
part 5
--------
Filter hidden changeset all the time
25: clfilter: enforce hidden changeset globally
part 5'
--------
Get some cheap benefit from hidden changeset filtering.
26: clfilter: highlight that hidden filtering is properly working on any commands
27: clfilter: drop unnecessary explicite filtering on rebase.
More information about the Mercurial-devel
mailing list