comparison mercurial/repoview.py @ 18102:3c7b67b76190

clfilter: introduce a "unserver" filtering mode This mode is for repository used as a server. It filter secret and hidden changeset out. It is put to use in later changeset.
author Pierre-Yves David <pierre-yves.david@logilab.fr>
date Mon, 17 Dec 2012 17:12:02 +0100
parents a464deecc9dd
children c0c943ef4e55
comparison
equal deleted inserted replaced
18101:a464deecc9dd 18102:3c7b67b76190
5 # 5 #
6 # This software may be used and distributed according to the terms of the 6 # This software may be used and distributed according to the terms of the
7 # GNU General Public License version 2 or any later version. 7 # GNU General Public License version 2 or any later version.
8 8
9 import copy 9 import copy
10 import phases
11
12 def computeunserved(repo):
13 """compute the set of revision that should be filtered when used a server
14
15 Secret and hidden changeset should not pretend to be here."""
16 assert not repo.changelog.filteredrevs
17 # fast path in simple case to avoid impact of non optimised code
18 if phases.hassecret(repo) or repo.obsstore:
19 return frozenset(repo.revs('hidden() + secret()'))
20 return ()
10 21
11 # function to compute filtered set 22 # function to compute filtered set
12 filtertable = {} 23 filtertable = {'unserved': computeunserved}
13 24
14 def filteredrevs(repo, filtername): 25 def filteredrevs(repo, filtername):
15 """returns set of filtered revision for this filter name""" 26 """returns set of filtered revision for this filter name"""
16 if filtername not in repo.filteredrevcache: 27 if filtername not in repo.filteredrevcache:
17 func = filtertable[filtername] 28 func = filtertable[filtername]