Mercurial > hg
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] |