[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 18:12:49 CDT 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