Mercurial > public > mercurial-scm > hg
comparison mercurial/cmdutil.py @ 31023:aea06029919e
revset: import set classes directly from smartset module
Follows up 1be65deb3d54.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sun, 19 Feb 2017 18:16:09 +0900 |
parents | 8d7e40524ae4 |
children | a113284f54a0 |
comparison
equal
deleted
inserted
replaced
31022:705ecab649ea | 31023:aea06029919e |
---|---|
39 pycompat, | 39 pycompat, |
40 repair, | 40 repair, |
41 revlog, | 41 revlog, |
42 revset, | 42 revset, |
43 scmutil, | 43 scmutil, |
44 smartset, | |
44 templatekw, | 45 templatekw, |
45 templater, | 46 templater, |
46 util, | 47 util, |
47 ) | 48 ) |
48 stringio = util.stringio | 49 stringio = util.stringio |
2088 # depends on revisions resolved from --rev... | 2089 # depends on revisions resolved from --rev... |
2089 follow = opts.get('follow') or opts.get('follow_first') | 2090 follow = opts.get('follow') or opts.get('follow_first') |
2090 if opts.get('rev'): | 2091 if opts.get('rev'): |
2091 revs = scmutil.revrange(repo, opts['rev']) | 2092 revs = scmutil.revrange(repo, opts['rev']) |
2092 elif follow and repo.dirstate.p1() == nullid: | 2093 elif follow and repo.dirstate.p1() == nullid: |
2093 revs = revset.baseset() | 2094 revs = smartset.baseset() |
2094 elif follow: | 2095 elif follow: |
2095 revs = repo.revs('reverse(:.)') | 2096 revs = repo.revs('reverse(:.)') |
2096 else: | 2097 else: |
2097 revs = revset.spanset(repo) | 2098 revs = smartset.spanset(repo) |
2098 revs.reverse() | 2099 revs.reverse() |
2099 return revs | 2100 return revs |
2100 | 2101 |
2101 def getgraphlogrevs(repo, pats, opts): | 2102 def getgraphlogrevs(repo, pats, opts): |
2102 """Return (revs, expr, filematcher) where revs is an iterable of | 2103 """Return (revs, expr, filematcher) where revs is an iterable of |
2107 filtering the files to be detailed when displaying the revision. | 2108 filtering the files to be detailed when displaying the revision. |
2108 """ | 2109 """ |
2109 limit = loglimit(opts) | 2110 limit = loglimit(opts) |
2110 revs = _logrevs(repo, opts) | 2111 revs = _logrevs(repo, opts) |
2111 if not revs: | 2112 if not revs: |
2112 return revset.baseset(), None, None | 2113 return smartset.baseset(), None, None |
2113 expr, filematcher = _makelogrevset(repo, pats, opts, revs) | 2114 expr, filematcher = _makelogrevset(repo, pats, opts, revs) |
2114 if opts.get('rev'): | 2115 if opts.get('rev'): |
2115 # User-specified revs might be unsorted, but don't sort before | 2116 # User-specified revs might be unsorted, but don't sort before |
2116 # _makelogrevset because it might depend on the order of revs | 2117 # _makelogrevset because it might depend on the order of revs |
2117 if not (revs.isdescending() or revs.istopo()): | 2118 if not (revs.isdescending() or revs.istopo()): |
2123 limitedrevs = [] | 2124 limitedrevs = [] |
2124 for idx, rev in enumerate(revs): | 2125 for idx, rev in enumerate(revs): |
2125 if idx >= limit: | 2126 if idx >= limit: |
2126 break | 2127 break |
2127 limitedrevs.append(rev) | 2128 limitedrevs.append(rev) |
2128 revs = revset.baseset(limitedrevs) | 2129 revs = smartset.baseset(limitedrevs) |
2129 | 2130 |
2130 return revs, expr, filematcher | 2131 return revs, expr, filematcher |
2131 | 2132 |
2132 def getlogrevs(repo, pats, opts): | 2133 def getlogrevs(repo, pats, opts): |
2133 """Return (revs, expr, filematcher) where revs is an iterable of | 2134 """Return (revs, expr, filematcher) where revs is an iterable of |
2138 filtering the files to be detailed when displaying the revision. | 2139 filtering the files to be detailed when displaying the revision. |
2139 """ | 2140 """ |
2140 limit = loglimit(opts) | 2141 limit = loglimit(opts) |
2141 revs = _logrevs(repo, opts) | 2142 revs = _logrevs(repo, opts) |
2142 if not revs: | 2143 if not revs: |
2143 return revset.baseset([]), None, None | 2144 return smartset.baseset([]), None, None |
2144 expr, filematcher = _makelogrevset(repo, pats, opts, revs) | 2145 expr, filematcher = _makelogrevset(repo, pats, opts, revs) |
2145 if expr: | 2146 if expr: |
2146 matcher = revset.match(repo.ui, expr, order=revset.followorder) | 2147 matcher = revset.match(repo.ui, expr, order=revset.followorder) |
2147 revs = matcher(repo, revs) | 2148 revs = matcher(repo, revs) |
2148 if limit is not None: | 2149 if limit is not None: |
2149 limitedrevs = [] | 2150 limitedrevs = [] |
2150 for idx, r in enumerate(revs): | 2151 for idx, r in enumerate(revs): |
2151 if limit <= idx: | 2152 if limit <= idx: |
2152 break | 2153 break |
2153 limitedrevs.append(r) | 2154 limitedrevs.append(r) |
2154 revs = revset.baseset(limitedrevs) | 2155 revs = smartset.baseset(limitedrevs) |
2155 | 2156 |
2156 return revs, expr, filematcher | 2157 return revs, expr, filematcher |
2157 | 2158 |
2158 def _graphnodeformatter(ui, displayer): | 2159 def _graphnodeformatter(ui, displayer): |
2159 spec = ui.config('ui', 'graphnodetemplate') | 2160 spec = ui.config('ui', 'graphnodetemplate') |