[PATCH 00 of 27 clfilter V2] (README) newer and cleaner version of changelog level filtering (repo side)
Augie Fackler
raf at durin42.com
Mon Oct 8 23:12:49 UTC 2012
On Oct 8, 2012, at 4:37 PM, Pierre-Yves David wrote:
> 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.
I'd be interested in paying attention. Could we take a run at mumble rather than phone this time?
> 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.
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel
More information about the Mercurial-devel
mailing list